npm i @qiao-qyn/dsh-tui

DeepSeek Harness, in your terminal.

A Claude Code-style terminal UI for DeepSeek Harness. One Cordis bundle that mounts on dsh-base and replaces the default web UI with a full-screen Ink REPL — same agent, same tools, same model.

Runs in the terminal’s alternate screen, like vim or htop — your scrollback comes back when you leave.

dsh --profile tui
> fix the failing scroll test
⏺ read_file({"file_path":"src/render/scroll.ts"}) ✓ 84 lines
⏺ edit_file({"file_path":"src/render/scroll.ts"}) ✓
⏺ bash("pnpm vitest run scroll") ✓ 12 passed
✔ estimateEntryRows now counts the (+N more) row
>
tui-01e62198deepseek-v4-flashworkspace-write

Everything the harness does, at the width of your terminal

/

Slash commands with pickers

/model , /permission , /mcp add and /skill open pickers over what is actually mounted, so you pick a name instead of guessing one.

!

Shell escapes

!git status runs it and shows the output; !! also hands it to the model. !cd moves the working directory and stays moved.

@

File mentions

@src/pro + Tab completes the path into your message. Nothing is read behind your back — the model opens the path with its own tools.

Image attachments

Drop an image on the terminal and the path is pulled out of the text and sent as an attachment, with a chip confirming what went.

Approvals that leave a record

A tool call that needs you gets a card with its arguments. The answer stays in the transcript, so a resumed session never shows a call that silently never ran.

Skills

/skill lists the user-invocable skills your assembly mounted. Tab fills the line, Enter runs it.

Sessions you can pick up

/sessions lists what is stored, /resume last goes back to the newest, and /history hide starts the transcript at the new work.

Fits the room

/theme dark|light follows an OSC 11 probe of your terminal, /language en|zh switches the chrome, /keybinds vim adds a normal mode.

The commands you reach for first

/help Print the slash commands
/model Show the model; /model opens a picker across every mounted provider
/mcp Connected MCP servers and their tools; /mcp add connects one
/permission Pick a sandbox + approval preset
/context Context window, this session’s token spend, how full it is
/copy Newest reply to your clipboard over OSC 52 — works through SSH
! <cmd> Run a shell command; !! also shows it to the model
/exit Leave the REPL
Every command and keybinding, in full →

Three commands

npm install -g @deepseek-ai/dsh

the launcher, once per machine

npm i @deepseek-ai/dsh-base@next @qiao-qyn/dsh-tui

inside a profile — @next pins dsh-base to the same 0.1.0-rc.x line

dsh plugin --profile tui install && dsh --profile tui

register the bundles and launch

  • Needs Node ≥ 22.19 and a real TTY — iTerm / Terminal.app, or Windows Terminal + PowerShell 7.
  • Your key goes in ~/.dsh/.env once; dsh loads it on every launch.
  • Prefer pnpm? Same steps with pnpm add, plus pnpm approve-builds once for the native modules.
Full install guide →