dsh 有网页版还有桌面版,而把 Agent 放进终端里跑,是很多人的习惯。这个插件就是解决这个问题——一个非常好看的命令行界面,喜欢在命令行使用的小伙伴可以试试。
它叫 dsh-TUI。
一句话说清它是干什么的:把 DeepSeek Harness 的整个交互面搬进终端。而且是纯插件挂载,不改宿主一行源码。
MIT 协议,TypeScript 写的,界面用 React 19 配 Ink 和 Yoga 渲染,打成一个 npm 包,Windows、macOS、Linux 都能跑。
一、先说清楚它是个什么东西
先说最直接的:你在浏览器里用的那一整套,它全给你搬到了终端里。
装法很朴素,就两行:
npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui
dsh-tui
dst 是同一个程序的短别名。它挂在一个独立的 profile 上,所以 dsh-tui 和 dsh --profile dsh-tui 是一回事,你想回原来的界面,原来的那条命令也还在。
这里有个细节值得单独说。它是插件,不是分支,也不是魔改版。它不 patch DeepSeek Harness 的源码,走的是宿主留出来的挂载点。所以哪天你不想用了,卸掉就是卸掉——不留补丁、不改配置、不影响你原本那套。
而且它和 Web GUI、ACP、headless 共用的是同一份会话数据。这点很重要。你在终端里聊了一半的会话,回头打开浏览器还能接着看;反过来也一样。它不是另起一套系统,它只是同一套系统的另一个门面。

先搞清楚一个关系:它给的是界面,不是引擎。模型怎么调、工具怎么跑、会话怎么存、上下文怎么压缩,这些全都还是 DSH 自己的事。
二、它补的是官方留出来的那个空位
DeepSeek Harness 官方的界面是 Web UI。命令行那条 dsh,管的是启动和配置,不是一个交互式的终端界面。所以从它开源那天起,终端这一块就是空的。
dsh-TUI 是其中被官方点名的那一个。DSH 的官方负责人 Tianyi Cui(@tianyi)公开推荐过它,原话是它「从 DeepSeek Harness 内测期间就持续开发,做得非常用心,补齐了 DSH 缺失的 TUI 界面」。
顺带说一句更大的背景:官方公开过一组数据,大约六成的 DSH 用户至少用一个第三方插件。这个数字放在别的生态里不太常见。它说明 DSH 那套「一切皆插件」的设计是真的成立了——官方把边界划得很清楚,自己不做的地方,留给了社区。dsh-TUI 就是长在这个缝里的一棵。
三、真正让我服气的,是底下那一行
dsh-TUI 给的答案,是屏幕最底下那一行。工作状态配着一个活动动画,你能一眼看出它是在跑还是停着。旁边是上下文进度条,用了多少、还剩多少,一直摆在那儿。再过去是 TPS,也就是每秒吐多少 token;缓存命中率;effort 档位;token 数;还有一栏会话成本估算,子代理的开销也一起算进去。
这一行就是你在一整屏黑底白字里唯一能确定「它正常吗」的地方。
你想想看,长会话里最怕的是什么?不是它答错,是你不知道它还剩多少余量。我特别喜欢上下文进度条那条。不是因为它好看,是因为它把一件很虚的事变得可判断了——以前你只能凭感觉猜「是不是快撑不住了」,现在你看得见它爬到哪儿了,什么时候该 /compact,是你自己决定,而不是等它撞墙。
还有那个双击 Esc。长会话里跑偏是常事:它理解错了你的意思,一路往下做了五轮,你才发现不对。在别的终端工具里,这时候一般只有两个选择——忍着,或者重开一个会话把前面重讲一遍。dsh-TUI 的做法是:双击 Esc,从历史里挑一条消息,从那个点重新开一条路。前面的上下文不用重讲,原来的那条线也还在。
除了这些,日常要用的它基本都齐了:流式 Markdown、结构化的工具卡、/ 和 @ 补全、#L12-14 这种行号范围引用、历史搜索、中英双语界面。
图片能在支持的终端里直接缩略显示,Mermaid 代码块会画成字符图,LaTeX 公式输出成 Unicode——不是渲染成图,是拿字符拼出来的那种。
还有个 Ctrl+B 侧面板,终端够宽的时候能分出一栏放 todo 和后台任务。
你要是同时开着 VS Code,还有个挺方便的小通道——编辑器里选中的那段代码能直接落到终端的输入框里,不用来回复制粘贴。

这些东西单拎出来没有一个是新鲜功能,别家终端工具都有。但它们是齐的,不是凑的。
四、几个反着来的决定
第一个,它给终端工具做了一只宠物。启动的时候,顶栏有一只像素鲸鱼,三种动画,点一下还能唤醒,第一个任务跑起来之后它就定格不动了。这个设计不解决任何效率问题,但它解决心情。
第二个,是它的边界感。它在说明里反复强调一件事:自己只负责交互与呈现,会话日志才是唯一真源。翻译成人话就是——你写下的东西归宿在主管,它只负责让你看见。这是个很克制的选择。
第三个,是它对 Windows 输入的处理。原生 Windows 上,终端收到的输入记录会被拆包——一次按键被切成几段送过来。它的做法是:把短时间窗口内被拆开的记录重新拼起来。更少见的是,它还写明了哪些结论是「有证据支持」的,哪些只是「大概率没问题」。这种透明度在开源项目里不多见。
第四个,它能把别人的会话历史搬过来。一条 dsh-tui migrate,可以从 Claude Code、Codex 这些工具把历史会话导进来。只读源库、可以重复跑、结构保留。换工具最烦的就是这段历史断档,它把这个成本削掉了一大块。
五、注意事项
先说门槛,都是装之前就该知道的:
- Node.js 要 ^22.19 或者 >=24;pnpm 要 10 以上——pnpm 9 会让它启动之后立刻退出,而且几乎不报错
- 它必须跑在真实终端里,由 Web 那种非终端宿主拉起来的话会自动跳过
- 它不支持 Git URL 安装,得走 npm 包
- 如果你还在 DSH 0.1.x 上,先别升到 0.12.0 以上,会被宿主的门禁直接拒掉
还有一条我必须单独说。它不实现独立沙箱。它沿用当前 DSH profile 的文件、Shell、沙箱和审批策略。装完先跑两个命令看一眼:/preset status 和 /permission,确认实际生效的 preset、沙箱和审批到底是什么。这一步花不了一分钟。
官网在 dshtui.com,上面有新手整合包,会帮你把 Node、pnpm、dsh CLI 和它一起装好。如果你平时就在终端里跑 Agent,值得装上试一次。