Introduction¶
When performing longer tasks in DeepSeek Harness (DSH), the main session accumulates a batch of completed turns, context, and ongoing work. If you directly ask a temporary question midway, it might pull the main agent away from its current task trajectory.
dsh-side-chat is a plugin for DSH: it opens a read-only side chat next to the main session, inherits the completed parent context to answer temporary questions, while allowing the parent agent to continue running independently. The project belongs to Lukeknow0 and is licensed under the MIT License.
What is this¶
The positioning of dsh-side-chat is: a read-only side chat plugin for DeepSeek Harness.
It inherits the completed parent context to handle temporary side questions while allowing the parent agent to continue running. The side session is used for bypass questions and does not write the side conversation back to the main dialogue.
Core Capabilities¶
The verified capabilities of dsh-side-chat include:
- Inherits completed parent context and allows asking questions in the temporary session.
- Keeps the parent agent running independently, ensuring side questions do not disrupt the continuation of the main session.
- Provides an adaptive interface: uses the Better Sidebar integration when available; otherwise, falls back to a collision-aware overlay drawer.
- Enforces read-only constraints: sandbox read-only mode with an approval policy of
never. - Only exposes read-oriented tools that are actually available in the parent composition.
- Rejects unknown or non-read-only tools during execution, including nested Code Mode dispatch.
- Preserves transcript and draft: actions like Minimize, Escape, native tab close, header action, or
Cmd/Ctrl + Shift + .do not discard current content. - Provides clear lifecycle control: “internal End” requires confirmation; when both the parent and child are idle, it enters a 30-minute parked lease.
- Supports English/Chinese UI.
Installation and Enablement¶
First, confirm that the runtime environment meets the following requirements:
- DeepSeek Harness:
>=0.1.0-rc.7 <0.2.0 - Node.js:
^22.19.0 || >=24.0.0 - Browser: Current Chromium/Safari/Firefox supported by DSH Web
Install from npm:
dsh plugin --profile web add @lukeknow0/dsh-side-chat
Install from GitHub:
dsh plugin --profile web add github:Lukeknow0/dsh-side-chat
After installation, restart the running dsh web process, then refresh the existing Harness page.
Typical Usage¶
- First, complete at least one turn in a normal parent conversation.
- In the conversation header, select Side Chat or press
Cmd/Ctrl + Shift + .. - Type a focused side question. At this point, the completed parent context will be silently prepared in the background.
- You can switch tasks. The drawer will be parked by the parent; upon returning, it reappears with the original transcript.
- To hide Side Chat, you can use Minimize, Escape, native tab close, header action, or
Cmd/Ctrl + Shift + .. The transcript and draft are preserved. - If you confirm to end, select internal End and confirm.
Retention and Closing¶
- A parent can only have one retained Side Chat at a time.
- The parked countdown only starts after both the parent and child are idle.
- The parked lease is 30 minutes.
- If either the parent or child becomes active again during the countdown, the 30-minute timer restarts the next time both are idle.
- Hiding Side Chat preserves the recoverable state.
- Confirming internal End removes the recoverable state.
Security and Cleanup Boundaries¶
dsh-side-chat uses a read-only and default reject strategy for the child side session:
- Inherits the completed parent context.
- Uses sandbox read-only mode with an approval policy of
never. - Only exposes read-oriented tools that are actually available in the parent composition.
- Rejects unknown or non-read-only tools during execution, including nested Code Mode dispatch.
Regarding cleanup, please note: on DSH 0.1.0-rc.7, temporary side chats are not guaranteed to be physically deleted because that version does not have a public API for deleting durable session logs.
When an internal End is confirmed or the lease expires, the plugin will:
- Remove client admission.
- Abort pending starts or cancel active work.
- Dispose the live
AgentHandleand remove the child from the active runtime. - Call the public workspace archive API when available.
The archived session log may still remain on disk. This project does not unlink private persistence files and does not rely on unstable internal storage paths.
Applicable Scenarios¶
dsh-side-chat is suitable for handling longer tasks in DSH Web when you need to ask temporary read-only questions, such as confirming context, viewing completed information, or seeking bypass clarification, while wanting the main agent to maintain its current trajectory.
It is not suitable for using the side session as a write operation entry. Its toolset is limited: it only exposes read-oriented tools that are actually available and rejects unknown or non-read-only tools during execution.
The plugin runs with the permissions of the current dsh process. Before installation, it is recommended to check the source code and the MIT license to confirm it fits your usage environment.
Links¶
GitHub Project Page: https://github.com/Lukeknow0/dsh-side-chat