dsh-TUI
DSH 官方公众号收录的 TUI 补位插件:鲸鱼顶栏/实时状态/流式思考/双击 Esc 回滚/上下文进度+TPS。npm 一键装。 DSH official WeChat featured TUI plugin — whale bar, live status, streaming thoughts, double-Esc rollback, context bar + TPS. npm one-click.
Links
README
From the repo.
English | 简体中文
dsh-TUI
An interactive terminal UI plugin for DeepSeek Harness. It ships a pixel-whale header, live work status, streaming thinking, double-Esc time rewind, a context progress bar, and a TPS gauge. It mounts as a pure plugin, with no core changes. Install to enable; uninstall leaves no patches behind.
Highlights
- Pixel whale pet — three startup intros, click to wake; freezes after the first task.
- Terminal-native UI — streaming Markdown, tool cards,
/and@completion,#L12-14ranges, history search, zh/en UI. - Images — Kitty/Sixel thumbnails, centered preview with zoom and pan, paste-time fitting, text fallback.
- Mermaid diagrams —
```mermaidfences drawn as Unicode diagrams. - Timeline rail — every turn clickable; timeline / scrollbar / hidden gutter.
- Live state — activity animation, context bar, TPS, cache hit rate, effort, tokens, Git and session metadata.
- One session manager —
/resume/home/agentview/bg⌸. - Session workflow —
/new/compact/export/btw, model hot-switch, fork, rewind, vim, fullscreen draft editor. - IDE selection channel — a VS Code selection lands in the prompt.
- DSH integrations — presets, skills, MCP, goals, todos, subagents, questionnaires.
- Extensions — browser interaction, computer use and more.
- Built for long sessions — event-driven projection, virtualization, bounded caches.
Keys and commands: Interaction and commands. Everything else: documentation index.
Preview
Conversation with the pixel-whale header |
Live IDE selection badge |
Featured & Listed
Featured by the DeepSeek Harness official WeChat account, listed in the dshfind plugin directory, and ranked #7 on GitHub Trending daily (TypeScript).
Quick Start
Prerequisites: Node.js and
deepseek-harness, with
DEEPSEEK_API_KEY configured.
The primary compatibility target is DSH 0.1.7-rc.1. This adapter supports its
Shell API, V4 session messages, declarative presets, and profile-backed settings;
older supported hosts retain their compatibility paths. See configuration.
On DSH 0.1.7, /settings uses the TUI's actual Loader entry ID, including custom
IDs. It requires matching profile dependencies with @deepseek-ai/schemastery
3.18.3 or newer; an incompatible schema stops TUI startup with repair guidance
instead of showing an uneditable settings page. Older hosts keep their legacy settings scope.
# Install the CLI and this plugin globally (ships the dsh-tui command)
npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui
# Start (first run auto-initializes the profile; needs pnpm)
dsh-tui
# Both `dsh-tui` and the short `dst` alias start the same TUI.
dst
Manual alternative: dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui.
The repo's sh install.sh runs that step and checks the required commands.
Afterwards dsh-tui and dsh --profile dsh-tui are equivalent.
New-user note: pnpm ≥11 blocks dependencies with install scripts by default and reports
ERR_PNPM_IGNORED_BUILDS. Updates skip foreign-platform@img/sharp-*native packages, saving about 200MB of downloads./updateanddsh-tui updatewrite both settings automatically. No manual step needed. Details: Getting started.
After startup the TUI checks for newer versions in the background. It never
blocks the first frame. Type /update for a one-shot upgrade. It restarts
automatically and resumes the current session. See
Getting started for the profile lifecycle,
source builds, and troubleshooting, including migration from the former
dsh-cc-tui package.
CLI
| Command | Purpose |
|---|---|
dsh-tui / dst | Start the TUI; dst is a short alias for the same program |
dsh-tui --resume [id] · dsh-tui update · dsh-tui doctor | Resume a session · update the profile and align the launcher · pre-flight environment checks |
dsh-tui safe | Read-only diagnostics, plugin inventory and repair guidance; safe --rescue builds a clean rescue profile |
dsh-tui version · dsh-tui help | Launcher and profile versions and usage; both work even without a dsh install |
Other arguments go to dsh --profile dsh-tui. Safe mode: Getting started.
VS Code: use the integrated terminal or the dsh-tui-vscode extension. See VS Code guide. Herdr: run dsh-tui in a Herdr pane; idle / working / blocked are reported through its local integration API.
Keybindings & Mouse
Enter send · Tab complete · Ctrl+Enter interrupt and send · Alt+Up recall the last message · Esc dismiss, double-Esc rewinds · Ctrl+O details · Ctrl+R history · Ctrl+V paste · Ctrl+Shift+E fullscreen draft editor · ? shortcuts · ← background the session.
While the model is working: Enter steers, Tab queues a follow-up, Ctrl+Enter interrupts and sends.
Mouse (fullscreen): drag to select and copy, double/triple click to select a word or line, click tool cards, timeline ticks and [Image #N] previews.
Full reference: Interaction and commands.
Built-in Commands
/resume · /home · /agentview · /bg · ⌸ open the same session manager: workspace rail, live state, filter, ★ pins. Also /model /new /compact /export /btw /tree /fork /rewind /settings /status /cost /jobs /skills /mcp /login /update.
Background sessions: /bg or ← on an empty prompt; Esc returns. They run in this process and stop when the TUI exits. Logs survive.
Full commands: Interaction and commands.
Configuration & Extensions
Agent presets, themes, MCP servers, environment variables: Configuration · Themes.
How It Works
dsh profile → dsh-base → dsh-TUI Cordis patch → agent preset + DSH services
→ session/event → Channel projection → React components → Ink/Yoga renderer → terminal
The TUI handles interaction and presentation. The session log is the source of truth. DSH services own models, tools, and persistence. Long sessions render in O(visible window).
Runtime path, module boundaries, performance notes and persistence locations: Architecture and limitations.
Known Limitations
- Injected plugin context has no standalone display; it counts into the context segments.
/modelswitches by forking the session; the old session stays in/resume.Ctrl+Vneeds platform clipboard tools; unsupported bitmap formats are rejected.- A background session lives inside this process and stops when the TUI exits.
/thinkingis not persisted;/compactis unavailable under theminimalpreset;/updateneeds adsh --profilelaunch and is refused while a turn is running.
Full list: Architecture and limitations → Known limitations.
Development
CI uses Node 24 and pnpm 11. The package supports Node ^22.19 || >=24.
pnpm install --frozen-lockfile
pnpm build
pnpm smoke
lib/types/ is ignored generated output. pnpm build recompiles it from a
clean output directory and runs the build gates. Git URL installs are not
supported. The source manifest keeps @dsh-std/* as workspace deps and
vendor/dsh-std as a submodule. pnpm ≥11 also refuses git-hosted prepare
scripts by default. Install the registry package instead:
dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui. Rendering,
questionnaire, or tool-card changes also need the matching regression scripts.
Plugin Ecosystem
Plugin development: admission & development guide · plugin-template · dsh-tui-ecosystem. Reference implementation: dsh-working-activity.
Seam grading and API notes: Plugin development. The organization maintains the listing only; it does not endorse community plugins.
Documentation
- Start — Getting started · VS Code
- Use — Keys and commands · User guide · Themes
- Configure — Configuration
- Internals — Architecture and limitations · Session mounting
- Plugins — Admission and development · Seams
- Contribute — Contributing · Roadmap · Community
Everything, bilingual: docs/README.md.
Community
- Ecosystem organization: dsh-tui-ecosystem hosts community plugins, templates, and the curated list. Come ship a plugin, pitch an idea, or just hang out 🐋
- Chat groups (Chinese-language): usage questions, plugin ideas, and feature wishes are all welcome.
- Code of conduct: please read the Contributor Covenant Code of Conduct before taking part.
| WeChat group (dsh-TUI community 4) | QQ group (ID 572549239) |
|---|---|
![]() | ![]() |
The WeChat QR code expires roughly every 7 days; if it stops working, use the QQ group (572549239) or open an issue to nudge us for a refresh.
Permissions and Security Boundary
Windows security warning: the Windows profile defaults to
danger-full-accesswith approval set tonever, so tools have unrestricted access. Inspect and tighten the profile before starting next to sensitive credentials or in an untrusted repository.
No sandbox of its own: dsh-TUI uses the active DSH profile's filesystem, shell, sandbox and approval policies. Permission presets come from the DSH permissionPresets registry.
Details: Permissions and security boundary.
Acknowledgments
- The pixel whale's 22 hand-drawn frames and its idle behaviors are ported from dsh-ui-whale. The frames were drawn cell by cell in Excel. The idle behaviors are fin flutters, tail thumps, sleep Z's, and click hearts. dsh-ui-whale is the DeepSeek Harness web whale-pet plugin by @lhh010, BSD-3-Clause. Thank you for the art and the inspiration 🐋💜
Friends' Links
Community, related projects, and companion tools built by friends: see the links page
Stars
License
Collected info
- ★ 3,169 stars
- ⎇ 197 forks
- Language: TypeScript
- Source updated: 9/24/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.


