DeepSeek Harness (DSH) uses a plugin-based architecture. When using the Web profile, developers often lack a convenient local command execution environment in addition to the chat interface. dsh-terminal-plugin provides a bottom terminal panel for the DSH Web GUI, replicating the interactive experience of VS Code’s integrated terminal.

Core Features

This plugin provides a terminal panel below the central conversation area in the DSH Web GUI. It has the following characteristics:

  • VS Code-style interaction: Supports multiple terminal tabs, uses real PTY, and supports colors, cursor control, and interactive programs such as vim, python, and top.
  • Non-intrusive layout: The terminal panel only occupies the central area and does not squeeze the left or right sidebars.
  • Session persistence: After refreshing the page, the terminal is preserved and recent output can be replayed.
  • Link and path handling: URLs and file paths in the output support Ctrl / Cmd + click to open (only http/https/ftp are supported).
  • Right-click menu: Following VS Code conventions, right-click copies when content is selected, and right-click pastes when no content is selected.

Installation and Enablement

Make sure your local environment satisfies Node.js 20 or higher and can run @deepseek-ai/dsh with the Web profile via npx.

Use the DSH CLI to add the plugin to the Web profile:

npx @deepseek-ai/dsh plugin --profile web add /path/to/dsh-terminal-plugin

After installation, restart dsh web or refresh the browser page to make the changes take effect.

How to Use

  1. Open the panel: Press `Ctrl+`` (the backtick key) to open or close the terminal panel.
  2. Create a new tab: Press Ctrl+Shift+\`` to create a new terminal tab, or click+` in the toolbar.
  3. Click a link: In terminal output, hold Ctrl (Cmd on macOS) and click a URL or file path. For security reasons, only links using the http, https, and ftp protocols are supported.
  4. Right-click actions: The right-click menu in the terminal area is handled by the plugin, with behavior consistent with VS Code’s integrated terminal.

Configuration

The plugin supports adjusting its behavior through configuration options. Common configuration items include:

  • mountPrefix: The HTTP and WebSocket path prefix for the plugin. Defaults to /dsh-terminal.
  • shellPath / shellArgs: The shell path and startup arguments. Auto-detected by default.
  • cwd: The working directory for new terminals. Defaults to the workspace associated with the current session.
  • rows / cols: The initial terminal size. Defaults to 24 / 80.
  • scrollbackBytes: The number of bytes retained for output replay. Defaults to 262144.
  • maxTerminals: The maximum number of concurrently existing terminals. Defaults to 20.
  • idleCloseAfterMs: How long to wait before closing when there are no connections. 0 means do not auto-close.

Notes and Limitations

  • Permissions and Security: The terminal runs in the DSH host process and has the corresponding system permissions. For security reasons, if authentication capabilities are missing, the plugin only accepts requests from loopback addresses.
  • Drag Limitation: Dragging the panel height does not adjust the rows and columns of existing PTYs; newly created terminals will use the dimensions at that time.
  • Link Limitation: Long URLs wrapped across terminal lines are not joined across lines; relative paths are not recognized as links.
  • Concurrency Limitation: When the same terminal is opened simultaneously across multiple browser connections, input is shared.

Conclusion

This plugin provides native command-line operation capabilities for DSH Web profile users, making up for the shortcomings of a pure web interface during debugging. You can view details through the SkillHub plugin catalog, or view the source code and documentation on GitHub.