ccch1mneyyy/dsh-TUI · 上手攻略
- 仓库:ccch1mneyyy/dsh-TUI
- 链接:https://github.com/ccch1mneyyy/dsh-TUI
- 分类:developer-tool · cli-enhancement
- 作者:Tom
- 更新:2026-08-16
这是什么
dsh-TUI 是 DeepSeek Harness(DSH)官方公众号收录的终端 UI 补位插件,目标是解决 DSH 官方 CLI 缺少全屏交互界面的痛点。它的风格对标 Claude Code CLI,提供像素鲸鱼顶栏、流式 Markdown 渲染、实时 TPS/Token 仪表盘、思考流展开、双击 Esc 会话回溯等体验。零核心改动,纯插件挂载,卸载不污染 DSH 核心。
解决什么问题:DSH 官方只提供纯文本 TTY 交互,对习惯了 Claude Code 全屏 TUI 界面的用户而言缺乏操作反馈和状态感知。dsh-TUI 以插件 profile 形式叠加,不需要 fork DSH 源码或打补丁。
快速安装
前置条件
- Node.js(官方建议 Node 24,CI 使用 pnpm 11)
- pnpm ≥ 10
- 已安装官方 dsh CLI:
npm install -g @deepseek-ai/dsh DEEPSEEK_API_KEY环境变量(运行模型必需)
一键安装(推荐)
# 全局安装 dsh CLI + dsh-tui 插件
npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui
# 启动(首次运行自动初始化 profile,需 pnpm)
dsh-tui
备选:手工 profile 安装
# 仓库根目录 install.sh 封装了 pnpm 预检
sh install.sh
# 或手动添加 profile
dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui
# 之后 dsh-tui 等价于 dsh --profile dsh-tui
Windows 备选
仓库根目录提供 dsh-tui.cmd,等价于 dsh-tui 命令。
更新插件
TUI 启动后若发现 npm 有新版本会提示,输入 /update 自动更新并恢复当前会话。
核心用法
会话工作流
| 命令 | 说明 |
|---|---|
dsh-tui |
启动 TUI,新建会话 |
dsh-tui --resume |
恢复上次会话 |
/new |
新建会话 |
/resume |
切换工作区内会话 |
/compact |
压缩上下文 |
/export |
导出会话 |
/btw |
侧问(不打断主对话) |
键盘快捷键
| 键 | 功能 |
|---|---|
Enter |
发送(Shift+Enter 换行) |
Ctrl+C |
中断当前回合;空闲时连按两次退出 |
Esc |
关闭命令/文件菜单;空闲双击清空输入;空输入双击 = 时间回溯 |
Ctrl+O |
展开/收起详情(思考全文、工具参数与输出) |
Ctrl+R |
历史消息搜索 |
/ |
会话内全文搜索(n/N 跳转) |
Tab / Enter |
命令 / @ 文件补全 |
Ctrl+V |
粘贴文本或文件(含图片附件) |
Ctrl+X |
用 $VISUAL/$EDITOR 编辑当前输入 |
? |
快捷键菜单 |
Shift+↑ |
消息选择模式(Enter 展开单条) |
⚠️ macOS 用户:
⌘修饰键需要终端支持扩展键盘协议(iTerm2 / kitty / WezTerm / ghostty / tmux)。macOS Terminal.app 不支持,建议继续使用Ctrl。
状态栏实时信息
- 实时工作状态(Idle / Thinking / Working…)
- 上下文分段进度条(蓝白配色 + TPS 仪表)
- 缓存命中率
- 推理等级
- 输入/输出 token 计数
- 当前 Git 分支与会话信息
主题切换
/theme # 选择器(auto / light / dark / dark-ansi)
/theme auto # 自动跟随终端背景色(OSC 11)
自定义主题放在 ~/.dsh-tui/themes/*.json,热切换即时生效。环境变量 DSH_TUI_THEME 优先级最高。
MCP 接入
# 通过 @deepseek-ai/dsh-mcp-client 挂载 MCP 服务器
/mcp # 查看连接状态
MCP 工具以 mcp____ 前缀注册,配置文件见 docs/configuration.md。
Agent Preset 切换
/preset # 在 standard / code / minimal / cordis 四种模式间切换
已在对话中的会话不可切换 preset;空白会话立即生效并持久化到 ~/.dsh-tui/agent-preset.json。
模型切换
/model # 打开模型选择器
切换后走"会话 fork 续聊"(DSH 无原位换模型 API):历史原样保留,新会话路由到新模型,旧会话留在 /resume 列表。选中模型持久化到 ~/.dsh-tui/model.json。
典型适用场景
- 重度 DSH 用户:需要实时感知 token 用量、上下文分段、TPS 的高频使用者。
- 从 Claude Code 迁移的用户:习惯全屏 TUI 交互,不接受纯文本 CLI 的视觉反馈缺失。
- 长会话维护:双击 Esc 回溯、消息选择展开、上下文压缩
/compact,适合数小时以上的项目级会话。 - 多模态会话:图片附件(PNG/JPEG/WebP/GIF)直接粘贴发送,保存为持久附件块。
- 中文界面需求:内置
/lang中英切换,适合中英文混合工作流。
坑与注意
- pnpm 强依赖:安装脚本要求 pnpm ≥ 10,npm 用户需先装 pnpm。
- Windows 无沙箱:Windows profile 当前没有沙箱后端,回退到
danger-full-access且不弹审批,敏感环境慎用。 - macOS ⌘ 快捷键限制:系统 Terminal.app 会消费
⌘快捷键,建议换用 iTerm2 / kitty 等支持扩展键盘协议的终端。 - Ctrl+V 剪贴板平台差异:Windows 用 PowerShell
Get-Clipboard;macOS 用osascript/pbpaste;Linux 需要wl-paste/xclip/xsel之一,工具缺失时提示"无可用剪贴板工具"。 - 会话 fork 模型切换:DSH 无原位换模型 API,
/model切换后旧会话留在/resume列表,需手动管理。 - 插件 profile 生命周期:profile 插件卸载后需手动清理
~/.dsh-tui/目录。 - 零核心改动 ≠ 零依赖:依赖 DSH 官方 CLI 和 dsh-base 的服务注册表,若 DSH 底层 API 变更可能影响插件行为。
与同类对比
| 维度 | dsh-TUI | Claude Code 原生 TUI | DSH 官方 CLI |
|---|---|---|---|
| 交互界面 | 全屏 TUI + 状态栏 | 全屏 TUI | 纯文本 TTY |
| 安装方式 | npm profile 插件 | 内置 | npm 全局 |
| 状态感知 | TPS + Token + 缓存命中率 | TPS + Token | 无 |
| 会话回溯 | 双击 Esc | /rewind |
无 |
| 上下文进度条 | 蓝白分段条 | 简单进度 | 无 |
| 主题系统 | 内置 + 自定义 JSON | 有限主题 | 无 |
| MCP 支持 | ✅ 通过 dsh-mcp-client | ✅ | ✅(官方) |
| 平台覆盖 | macOS/Linux/Windows | macOS/Linux | 全平台 |
| 维护状态 | 活跃(社区插件生态) | 官方内置 | 官方 |
dsh-TUI 的差异化价值:作为 DSH 官方生态的补位插件,不 fork 源码,适合既想用 DSH 又想要 Claude Code 级交互体验的用户。
一句话推荐结论
dsh-TUI 是目前 DSH 生态里唯一成规模的 Claude Code 风格 TUI 插件,适合重度 DSH CLI 用户在不改造底层的前提下获得完整的全屏交互和状态感知体验。
最小可跑命令
# 前置:Node 24 + pnpm 10 + DEEPSEEK_API_KEY
export DEEPSEEK_API_KEY=sk-xxxx
# 安装
npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui
# 启动
dsh-tui
⚠️ Node 版本要求:CI 使用 Node 24 + pnpm 11;包声明支持
^22.19 || >=24。
来源
- https://github.com/ccch1mneyyy/dsh-TUI(README + 6 篇文档)
- https://www.npmjs.com/package/@deepseek-harness-tui/dsh-tui