Preface¶
If you are using DeepSeek Harness (DSH) for agent development, you might encounter a gap: the official dsh comes with a web interface and a single-shot headless mode, but there is no interactive terminal interface. For those who spend a lot of time in the terminal, prefer keyboard-first workflows, or run harness via SSH in tmux, you either have to open a browser or accept single calls, lacking a middle ground.
DSH’s philosophy is “everything is a plugin.” dsh-tui is the community plugin filling this gap: it provides a full-screen terminal UI in the form of an installable plugin without forking the runtime. Below is an introduction to its positioning, features, installation methods, and usage notes.
What is it¶
@nexlineai/dsh-tui is maintained by nexlineai, under the MIT license, current version 0.1.1. One-sentence positioning: Full-screen interactive terminal UI for the DeepSeek Harness agent runtime – putting the web UI back into the terminal.
It is important to emphasize that it is not a model wrapper, nor a standard chat REPL. It drives the real agent runtime: tool calling, file editing, shell, sub-agents, sessions, permissions, plan mode, all present. Implementation-wise, it reuses the same @deepseek-ai/dsh-base core as the web UI – the same agent, the same permission set, the same batch of sessions, just the presentation and interaction happen inside the terminal.
Core Features¶
Only listing verified capabilities, explained by interaction layer:
Output and Reasoning Display
- Real-time streaming output: Answers render token by token as the model generates.
- Reasoning display:
thinkingblocks are streamed in dark italic, with support for controlling reasoning intensity per round, e.g.,/model <id> high. - Markdown rendering: Fenced code blocks, inline code, bold, headings, lists.
Tool Call Visualization
Tool calls are presented as bordered bash blocks, with lifecycle markers (● running → ✓ done / ✖ error) and parameter/result previews. You can see at a glance what the command is doing and where it is in the process.
Full Agent Capabilities
- File/Command Operations: Agent can read/edit files, run commands, delegate sub-agents, and execute plans.
- Session Management: List and resume any persisted session (
/resume). - Permission Modes:
read-only/workspace-write/danger-full-access, switchable in real-time via/permissions. - Plan Mode:
/planto switch between planning then executing. - Compress Session:
/compactto shrink the conversation on demand. - Trajectory Viewing:
/trajectorydisplays a filtered event timeline for the entire session. - Diagnosis:
/doctorperforms environment and model directory health checks.
Terminal Interaction Details
- Scroll Back: Mouse wheel /
PgUp/PgDn, with↑ Nindicators. - Slash Commands: Tab completion for slash commands,
↑/↓for prompt history,Escto clear the input line. - Exit Methods:
/exit,q,quit,:q, orCtrl+D.
In terms of interface layout, the top displays the model, session ID, time taken / token count. The bottom status bar displays the working directory, stream toggle, round count, etc. The input line stays at the bottom.
Installation and Enabling¶
Prerequisite: You need to install the official dsh first; this plugin runs as a plugin on top of it.
- Install the official DeepSeek Harness (one-time):
npx @deepseek-ai/dsh web --help # or: npm i -g @deepseek-ai/dsh
- Create a
tuiprofile and add this plugin:
dsh plugin --profile tui add @nexlineai/dsh-tui
- Run. The profile will initialize on first use:
dsh --profile tui
- Configure model keys. Credentials source is the same as harness, via
DEEPSEEK_API_KEYenvironment variable orsettings.yaml:
export DEEPSEEK_API_KEY=sk-...
Environment Requirement: Node >= 20.19.0.
Typical Usage¶
Switching Model & Reasoning Intensity – /model without arguments lists models and intensity levels, current item marked ● active; with arguments, switches in real-time:
/model deepseek-v4-pro high
Resuming Session – /resume lists persisted sessions (id, title, date), select by number to continue with full history:
/resume <n>
Switching Permission Presets – /permissions lists presets, switching by name:
/permissions workspace-write
Controlling Display Behavior – Show/hide thinking blocks, toggle real-time streaming output:
/reasoning on|off
/stream on|off
Other Common Commands: /help lists all commands, /settings summarizes model/permissions/plan/stream status on one screen, /version shows plugin and runtime versions, /status shows session, working directory, and events, round count, /clear clears the conversation area, /doctor performs a health check.
Scenarios and Notes¶
Who is it for: People with a terminal-centric workflow, those preferring keyboard-first operations, and scenarios running harness in SSH sessions or multiplexers like tmux. The official dsh lacks an interactive terminal mode, dsh-tui fills this gap as a plugin, without needing to fork the runtime.
Notes:
- Platform supports only macOS and Linux terminals (README platform badge is macOS | Linux); iTerm2, Terminal.app, kitty, alacritty, xterm are listed; Windows Terminal is not listed as supported.
- Permission mode includes
danger-full-access(full access) and can be switched in real-time. It is recommended to downgrade as needed during actual use to avoid staying in full access for too long. - Like all third-party DSH plugins, the plugin runs with the permissions of the current
dshprocess. It is recommended to check the source code and license (this project is MIT) before enabling. - This project is not affiliated with DeepSeek AI; the upstream runtime it drives is also MIT licensed.
- If rendering issues occur, follow the project contribution guidelines, attach your terminal type,
$TERM, and the output of/versionand/doctorto help locate the issue.
Conclusion¶
dsh-tui does things with restraint: it doesn’t reinvent the agent or start a separate runtime; it just moves the existing web UI capabilities directly into the terminal, filling the missing interactive form of the official CLI. If you work in the terminal daily, it is worth a try.
- Plugin directory page: https://www.skillhub.cn/plugins/nexlineai/dsh-tui
- GitHub repository: https://github.com/nexlineai/dsh-tui