npm i @qiao-qyn/dsh-tui

把 DeepSeek Harness 搬进终端。

DeepSeek Harness 的 Claude Code 风格终端 UI。一个 Cordis bundle 骑在 dsh-base 之上,把默认的 Web UI 换成全屏 Ink REPL —— 同一个 Agent、同样的工具、同样的模型。

跑在终端的备用屏里,和 vimhtop 一样 —— 退出后你原来的 scrollback 原样回来。

dsh --profile tui
> 修一下挂了的 scroll 测试
⏺ read_file({"file_path":"src/render/scroll.ts"}) ✓ 84 行
⏺ edit_file({"file_path":"src/render/scroll.ts"}) ✓
⏺ bash("pnpm vitest run scroll") ✓ 12 通过
✔ estimateEntryRows 现在把(还有 N 条)那行也算进去了
>
tui-01e62198deepseek-v4-flashworkspace-write

harness 能做的事,按你终端的宽度重排一遍

/

带选择器的斜杠命令

/model /permission /mcp add/skill 都会弹出选择器,列出真正挂载了的东西 —— 选一个,不用猜名字。

!

系统命令转义

!git status 直接跑并把输出显示出来;!! 还会把它交给模型。!cd 切了目录就一直生效。

@

文件提及

@src/proTab 把完整路径补进你的消息。不会在背后偷偷读文件 —— 模型拿路径自己用工具打开。

图片附件

把图片拖到终端里,路径会从正文摘掉、作为附件发出,消息里留一行 chip 说明发了什么。

审批会留下记录

需要你点头的工具调用会弹出带参数的卡片。答案留在 transcript 里,所以恢复会话时不会看到一个"莫名没跑"的调用。

Skills

/skill 列出你的装配挂载的、允许用户调用的 skill。Tab 填进命令行,Enter 直接跑。

随时接回的 session

/sessions 列出存下来的会话,/resume last 回到最新那条,/history hide 让 transcript 从新内容开始。

融入你的环境

/theme dark|light 会先 OSC 11 探测你的终端,/language en|zh 切换界面语言,/keybinds vim 加一层 normal 模式。

上手最先会用到的几条

/help 打印可用的斜杠命令
/model 显示当前模型;/model 打开所有已挂载 provider 的选择器
/mcp 已连接的 MCP 服务器和它们的工具;/mcp add 连一个新的
/permission 选择「沙箱 + 审批」打包预设
/context 上下文窗口、本次 session 的 token 开销、当前占用多少
/copy 把最新回复用 OSC 52 送进剪贴板 —— SSH 下也有效
! <命令> 跑一条系统命令;!! 还会把它给模型看
/exit 退出 REPL
完整的命令与按键表 →

三条命令

npm install -g @deepseek-ai/dsh

launcher,每台机器一次

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

在一个 profile 里装 —— @next 把 dsh-base 钉到同一代 0.1.0-rc.x

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

注册 bundle 并启动

  • 需要 Node ≥ 22.19 和一个真 TTY —— iTerm / Terminal.app,或 Windows Terminal + PowerShell 7。
  • API key 一次性写进 ~/.dsh/.env,dsh 每次启动都会读。
  • 想用 pnpm?把命令换成 pnpm add,另外跑一次 pnpm approve-builds 放行原生模块。
完整安装说明 →