Preface¶
When running long tasks in the browser with DeepSeek Harness (dsh), the most common headache isn’t that the task itself won’t finish, but that you can’t clearly see the process. Thoughts, context, command outputs, and tool calls will scroll down one by one along the conversation. You often have to hunt through a long string of technical messages to figure out what step you’re on and how long the task has been running. After the task ends, these process records still take up the main view, pushing the actual answer you want to read further back.
DeepSeek Harness is an agent harness open-sourced by DeepSeek AI, currently in developer preview. Its core concept is “everything is a plugin”: models, tools, sessions, sandboxes, and interfaces can all be replaced or combined. The community has made many extensions around the session interface. The deepseek-harness-ux introduced in this article targets the user experience of long tasks in the browser: key progress is visible upfront, the process automatically collapses once completed, and details can be expanded when needed.
Two things need to be clarified first. First, the community plugin directory is an independent site and has no official affiliation with DeepSeek / 幻方, and should not be treated as an official app store. Second, the repository itself makes it clear: it is not an official DeepSeek release and does not enjoy official upstream support.
What It Is¶
deepseek-harness-ux is maintained by ayuanwong, primarily written in TypeScript, and licensed under BSD-3-Clause. The community directory categorizes it under the “Sessions & Messages” section. The GitHub repository currently has 13 stars (verified on 2026-08-17; the directory page showed 10 stars at that time). The repository description reads: No screen flooding during long tasks, key progress clearly visible, automatically folded upon completion, details expandable at any time.
In terms of positioning, it is a community web version maintained based on a source code snapshot of the upstream DeepSeek Harness. The README states clearly: it does not rewrite how the Agent works, but focuses on improving the task process, long answers, session searching, and file entry points in the web interface. The package name in the root package.json is still @deepseek-ai/dsh-root, with the version number 0.0.1-rc.2, which is the workspace metadata left over from the upstream snapshot; the repository also declares that it will not publish npm packages under the @deepseek-ai scope.
There is a piece of information that requires cross-referencing. The installation command given on the community directory page is dsh plugin add github:ayuanwong/deepseek-harness-ux, which means it is included as a regular plugin. However, the repository README explicitly states: this repository delivers a complete source code version, not a patch that can be directly installed into a clean upstream repository, and it has not been released as a standalone npm plugin. The introduction on the community site DSH Find also describes it as “not a plugin, you need to run it from source code”. The installation method should follow the official instructions from the repository; the dsh plugin add command in the directory only represents the inclusion format of that site, and does not mean you can use it as a patch for the official dsh.
Core Features¶
The repository’s README lists seven direct user-facing differences. When cross-referencing with the official source code, the maintainer provided the following basis: the UX feature source code is based on commit 35c6172, and the documentation is compared against the official commit 47f9438 from 2026-08-17. Only user-perceived differences are recorded, and tests, package metadata, and mechanical source code differences are not packaged as product capabilities.
- No constant screen flooding during the session. Thoughts and tool steps will be collected into a stable “Process” area while the task is running. You can directly see what step you’re on and how long it has been running, without having to search through a large number of technical messages for progress. If auxiliary display is enabled, the interface will use a small model request to organize todos, thoughts, and tool evidence into easier-to-understand stage names. This request is only responsible for display and will not change the Agent’s response.
- The process automatically collapses after the task is completed, returning the final answer to the main view. Normally completed tasks will automatically collapse their thinking processes; if a failure or interruption occurs, the process will remain expanded to facilitate troubleshooting. You can click to re-expand the “Run Details” when you need to check details.
- Long logs can scroll independently. After expanding the run details, long command outputs and tool logs will scroll within their own area. You won’t suddenly scroll the entire conversation when reaching the edge, and the bottom input box will not push the page out with a large blank space.
- Long answers are more readable. Paragraphs, headings, and between different rounds of responses are more compact. After the task ends, the optional display assistant can also optimize the answer title; copied content, session history, and the original answer seen by the model will not be rewritten. When the task just ends, the web page will complete the final piece of history in the background, preventing late arrival end events from making the interface look like it’s still running, and avoiding flashing new loading pages.
- Previous sessions are easier to find. Sessions are sorted by last updated time by default, and you can switch back to manual sorting. The sidebar can search for titles, workspace names, and conversation content in the current process; you can also directly create sessions that do not belong to any workspace from the “Ungrouped” area.
- Generated files are easier to locate. In addition to files explicitly written by tools, the UX version will also recognize document, table, dataset, image, audio/video, compressed package, database, and 3D/CAD file paths clearly listed in the answer, and display them as accessible product entry points. Regular text, URLs, commands, and sample code will not be mistakenly treated as files.
- Model configuration is centralized on the settings page. On first use, you will directly enter the full configuration card for “Settings → Models”, instead of maintaining a separate simplified key popup window. Providers, models, API Keys, and error recovery are all done in one place.
The parts it does not modify are also listed in the README: the Agent Loop, model routing, tools, permissions, sandbox, and Session Log still follow the execution method of DeepSeek Harness; the original thoughts, context, commands, and tool evidence are not deleted, but only collected into the “Run Details”; the display assistant will not modify the System Prompt, user messages, tools, original responses, or session history; Session Log is still saved locally by default.
Installation and Activation¶
The installation command on the community directory page is as follows, which can be copied and run in the DeepSeek Harness terminal. For reproducible installations, the directory page provides a写法 with a fixed commit hash:
dsh plugin add github:ayuanwong/deepseek-harness-ux
dsh plugin add github:ayuanwong/deepseek-harness-ux#commit
The commit in the second command above needs to be replaced with the actual commit hash. The directory page also reminds users: the plugin runs with the permissions of the current dsh process, and may execute code during installation. Please check the source code repository and license before installing.
For this repository, the more authentic usage is to run the entire workspace from source code, rather than treating it as a patch for the official installation. The environment requirements are Node.js ^22.19 or >=24, pnpm 11, and a DeepSeek-compatible API Key. The package manager specified in the repository’s package.json is pnpm@11.7.0.
git clone https://github.com/ayuanwong/deepseek-harness-ux.git
cd deepseek-harness-ux
pnpm install
pnpm run build
pnpm run dsh -- web --port 3081
After starting, open http://127.0.0.1:3081, add a model provider in “Settings → Models”, and then create a new session. If port 3081 is occupied, you can replace it with another port. The official upstream default web port is 3080, and this community version README example uses 3081.
Typical Usage¶
- Create a new session in the browser and launch a task that requires multiple steps of tool calls. During the running process, look at the “Process” area: the current stage and elapsed time will remain in this stable area, and thoughts and tool calls will no longer scroll the entire page.
- After the task completes normally, the process will automatically collapse, leaving the final answer in the most prominent position. If you need to verify a command or tool evidence, just expand “Run Details”; long logs scroll within their own area, without dragging the entire conversation along with them.
- When you need to find previous sessions, the sidebar sorts them by last updated time by default, and you can also search for titles, workspace names, and conversation content in the current process. Sessions that do not belong to any workspace can be created directly from the “Ungrouped” area.
- If the answer clearly lists file paths such as documents, tables, datasets, images, etc., the interface will display them as accessible product entry points. Regular narratives, URLs, and sample code will not be treated as files according to the repository’s instructions.
- The display assistant is an optional feature. When enabled, the web display service will use the model provider configured for the current session to initiate a bounded, display-only request: organize stage names during execution, and optimize the answer title after completion. The main Agent cannot see the additional instructions, and the original answer and session history will not be rewritten. If the assistant path is unavailable, the task will continue running, and the interface will fall back to the local title. Please note: when enabling stage or title organization, limited running evidence will be sent to that provider.
Applicable Scenarios and Notes¶
If you mainly run long tasks in the browser and want a clearer process, more readable answers, and easier session and file finding, you can choose DeepSeek Harness UX. If you care more about the latest official updates, npm installation, Headless or CLI workflows, you should prioritize the official DeepSeek Harness.
Compared with the official version, the README also lists these boundaries, which are worth reading before installation:
- This is a community version maintained based on an upstream source code snapshot, and will not automatically receive official subsequent fixes, compatibility updates, and security updates.
- This snapshot does not yet have some capabilities added later by the official version, such as stricter cold session verification, hiding OAuth-only providers that cannot currently log in, and new global interface extension positions.
- There is currently no built-in Codex OAuth login and Token automatic refresh; you need to manually provide the Token when selecting the
openai-codexroute. - The basic Bundle will install dormant Codex and Claude Code sub-agent providers, but will not automatically start the corresponding product processes.
- The official version provides npm packages, and can be started with
npx @deepseek-ai/dsh webby default; this repository only provides source code operation. - The current official source code uses the MIT license; this branch retains the BSD 3-Clause license and related statements used by its upstream snapshot at that time. The copyright statement in the LICENSE file is still Copyright (c) 2026, DeepSeek.
In addition, do not commit .env, .npmrc, API Keys, local sessions, build artifacts, or profile data. Before enabling any non-default telemetry mode, please read the upstream telemetry settings first. Whether you try to install it via the directory page’s dsh plugin add command or start it from source code according to the README, the code will run with the permissions of the current process. You should check the source code and license before installing or cloning.
Summary¶
deepseek-harness-ux aims to solve the problem of “screen flooding during long tasks and answers being pushed aside” in the browser. It collects thoughts and tool calls into a collapsible process area, returns the view to the answer after completion, and adds session searching and product entry points, but does not modify the Agent loop, tools, or permissions. It is a community source code version, not an official release, and should not be understood as a regular plugin patch.
The directory page and GitHub address are as follows:
- Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/deepseek-harness-ux/
- GitHub: https://github.com/ayuanwong/deepseek-harness-ux
- Official upstream: https://github.com/deepseek-ai/deepseek-harness