Preface¶
After having a model complete code modifications in DeepSeek Harness, a common next step is to run a build, check the repository status, or run tests. If you have to switch to an external terminal every time, the workflow gets interrupted. DSH can extend the Web interface through bundle plugins; dsh-web-terminal is a plugin maintained by helays that opens an interactive terminal within the Web interface.
What This Is¶
dsh-web-terminal is a DSH bundle plugin. It adds a “Terminal” tab at the top of the “Conversation / Trajectory” view in the DeepSeek Harness Web interface, and includes an interactive terminal built with xterm.js + node-pty for executing commands and debugging immediately after coding is complete.
Core Features¶
- Adds a Terminal tab at the top of the Web interface, alongside Chat and Trajectory.
- Includes an interactive PTY terminal powered by xterm.js + node-pty.
- Uses ConPTY on Windows and an interactive shell on POSIX systems.
- The terminal process persists, allowing consecutive commands to be run in the same shell.
- Automatically reconnects and replays scrollback when switching sessions, returning, or refreshing the page.
- The terminal is fully independent of the model/Agent and does not write into the conversation context.
- Automatically detects PowerShell (Windows) and bash (POSIX), and supports switching between bash/zsh/pwsh/powershell/cmd/python via a dropdown.
- Supports opening multiple terminals within the same tab, each with its own independent process.
- The
/terminalcommand can be used in the input box to jump directly to the terminal.
Installation and Enablement¶
This plugin requires the DeepSeek Harness 0.1.0-rc.6 (next channel) web profile.
Installation command:
dsh plugin --profile web add dsh-web-terminal@github:helays/dsh-web-terminal#main -w
The -w flag in the command is required. The current dsh profile template is a pnpm workspace root, and omitting this flag triggers ERR_PNPM_ADDING_TO_ROOT.
After installation, restart dsh web and refresh the browser:
dsh web
Typical Usage¶
-
Open any session. Once inside the session, three tabs will appear at the top: Chat, Trajectory, and Terminal.
-
Click the Terminal tab, or type
/terminalin the input box:
/terminal
- Execute commands in the terminal, for example:
npm run build
git status
pytest
-
To switch shells, use the Terminal type dropdown in the upper-right corner of the Terminal tab.
-
When switching back to Chat, the terminal and session are preserved; the terminal process remains active and can continue executing the next command.
Use Cases and Notes¶
Suitable for completing local debugging within the DeepSeek Harness Web interface: after the model modifies code, you can directly run builds, check status, or run tests in the terminal right next to it.
By default, the terminal opens in the workspace directory of the current session; if that directory is unavailable, it falls back to the dsh web startup directory.
This terminal differs from the built-in ctx.terminals: dsh-web-terminal starts the user’s own shell via node-pty and does not enter the model/Agent’s conversation context.
The plugin runs within the local dsh process environment. Before installing third-party DSH plugins, it is recommended to review the source code and license. This plugin is licensed under MIT.
Conclusion¶
dsh-web-terminal brings an interactive terminal right next to the conversation in the DeepSeek Harness Web interface, making it suitable for executing commands and debugging immediately after coding is complete.
Related links:
- GitHub repository: https://github.com/helays/dsh-web-terminal
- Plugin directory page (sourced from plugin leads; verify before use): https://www.skillhub.cn/plugins/helays/dsh-web-terminal