Preface¶
When running long tasks in the web UI with DeepSeek Harness (command name dsh), the main session quickly accumulates tool outputs, code snippets, and explanations. Often, only a small portion of this is what you actually get stuck on: a specific error, an implementation explanation, or a multiple-choice question popped up by the agent.
If you directly追问 in the main input box, the new question will mix into the current task’s context; opening a new session will abandon the working directory and tool configurations from that round of work.
DeepSeek Harness is open-sourced by DeepSeek AI, with the repository at deepseek-ai/deepseek-harness. The official page describes its architecture as Everything is a Plugin: models, tools, sessions, sandboxes, and UI can all be added or removed via plugins. It is still a developer preview version, and the APIs are subject to change. The plugin directory introduced below, deepseek-harness-plugin.com, is a community site not officially affiliated with DeepSeek / Horizon Robotics, and should not be treated as an official app store. This article is organized after cross-checking the directory’s detail pages, plugin GitHub repositories (including Chinese and English READMEs, package.json, dsh.plugin.json, and the MIT license).
There is a plugin named dsh-side-chat in the community directory, maintained by heartmove. It adds a side chat bar isolated by main sessions on the right side of the web page: it inherits the main session’s toolset, model, thinking difficulty, and permission presets. You can select conversation content to ask questions, and AI replies can be brought back to the main session. When the main session pops up a “question dialog”, you can also bring the question and options into the sidebar to think through before answering, without interrupting the current workflow.
What is this¶
dsh-side-chat is a session and messaging plugin for the DeepSeek Harness web UI, with the repository at heartmove/dsh-side-chat, licensed under MIT, and primarily written in TypeScript. The version numbers in both package.json and dsh.plugin.json are 0.2.0. The engines.dsh requirement specifies DSH ≥ 0.1.0-rc.6, and Node.js ≥ 20. As of 2026-08-18, both GitHub and the community directory page show 8 stars; the directory inclusion date is 2026-08-15, and the latest push to the repository was on 2026-08-16.
Its self-positioning is “an enhanced version of Codex-style side chat”. Side chat is not a sticky note: each side session is a hidden regular DSH session, associated with its parent main session via meta.parentSession, and archived, so it will not appear in the main session list. It inherits the main session’s toolset, model, thinking difficulty, permission presets, and working directory by default, and can work in the same workspace.
There is another entry with the same name in the community directory, maintained by AHGGG, with the installation command pointing to github:AHGGG/dsh-side-chat. Do not mix up the two repositories and their installation commands. This article only covers the version maintained by heartmove, whose directory page address is:
https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-side-chat-heartmove/
package.json declares dsh.client.platform = "web", so it only works on the web UI. Running tasks in pure headless mode will not display the right-hand panel.
Core Features¶
The capability descriptions in the directory detail page and the repository README are consistent, and can be divided into the following sections.
1. Select content and ask questions in the sidebar. Select any message text in the main conversation, and a “Ask in side chat” button will pop up, with the selected content automatically brought into the sidebar. If there is already an active side chat for the current main session, there will also be an option to “Continue asking in the active side chat”.
2. Isolated by main session. Each main session has its own independent side chat. Side sessions are hidden regular DSH sessions and do not take up space in the main session list.
3. Inherit main session context, and can be adjusted independently. The side chat can perceive the parent main session and the working directory it is in, and inherits the toolset, model, thinking difficulty, and permission presets by default. The panel replicates the secondary model menu (provider → model → thinking difficulty) and permission menu from the main session, and each side chat can be adjusted independently. Complex tasks can be handed off to more powerful models without modifying the main session.
4. “Retrieve information from workspace/main session when needed” switch, off by default. When turned on, the side chat can read workspace files and main session content when more information is needed. It is off by default to avoid exposing main session records and the workspace to the side chat immediately after installation.
5. Share the same conversation capabilities as the main session. Markdown replies, thought process display, image attachments (paste/drag and drop), send/stop buttons, and thinking duration display all reuse the same UI components as the main session.
6. AI replies can be brought back to the main session without sending immediately. Each AI reply in the side chat can be brought back to the current main session: you can select a portion of it, or bring back the entire paragraph with one click. Both options allow you to choose “Bring back directly” (original text) or “Bring back after summarization” (generate a summary using the side chat’s inherited model first). The delivery method can be configured in settings: write to the main session input box draft, or inject as a collapsed prompt line (as context, no draft written, not sent automatically). The model will be able to see the content in the collapsed line in the next conversation.
7. Answer question dialogs without interrupting the workflow. When the main session agent pops up a “question dialog” to ask you a question, the normal workflow will pause waiting for your response. This plugin will automatically list the question and all options in the sidebar panel without manually selecting text. You can “Bring in all” for the entire question, or “Bring in” for each option, and both support continuing an existing side chat or creating a new one. When the panel is collapsed, a floating entry will appear next to the dialog title first. The list can be collapsed/expanded, and individual or all entries can be deleted (deleted entries will no longer appear). The main session will continue waiting for the dialog response, and you can analyze on the side first before bringing back the answer to respond to the dialog.
8. Draggable and collapsible panel, width is remembered. Drag the left edge to adjust the width, within the range of 280–720 px, and automatically constrain to within about 40% of the window to leave space for the main chat area. It will re-adapt when switching monitors or changing scaling. There is no close button, only collapse/expand controls. The interface language follows DSH’s Chinese/English settings.
9. Side chats can be deleted. Each entry in the list has a “×” button, and the “Delete All” button in the top right corner will clear all side chats under the current main session.
Installation and Activation¶
The installation command given on the community directory page is as follows, execute it in the running DeepSeek Harness terminal:
dsh plugin add github:heartmove/dsh-side-chat
Please refer to the original text on the directory page for this command, do not construct it yourself based on the plugin name. The dsh CLI will pull the plugin from GitHub and install it into the current profile. Plugins from GitHub may execute code during installation, and the plugin will run with the permissions of the current dsh process. Before installing, you should review the repository source code and the MIT license; only install plugins from sources you trust.
For reproducible installation, you can pin the commit hash. When checking the repository for this article, the latest commit on the main branch is 9dda48d72d3b51589096e8b130d3dd83740531f7 (2026-08-16, commit message: bump to 0.2.0), which can be written as:
dsh plugin add github:heartmove/dsh-side-chat#9dda48d72d3b51589096e8b130d3dd83740531f7
The hash will change as the repository is updated, so it is safer to confirm it on GitHub before installing. The placeholder notation on the directory page is github:heartmove/dsh-side-chat#commit.
The repository README also provides a version with a profile specification, which installs the plugin into the web profile:
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:heartmove/dsh-side-chat
This is a bundle package: package.json declares dsh.bundle.patch → cordis.patch.yml, and dsh plugin add will complete both installation and activation at the same time. Installing via git pulls the source code, and pnpm will run the package’s prepare script (tsdown) after checkout, building from src/ to lib/.
pnpm ≥ 10 will refuse to run the prepare script before adding the git dependency to the whitelist, so the first add may fail with the prompt Ignored build scripts. Add the exact package name key printed by pnpm into the profile’s pnpm-workspace.yaml (path like ~/.dsh/profiles/web/pnpm-workspace.yaml):
allowBuilds:
dsh-side-chat: true
Then re-run the add command. The whitelist means “allow this package’s code to run on your machine during installation” — only whitelist packages whose source code you trust, and pin to a specific commit whenever possible to avoid silently changing the actual running code from subsequent pushes.
After installation, restart dsh web and force refresh your browser (Ctrl/Cmd+Shift+R).
If you have cloned the repository locally, you can also install it from the parent directory of the checkout:
npx -p @deepseek-ai/dsh dsh plugin --profile web add ./dsh-side-chat
Typical Usage¶
The operation sequence given in the repository README is as follows.
- Select part of the text from a message in the main conversation.
- Click the popped up “Ask in side chat”. If there is already an active side chat, you can also choose “Continue asking in the active side chat”.
- The right-hand panel will open (or expand), and the selected text has already been brought into the input box.
- Adjust the model/thinking difficulty, permissions, and the “Retrieve information from workspace/main session when needed” switch as needed.
- Send. The reply will stream back with Markdown rendering; a “Thinking” collapsed line will be displayed if needed.
- Drag the left edge of the panel to adjust the width, or use the collapse/expand controls.
Send behavior. The default sendImmediately is enabled: the selected content will be sent immediately, and your configured default prompt will be automatically appended. After turning it off, the selected content will first be placed as an attachment in the input box, and you can confirm and edit it before sending.
Bring back to main session. AI replies in the side chat can be brought back to the current main session, but will not be sent out immediately:
1. Select a portion of the reply, and choose “Bring back directly” or “Bring back after summarization” from the popped up menu.
2. Or click the two同名 buttons below the reply body to bring back the entire paragraph (or its summary) with one click.
3. Depending on the “Bring content back mode” setting in the configuration, the content will either be appended to the main session input box draft (can be edited and sent later), or injected as a collapsed prompt line with a source tag (no draft written, visible to the model in the next conversation).
For question dialogs. When the main session pops up a question dialog:
1. If the panel is collapsed, first click the floating entry next to the dialog title to open the panel.
2. Use “Bring in all” for the entire question, or “Bring in” for a single option; both support continuing an existing side chat or creating a new one.
3. First clarify the options and context on the side, then bring back your conclusion, and finally respond to the dialog. The main session will continue waiting, and the plugin will not automatically click through the dialog for you.
Open DSH Settings → Side chat (Side chat), where you can modify the following items, and the preferences are saved under the setting namespace dsh-side-chat:
| Setting Item | Default Value | Description |
|---|---|---|
lookupDefault |
Off | Whether “Retrieve information from workspace/main session when needed” is enabled by default when creating a new side chat |
sendImmediately |
On | Send selected content immediately after selection, or place it as an attachment in the input box first |
defaultPrompt |
Empty | Additional prompt appended to the selected content when “Send immediately” is enabled |
bringMode |
draft |
Delivery method for brought back content: draft writes to the input box draft, context injects as a collapsed prompt line |
Applicable Scenarios and Notes¶
This plugin is suitable for users who are already using dsh web and often need to单独追问 a specific segment of output in the main session, without wanting to mix the追问 into the main task context. The side chat inherits the same toolset and working directory, making it ideal for checking errors, comparing solutions, and reviewing options popped up by the agent; after reviewing, you can bring back the summary or original text to the main session.
There are a few points to note when using it.
First, this is a Web UI plugin. dsh.client.platform is set to web, and there is no right-hand panel in headless mode without a UI.
Second, the DSH version must meet >= 0.1.0-rc.6. The preview version’s APIs are still changing, so check the repository’s peerDependencies and your local dsh version before installing.
Third, the side chat inherits the main session’s permission presets by default, and after enabling the “retrieve information” switch, it can also read workspace files and main session records. If you grant too much permission, the side session can make changes to the same workspace. It is safer to keep the switch off by default when you do not need to read files.
Fourth, there is another plugin with the same name in the community directory (maintained by AHGGG). The installation command must be written as github:heartmove/dsh-side-chat from the directory page, do not install the other repository’s version.
Fifth, the plugin runs with the permissions of the current dsh process, and may execute code from GitHub during installation (including pnpm prepare / tsdown builds). Review the source repository and license before installing; pin the commit when you need a reproducible environment. The community directory is not an official app store, and inclusion does not equal official endorsement.
Sixth, the LICENSE file header reads Copyright (c) 2026 dsh-sub-chats contributors, which does not exactly match the current repository name. Just refer to the MIT text in the repository directly, no additional speculation about the project’s history is needed.
Summary¶
The dsh-side-chat maintained by heartmove adds a genuine intelligent agent session to the right side of DeepSeek Harness’s web main session: isolated by main sessions, inheriting tools and permissions, allowing you to ask questions by selecting text, and replies can be brought back to the main session as original text or a summary; when the main session pops up a question dialog, you can also clarify the options on the side before responding. The installation command should follow the directory page:
dsh plugin add github:heartmove/dsh-side-chat
Directory detail page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-side-chat-heartmove/
GitHub repository: https://github.com/heartmove/dsh-side-chat