dsh-rescue-tui:WebUI 挂掉时的终端维护入口

前言

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无任何官方从属关系,纯属社区协作产物。

注意事项

使用该插件时需注意以下已知边界:

  1. 日志冲突:当 WebUI 后端进程仍在运行时,不要在 TUI 和 WebUI 两边同时续同一个 session,否则会导致追加式日志双写冲突。
  2. 渲染限制:fetch provider 无 JS 渲染能力,无法获取 SPA 页面的动态内容。若需处理此类页面,建议使用 pwsh 脚本配合 curl 兜底。
  3. 依赖版本:peer 依赖需对齐 @deepseek-ai/*@^0.1.1-rc.2,harness 大版本升级后需进行回归测试。
  4. 平台差异:Windows 下 bash 行由 base 平台门控自动禁用(pwsh 栈接管),POSIX 系统反之。

结语

dsh-rescue-tui 提供了一种在极端环境下恢复工作流的低成本方案。它通过插件化挂载的方式,在不修改核心代码的前提下,赋予了 DSH 终端维护能力,适合在远程维护、低配环境或应急救援场景中使用。

更多细节与源码,可参考:
* GitHub 仓库
* 社区目录页

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜