DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Plugin Terminal — DSH Plugin for DeepSeek Harness
← Plugins

@dsh-xhl/dsh-plugin-terminal

Plugin Terminal

Bottom terminal panel plugin for DeepSeek Harness Web GUI (node-pty powered, works on Windows via ConPTY)

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @dsh-xhl/dsh-plugin-terminal@0.2.8
READMECompatibilityVersions

Compatibility and provenance

Plugin Terminal is published as @dsh-xhl/dsh-plugin-terminal and currently resolves to version 0.2.8. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/20/2026

Versions

0.2.8stable
9/17/2026
0.2.7stable
9/5/2026
0.2.6stable
9/5/2026
Show 7 more versionsCollapse versions
0.2.5stable
9/5/2026
0.2.4stable
9/4/2026
0.2.3stable
9/4/2026
0.2.2stable
9/4/2026
0.2.1stable
9/4/2026
0.2.0stable
9/3/2026
0.1.12stable
8/24/2026

Related plugins

Loading related plugins…

Latest
0.2.8
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
1.1 MB
Files
14
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
106
Security scan
✓ v0.2.8 scan passed
Last push
9/5/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

README

@dsh-xhl/dsh-plugin-terminal

Bottom terminal panel for the DeepSeek Harness (DSH) Web GUI — an interactive multi-tab shell pinned to the bottom of the page (ConPTY on Windows, openpty on Linux/macOS).

中文 · MIT

Install

dsh plugin --profile web add @dsh-xhl/dsh-plugin-terminal && dsh web

Note: this is a DSH (DeepSeek Harness) plugin — do not use plain npm i @dsh-xhl/dsh-plugin-terminal; it must be installed through dsh plugin to activate.

Screenshots

CollapsedExpandedMulti-tab
collapsedpanelmultitab

Features

  • Bottom panel pinned to the viewport, aligned with the conversation column; the input box always stays above the terminal
  • Configurable shortcut toggles (default Ctrl+``, e.g. Ctrl+J`); drag the top grip to resize (120px–78% viewport, remembered)
  • Multi-tab: + new, ✕ close, ⟳ restart; processes keep running on tab switch; live sessions restore after refresh or workspace switch
  • Every terminal remembers its working directory: new tabs start in the current DSH workspace; after a dsh web restart, ⟳ brings the process back in its original directory instead of the server launch directory
  • Terminals survive dsh web restarts: session metadata + scrollback are persisted live to $DSH_HOME/plugin-data/terminal/; after a restart they come back as "exited" history tabs (full screen replay, one-click restart of the process); tabs you closed stay closed
  • xterm.js 6: colors, blinking cursor, alternate screen, Unicode v11 (CJK width tables), 10000-line scrollback
  • WebSocket duplex channel to the PTY; dark terminal surface in both light and dark themes
  • Copy/paste: select with the mouse and release to copy, right-click to paste; Ctrl+V pastes, Ctrl+Shift+C / Ctrl+Shift+V copy/paste when the clipboard API is available
    • ⚠️ When the GUI is opened over remote http (not https / not localhost) browsers disable navigator.clipboard (insecure context) - the plugin falls back to execCommand copy and lets the browser's native context-menu Paste through, so both still work

Configuration

Plugin behavior lives in the DSH settings document ($DSH_HOME/settings.yaml, section terminal), editable from the GUI at Settings → Plugins. Changes apply to sessions created afterwards — no restart needed; tabs that already exist keep the command they started with.

FieldDefaultMeaning
toggleShortcut`ctrl+``Keyboard shortcut toggling the bottom panel. Format: `[ctrl
shellCommand(empty — auto-detect)Command line used to start new terminal sessions. Empty means the platform default (pwsh/powershell/cmd on Windows, $SHELL on POSIX).

Example — launch cmder on Windows and bind the panel to Ctrl+J:

terminal:
  toggleShortcut: ctrl+j
  shellCommand: cmd.exe /k "C:\cmder\vendor\init.bat"

Notes:

  • shellCommand is used verbatim (no flags are injected): the command line is split on spaces with double quotes honored, so quoted paths work.
  • If the shortcut is a key the terminal also consumes (Ctrl+J is the shell's line feed), a press while a terminal pane has focus goes to the shell instead of toggling the panel.
  • Operator override: the environment variables DSH_PLUGIN_TERMINAL_TOGGLE_SHORTCUT and DSH_PLUGIN_TERMINAL_SHELL_COMMAND take precedence over the settings document (and are the only way to configure headless compositions without the settings service).

Running codex / claude code in the panel

These AI coding CLIs are full-screen TUIs (ANSI escapes + alternate screen + truecolor) and demand a lot from the terminal link. The plugin is tuned for them:

  • Child env gets TERM=xterm-256color and COLORTERM=truecolor (when unset), plus LANG/LC_ALL=en_US.UTF-8 and PYTHONIOENCODING=utf-8 on non-Windows, preventing 256-color fallback and CJK mojibake
  • Volta's injected tool-image dirs are stripped from the child PATH, so node/npm/pnpm inside the terminal switch per project (package.json "volta", .node-version) instead of staying pinned to the Node version the dsh host itself runs under
  • xterm.js 6 answers OSC 10/11/12 queries out of the box (Codex theme detection via background-color query just works)
  • unicodeVersion "11" keeps mixed CN/EN output aligned; drawBoldTextInBrightColors: false keeps true colors on bold text; CJK fallbacks in the font stack; 10000-line scrollback (500k-char server ring buffer)

If rendering still misbehaves:

  • Claude Code: run /tui fullscreen in the session (or CLAUDE_CODE_NO_FLICKER=1 claude) to switch to the flicker-free fullscreen renderer; /tui default reverts
  • Inside tmux: make sure TERM=tmux-256color and tmux >= 3.4, add set -ga terminal-overrides ',xterm-256color:RGB' if needed
  • Windows mojibake: use Windows Terminal, chcp 65001, enable the "Beta: Use Unicode UTF-8" system option; fall back to WSL if it persists
  • Update the CLI: most rendering bugs are regressions already fixed in newer versions

License

MIT

Related plugins

More verified plugins in developer-tools.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Sdk Minimal@deepseek-ai/dsh-sdk-minimalThe standalone minimal SDK profile bundle: JSON-RPC, one DeepSeek adapter, persistent shell, and JSONL sessionsSdk App@deepseek-ai/dsh-sdk-appThe dsh SDK profile bundle: stdio JSON-RPC serving and process lifecycle over dsh-baseSubagent Codex@deepseek-ai/dsh-subagent-codexOne-shot Codex subagent provider over the official app-server protocol