A 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 views.
Install
# from npm (prebuilt)
dsh plugin --profile web add @lk251066/dsh-tui
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:lk251066/dsh-tui-pro
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A multi-session terminal workbench for DeepSeek Harness. Keep a durable Assistant and the project sessions you actively maintain in one full-screen TUI.

Install · Latest release · dshfind · Report an issue
Quick start
You need Node.js ^22.19.0 || >=24.0.0 and DEEPSEEK_API_KEY configured outside this repository.
Already have the dsh CLI? Install the plugin and its profile layer once:
dsh plugin --profile tui add @lk251066/dsh-tui
Then launch it from any project directory:
dsh --profile tui
Without a global dsh installation, use the same profile through npx:
npx -y @deepseek-ai/dsh@latest plugin --profile tui add @lk251066/dsh-tui
npx -y @deepseek-ai/dsh@latest --profile tui
The package owns both the TUI plugin and its cordis.patch.yml profile layer. No second bundle package is required.
Why this TUI
One terminal, multiple projects
The Assistant is one durable session outside every project workspace. It keeps a permanent working directory and continues the same conversation across launches; bounded context is renewed through dsh compaction while the durable log and plugin-local long-term memory remain available. Active project sessions stay grouped by workspace in the fixed sidebar.
A stable full-screen canvas
Only the transcript scrolls. The editor, current plan, live status, model, context usage, and active sessions remain in place while user messages, Markdown, thinking, tools, diffs, plans, todos, and subagents use distinct compact treatments.
The terminal title keeps the mounted session name visible. While work is active, a low-frequency spinner and the total number of running sessions appear in the title, and supported terminals also expose a taskbar progress state.
Native DeepSeek Harness composition
The package is an out-of-tree dsh plugin bundle, not a fork of the harness. Sessions, tools, skills, models, permissions, compaction, and subagents continue to use the services provided by the selected dsh profile.
Session workflow
Launching from a directory opens its first manually ordered active project session. If the directory has none, dsh creates one and adds it to that workspace.
/newcreates another session in the current project./new <path>creates a session for another project./assistantreturns to the fixed Assistant./switch,Alt+Left,Alt+Right, or a sidebar click changes the active project session./quitcloses the current project session, preserves its history, and returns to the Assistant./sessionsbrowses complete history;/exitcloses the TUI.
The Assistant can manage active project sessions and read their completed user/assistant dialogue. Hidden reasoning, tool traffic, and unfinished output are not exposed across sessions.
Assistant replies always remain fully rendered; transcript scrolling handles long answers. Thinking and tool bodies can collapse, but a tool's identity, status, and failure remain visible. Memory is enabled for the Assistant by default and persists durable user facts without silently evicting older records; /memory off removes memory from that session's model context without deleting it.
Interaction
| Action | Control |
|---|---|
| Send immediate steering | Enter while a turn is running |
| Queue the next turn | Tab |
| Recover the latest queued message | Esc before cancellation |
| Recall the latest submission | Empty-input Up |
| Browse current-conversation checkpoints | Double Esc |
| Toggle tool and context body detail | Ctrl+O |
| Expand settled reasoning | Ctrl+R |
| Select and copy transcript text | Drag with the left mouse button |
| Attach a clipboard image | Alt+V |
| Control session memory | /memory, /memory on, /memory off |
Run /help for the complete command list. Models, reasoning effort, skills, themes, settings, permissions, questions, and approvals use the fixed bottom area instead of centered popup windows.
Images and terminals
@ completes workspace files. Alt+V attaches a clipboard image when the selected model advertises image input. Windows uses PowerShell to read clipboard images, macOS requires pngpaste, and Linux requires wl-paste or xclip.
The TUI requires an ANSI-capable terminal. The sidebar hides below 65 inner columns, and a terminal height of at least 24 rows is recommended.
Configuration
- id: tui
name: '@lk251066/dsh-tui'
config:
sidebarWidth: 32
assistantCwd: '/absolute/path/to/assistant'
showReasoning: false
maxToolOutputLines: 6
See the package reference for the supported entry path and exported composition plugins.
Project links
- npm package
- GitHub releases
- Community discussions
- Development setup
- Verification guide
- Change history
- Contributing
This plugin follows the developer-preview dsh release line. Each release is checked from source, from its packed npm artifact, through a clean public dsh profile, and through a real Linux PTY before publication.

License
MIT. Based on the original TUI implementation from DeepSeek Harness.
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 8296
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 8296
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 3968
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 3948
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 3877
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1413
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.