前言¶
DeepSeek Harness (DSH) 生态奉行「一切皆插件」的理念,允许用户通过插件扩展功能。在实际使用中,WebUI 进程崩溃、端口被占或浏览器端异常是常见故障,此时会话日志虽在磁盘上完好,但无法通过图形界面继续交互。
dsh-rescue-tui 是一个挂载在 DSH profile 上的极简终端维护入口。它不依赖复杂的第三方 UI 库,而是通过原生 readline 和 ANSI 实现,能在 WebUI 不可用时直接接管会话。该插件由 marshfolx 维护,遵循 MIT 许可证,零核心改动,安装后即可使用。
核心功能¶
该插件主要解决 WebUI 不可用时的续聊、权限控制和模型调整问题:
- 会话续聊:启动后列出历史会话(当前工作区优先),通过数字键 resume。无标题会话会自动节选首条用户 prompt 作标题;崩溃残缺的回合由持久化层自动合成关闭。
- 权限三层继承:原样挂载
sandbox-policy、approval和permission-presets。默认继承workspace-write(写入限工作区)+ask审批;越界操作会触发终端y/N弹窗。 - 模型与推理控制:支持通过
/model动态列出并切换模型路由(保留历史日志),以及通过/effort调整推理强度(low/high/max/off),无需切换模型即可改变计算资源分配。 - 网络与工具裁剪:内置自研匿名 HTTP fetch provider 补齐
web_fetch(支持 HTML→markdown 转换与截断控制)。同时保留 pwsh/bash、fs 编辑、todo、jobs 等基础工具,禁用 subagent/workflow/ralph/goal/plan-mode/skills 等协作工具,聚焦单人救援场景。
安装与启用¶
前置要求:Node.js ≥ 22、官方 @deepseek-ai/dsh CLI、pnpm ≥ 10。
安装命令¶
使用插件提供的安装脚本,指定 GitHub 仓库地址即可创建 rescue profile:
node dsh-rescue-tui/scripts/install-profile.mjs --package "github:marshfolx/dsh-rescue-tui"
启动插件¶
安装完成后,使用以下命令激活该 profile:
dsh --profile rescue
使用方式¶
进入 TUI 后,界面会显示会话列表。用户可以通过以下指令进行操作:
- 会话管理:
/sessions回到列表;/new新建会话;/exit退出。 - 权限切换:
/perm查看当前与可选预设;/perm read-only/workspace-write/danger-full-access切换权限模式。 - 模型与强度:
/model列出 llm-pi-ai 目录全部分组;/model opencode/mimo-v2.5-free切换模型;/effort查看并设置强度。 - 审批交互:回合进行中的越界操作需直接输入
y或n确认;空闲时可使用/y或/n预答下一次审批。
生态与背景¶
DSH 的架构设计使其具备高度的灵活性。该插件的社区目录位于 https://www.skillhub.cn/plugins/marshfolx/dsh-rescue-tui。需要特别说明的是,社区目录及本插件与 DeepSeek 或幻方AI无任何官方从属关系,纯属社区协作产物。
注意事项¶
使用该插件时需注意以下已知边界:
- 日志冲突:当 WebUI 后端进程仍在运行时,不要在 TUI 和 WebUI 两边同时续同一个 session,否则会导致追加式日志双写冲突。
- 渲染限制:fetch provider 无 JS 渲染能力,无法获取 SPA 页面的动态内容。若需处理此类页面,建议使用 pwsh 脚本配合 curl 兜底。
- 依赖版本:peer 依赖需对齐
@deepseek-ai/*@^0.1.1-rc.2,harness 大版本升级后需进行回归测试。 - 平台差异:Windows 下 bash 行由 base 平台门控自动禁用(pwsh 栈接管),POSIX 系统反之。
结语¶
dsh-rescue-tui 提供了一种在极端环境下恢复工作流的低成本方案。它通过插件化挂载的方式,在不修改核心代码的前提下,赋予了 DSH 终端维护能力,适合在远程维护、低配环境或应急救援场景中使用。