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

  1. Real-time streaming output: Answers render token by token as the model generates.
  2. Reasoning display: thinking blocks are streamed in dark italic, with support for controlling reasoning intensity per round, e.g., /model <id> high.
  3. 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

  1. File/Command Operations: Agent can read/edit files, run commands, delegate sub-agents, and execute plans.
  2. Session Management: List and resume any persisted session (/resume).
  3. Permission Modes: read-only / workspace-write / danger-full-access, switchable in real-time via /permissions.
  4. Plan Mode: /plan to switch between planning then executing.
  5. Compress Session: /compact to shrink the conversation on demand.
  6. Trajectory Viewing: /trajectory displays a filtered event timeline for the entire session.
  7. Diagnosis: /doctor performs environment and model directory health checks.

Terminal Interaction Details

  1. Scroll Back: Mouse wheel / PgUp / PgDn, with ↑ N indicators.
  2. Slash Commands: Tab completion for slash commands, / for prompt history, Esc to clear the input line.
  3. Exit Methods: /exit, q, quit, :q, or Ctrl+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.

  1. Install the official DeepSeek Harness (one-time):
    npx @deepseek-ai/dsh web --help   # or: npm i -g @deepseek-ai/dsh
  1. Create a tui profile and add this plugin:
    dsh plugin --profile tui add @nexlineai/dsh-tui
  1. Run. The profile will initialize on first use:
    dsh --profile tui
  1. Configure model keys. Credentials source is the same as harness, via DEEPSEEK_API_KEY environment variable or settings.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:

  1. 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.
  2. 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.
  3. Like all third-party DSH plugins, the plugin runs with the permissions of the current dsh process. It is recommended to check the source code and license (this project is MIT) before enabling.
  4. This project is not affiliated with DeepSeek AI; the upstream runtime it drives is also MIT licensed.
  5. If rendering issues occur, follow the project contribution guidelines, attach your terminal type, $TERM, and the output of /version and /doctor to 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