Preface¶
When running agents with DeepSeek Harness (dsh), the main session often accumulates a lengthy task context: which files have been read, which code segments have been modified, and what needs to be submitted next. At this point, if you suddenly want to confirm “which file is the largest in this directory” or analyze a single event stream separately, feeding the question directly into the main conversation will add the answer to the model context, which can easily lead the subsequent rounds off track.
OpenAI Codex uses /side to open a persistent side session, while Claude uses /btw for one-off side questions. The core idea is the same: ask questions bypassing the main thread without altering it. The community plugin dsh-sidechain connects these two types of commands to dsh: it runs a side chain in a temporary fork of the current session, leaving the main session history unchanged.
The core philosophy of DeepSeek Harness is “everything is a plugin”. The directory page introduced in this article comes from the community site DeepSeek Harness Plugin Repository, which has no official affiliation with DeepSeek / Fangfu and is not an official app store. Below is a collation of what this plugin is, how to install it, and how to use it, cross-checked against the directory details page, the GitHub repository README, package.json, dsh.plugin.json, and deepseek-ai/deepseek-harness.
What It Is¶
dsh-sidechain is a session and messaging plugin maintained by the GitHub organization omdsh-dev, with the repository address omdsh-dev/dsh-sidechain. Its npm package name is @dsh-external/dsh-sidechain, current version 0.6.4, licensed under BSD-3-Clause, and primarily written in TypeScript. As of August 18, 2026, the GitHub page showed 9 stars; the community directory page showed 6 stars at the same time, so the repository page data shall prevail.
The problem it solves is very specific: create a side question or a follow-up side session without interrupting or polluting the main session. It achieves this by forking the current session to get an independent sub-session. The side session inherits the completed rounds from the main session as reference context, but has its own message history and tool execution processes; prompts, thinking, tool calls, and answers will not enter the model context of the main session. The Web UI will open a side chain panel on the right, while the main session interface remains unchanged.
The engine scope declared in dsh.plugin.json is the public version of DSH 0.0.1-rc.5 or ^0.1.0-rc.6. The repository README states that the current version adapts to these two versions, and the development dependencies are fixed to 0.1.0-rc.6. The “More Introduction” section on the directory page still only mentions rc.5, so the dsh.plugin.json and README of the repository shall prevail.
Core Functions¶
The plugin exposes three slash commands externally:
| Command | Purpose |
|---|---|
/btw <question> |
One-off side question, suitable for quick information confirmation |
/side <question> |
Create a persistent side session for follow-up questions |
/side list |
List direct sub-agents of the current session |
/btw follows Claude’s one-off side question style: the command returns immediately, the side chain panel opens automatically, and the single-round question and answer runs in the background. This thread is read-only and cannot be followed up. The main session can continue to be used while it is running.
/side follows Codex’s persistent side session style: after the panel opens a new thread, you can send follow-up messages by entering content in the bottom input box and pressing Enter. Both /side and /btw must include a question; the README notes that the current subagent API does not support creating an empty thread first and waiting for the first input.
The right-hand panel is the main interface of this plugin. There is a side chain button in the session title bar; the shortcut key is Ctrl/Cmd+Shift+E. The panel can be dragged to adjust the width, expanded, and manually refreshed. The list will display the direct sub-agents of the current session, as well as their type, title, running status, and activity summary. After selecting a thread, you can see the following in the timeline:
- User messages and model responses
- Context injection and model thinking
- Tool calls, results, and errors
- Markdown, code blocks, tables, and formulas
The sub-session history is persisted, and you can still view it after restarting DSH. The panel only reads the sub-session logs and will not switch or activate the current conversation in the main session.
The isolation boundaries are also noted in the README and need to be remembered separately:
- The fork does not include the ongoing round of the parent session.
- The inherited content is only for reference, and messages after the boundary are the current tasks of the side session.
- Messages, tool activities, and responses of the side session remain in the sub-session and will not be written back to the main session as user messages or sub-agent notifications. The main session only retains the result of the “create side session” command.
- The default persona tends towards non-destructive exploration: it will not actively modify files, request elevated privileges, create additional sub-agents, or report back to the parent session. If the user explicitly requests modifications in the side session, the actual permissions are still determined by DSH’s sandbox and tool configuration.
The optional configuration items are as follows (all from the repository README):
| Configuration Item | Default Value | Description |
|---|---|---|
providerName |
fork |
The subagent provider used to create the sub-session |
persona |
Built-in side session persona | Behavior constraints for the side session; an empty string means using the deployment persona |
readOnlyTools |
Not set | Optional tool allow-list, e.g. ['read', 'grep', 'glob'] |
Installation and Activation¶
The installation command given on the community directory page can be run in the DeepSeek Harness terminal:
dsh plugin add github:omdsh-dev/dsh-sidechain
The directory page also notes that for a reproducible installation, you can pin the commit hash. As of August 18, 2026, the latest commit on the repository’s master branch is b56038b22e037c52b189cef37f96702ab307bf3c (commit message: support official DSH rc.6):
dsh plugin add github:omdsh-dev/dsh-sidechain#b56038b22e037c52b189cef37f96702ab307bf3c
The repository README has two supplementary points worth checking before installation.
First, this plugin depends on DSH’s built-in dsh-subagent, dsh-subagent-fork, and dsh-commands. These dependencies are already included in the default Web profile. The package.json also lists the client platform as web, which injects the side chain panel into the Web UI. Therefore, when installing for the web interface, it is more reliable to add the --profile web flag:
dsh plugin --profile web add github:omdsh-dev/dsh-sidechain
The GitHub path in the original README is written as github:Buyi-wsgzg/dsh-sidechain. This path corresponds to another repository with the same name, and the author who recently committed code to omdsh-dev/dsh-sidechain is also Buyi-wsgzg, with similar content on both sides. This article introduces the version maintained by omdsh-dev and listed in the directory, so the installation command based on the directory page github:omdsh-dev/dsh-sidechain shall prevail.
Second, when pnpm 10 or above installs Git dependencies for the first time, it may prompt you to allow execution of prepare. Follow the command output to add the plugin key to the Web profile’s pnpm-workspace.yaml, then re-run the installation command. The plugin will write a configuration layer similar to the following to the Web profile:
- insert:
- id: dsh-sidechain
name: '@dsh-external/dsh-sidechain'
If you need to restrict the side session to only use read-only tools, you can add a config field to the same layer:
- insert:
- id: dsh-sidechain
name: '@dsh-external/dsh-sidechain'
config:
providerName: fork
readOnlyTools:
- read
- grep
- glob
After installing or updating the code, restart dsh web and refresh the page. The uninstall command in the README is:
dsh plugin --profile web remove @dsh-external/dsh-sidechain
This will remove both the profile dependency and the plugin configuration layer. After completion, you also need to restart dsh web and refresh the page.
Both the directory page and the README remind users that the plugin runs with the permissions of the current dsh process and may execute code during installation. You should inspect the source code repository and license before installing.
Typical Usage¶
One-off side questions are suitable for confirmations that you do not want to add to the main session:
/btw Which file is the largest in this directory?
The command will return immediately. After the side chain panel opens, you can see the execution process and the answer. This thread cannot be followed up; use /side if you need to dig deeper.
Persistent side session:
/side Analyze the event flow of the current plugin
The panel will open a new thread. Send follow-up messages in the bottom input box as needed. The main session can continue its original task.
View the direct sub-agents already attached to the current session:
/side list
Note: /side list and the sidebar list all direct sub-agents of the current session, not limited to threads created by this plugin. If you have installed other plugins that fork sub-sessions, they will also appear in the list.
Applicable Scenarios and Notes¶
It is suitable for these scenarios:
- The main session is modifying code or writing a plan, and you only want to bypass a factual confirmation without adding the answer to the main context
- You need to separately analyze event flows, directory structures, or a certain implementation, and may follow up with multiple rounds of questions
- You are using the DSH Web UI and want to view side chain thinking, tool calls, and responses in the right-hand panel instead of switching away from the main conversation
Before using it, please note the following points, all from the directory page or repository instructions, not additional additions:
1. Check the DSH version first. Currently compatible with 0.0.1-rc.5 and 0.1.0-rc.6. DSH is still in developer preview, and core plugins and APIs will change. Check the engines field of the repository before upgrading.
2. The side chain is not an empty session. /side must include the first question; the fork also does not include the ongoing round of the parent session.
3. /btw is only one round. It is read-only and cannot be continued. Use /side for multi-round conversations.
4. The default persona does not equal zero permissions. It restricts the side session from “actively causing damage”; if the user explicitly requests file modifications, it still follows DSH’s sandbox and tool policies. If you want the side questions to be as read-only as possible, use readOnlyTools to tighten the allow-list.
5. This is a community plugin, not an official app. It was discovered through an independent directory site and the GitHub topic dsh-plugin. Read the source code and BSD-3-Clause license before installing; for a reproducible environment, pin the commit instead of tracking the floating default branch long-term.
6. The web interface is a first-class capability. The side chain panel, shortcut keys, and real-time summaries are tied to the Web profile. If you only install it in a pure terminal environment, the right-hand panel described in the README will not be available.
Summary¶
dsh-sidechain brings Codex’s /side and Claude’s /btw to DeepSeek Harness: it uses forking to create independent sub-sessions, preventing side questions from polluting the main session’s model context. Use /btw for one-off confirmations, /side for follow-up conversations, and the list and panel to view sub-agent status. For users running long tasks in the Web UI who often need to ask bypass questions, it adds session isolation rather than new model capabilities.
Reference addresses:
- Community directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-sidechain/
- GitHub repository: https://github.com/omdsh-dev/dsh-sidechain
- DeepSeek Harness: https://github.com/deepseek-ai/deepseek-harness