dsh-tui-plugin
Manifest validTerminal UI plugin for the DeepSeek Harness dsh CLI: an interactive in-process host surface over dsh-base (sessions, streaming conversation, tool cards, approvals, questions, jobs, subagents, goals, p
dsh-tui-plugin
A standalone terminal UI bundle for the DeepSeek Harness: an interactive in-process host surface that runs on top of the official dsh base bundle — session list, streaming conversation with light markdown, tool cards, approvals, questions, background jobs, subagents, goals, plan mode, model selection (with reasoning-effort cycling), settings (file editing), skills, and @ file/skill references.
It is a standard Cordis bundle plugin (cordis.patch.yml + tui-runner/tui-startup function plugins). It mounts no Host, HTTP server, or browser — it drives the same ctx host services the official Web surface proxies.
Requirements
- Node
^22.19or>=24 - The official DeepSeek Harness CLI installed, so the
dsh-basebundle and the cmdline/exit services exist.
Install & run
This is a bundle plugin for the official dsh CLI: install it into a profile's bundle stack, then boot that profile. It layers the terminal runner over the official dsh-base bundle.
npm i -g @deepseek-ai/dsh
npm i -g dsh-tui-plugin
# one-time: create/use a profile and add this bundle to it
dsh plugin --profile tui add dsh-tui-plugin
# (the first `add` creates the `tui` profile; it also installs dsh-base)
# every launch: boot the profile
dsh --profile tui
dsh --patch <path>takes a patch file path, not a package name. Bundle plugins are loaded by listing the package name in the profile'sdsh.profile.bundles(whichdsh plugin --profile tui add dsh-tui-plugindoes for you) and installing it with pnpm in the profile directory.
From there the TUI opens in raw mode: 1–8 views, / command palette, @ mentions, mouse selection (copies on release), wheel + PgUp/PgDn scrolling, /lang for 中文.
The status line shows the model route with its reasoning effort (provider/model · high), accumulated token usage (↑in ↓out plus cache traffic), and while a turn runs, its elapsed time and output rate (12.3s 45/s). Resuming an interrupted session clears the stuck running state and shows a "session resumed — send a message to continue" notice instead.
Session lifecycle & compaction
- The sessions view marks heavy sessions (large accumulated prompt-side context,
◆) so you can spot the expensive ones at a glance. - Resuming a heavy session (≥ 40k prompt tokens) offers
/compactfirst: continuing would re-send the whole context on every request, missing provider prompt caches and billing full uncached input each time. Pressyto compact,n/Escto continue as-is./compactis also always available from the command palette.
Build
npm i && npm run build # emits lib/ via tsc
Test
npm test # unit suites (key decoder, screen, views, fold, popups,
# app state machine, runner wiring, i18n)
tests/real-composition.spec.ts boots the shipped base + tui patches through the real Loader; it needs the official base patch on disk:
DSH_BASE_PATCH=/path/to/deepseek-harness/packages/bundle/base/cordis.patch.yml npm test
(The official @deepseek-ai/dsh package may ship its base patch; point DSH_BASE_PATCH at it when it does.)
Publish checklist
- Use the name as-is —
dsh-tui-pluginis free on the npm registry (verified), and every reference (package.json,cordis.patch.yml,src/) already matches it. Only if you want a personal scope (e.g.@your-scope/dsh-tui-plugin) do you rename — and then also update the twodsh-tui-pluginname:entries incordis.patch.yml(the patch rows load this package by its own name). - Verify dependency versions against the registry (
npm view @deepseek-ai/dsh-llm versionetc.) — the ranges here match the day this was scaffolded; the harness moves fast. npm publish(with--provenancewhen your registry supports it).- Add the
dsh-pluginGitHub topic on your repository.
Upgrading
The bundle pins @deepseek-ai/dsh-* service APIs that are stable, but official releases occasionally adjust the base patch rows. When a new @deepseek-ai/dsh lands, bump the ranges and re-run the composition test against the new base.
License
MIT — derived from the DeepSeek Harness project (MIT).
Comments
Loading…
Similar plugins
by cofy-x
DSH-native terminal workbench (TUI) for DeepSeek Harness with durable sessions, structured tools, plans, subagents, and rotating Pokémon startup art.
★ 20
↓ 359/wk
Apache-2.0
TypeScript
Sep 24, 2026
dsh plugin --profile terminal add @cofy-x/dsh-consoleby jianjianzhu
Full-page Harness console for the DeepSeek Harness Web GUI: sessions, plugins, market, MCP, skills and usage in one shell.
★ 0
MIT
JavaScript
Sep 20, 2026
dsh plugin --profile web add dsh-harness-uiby rayafriandion
An opencode-inspired terminal UI (TUI) for DeepSeek Harness, shipped as a dsh profile app plugin. | DeepSeek Harness 的终端界面(TUI),受 opencode 启发,以 dsh profile 应用插件形式启动。
★ 9
↓ 207/wk
NOASSERTION
JavaScript
Sep 20, 2026
dsh plugin --profile terminal add dsh-oc-tuiby orriduck
A small, session-aware terminal UI for DeepSeek Harness
★ 3
↓ 287/wk
MIT
TypeScript
Aug 13, 2026
dsh plugin --profile web add dsh-tuiA full-screen terminal workbench for DeepSeek Harness with a durable assistant, workspace-grouped project sessions, transcript-only scrolling, and structured thinking, tool, diff, plan, and subagent v
★ 0
↓ 211/wk
dsh plugin --profile web add @lk251066/dsh-tui✦
No screenshots
by fan56
A fully-featured pi-style terminal UI for DeepSeek Harness (dsh) — history look-back & fork-at-turn, guided preset switching, live subagent steering, model profiles & themes.
★ 10
↓ 662/wk
MIT
TypeScript
Sep 25, 2026
dsh plugin --profile terminal add @aiwayds/dsh-tui-pi