前言¶
DeepSeek Harness(DSH)采用插件化架构,允许开发者通过扩展来增强功能。在使用 DSH 进行开发或操作时,有时需要利用移动设备进行交互或远程控制。dsh-gb 是一个客户端插件,旨在将手机转化为 DSH 的语音遥控外设。它通过局域网通信或内置公网隧道,让手机具备状态监控、语音输入、审批处理及消息浏览的能力。
核心功能¶
dsh-gb 提供了以下核心功能:
- 实时状态栏:在手机界面显示当前工作区、会话、Agent 状态(运行中/空闲/待审批)及消息浏览进度。
- 语音输入:直接调用手机输入法的语音转文字功能,通过按键发送消息。
- 审批与选择题:支持 YES/NO 审批逻辑,以及选择题选项的选择与提交。
- 摇杆与按键:使用摇杆和按键浏览消息、翻页,以及暂停 Agent 运行。
- 会话管理:支持在手机上切换工作区、会话或新建会话。
- 公网隧道:通过内置的 cloudflared 实现异地访问,无需配置花生壳等外部服务。
- 零运行时依赖:二维码编码器为内置实现,无额外 npm 依赖。
安装与启用¶
前置要求¶
安装前请确保环境满足以下条件:
- Node.js ≥ 20
- pnpm ≥ 10
- git
安装命令¶
在 DSH 的 Web 配置目录下执行以下命令安装插件:
dsh plugin --profile web add github:zingzheng/dsh-gb
安装完成后,需要重启 DSH 以加载 Host 半部组件。重启后,在 GUI 设置页的「掌机」选项中,即可看到动态二维码进行连接。
使用说明¶
局域网连接(默认模式)¶
- 确保手机与运行 DSH 的电脑处于同一局域网。
- 在 DSH 的 GUI 设置页找到「掌机」选项,扫描显示的二维码。
- 手机界面会显示 Game Boy 风格的遥控面板。
基本操作¶
- 语音输入:使用手机输入法进行语音转文字,按 A 键或回车发送。
- 消息浏览:使用
←→键切换消息,↑↓键滚动查看完整内容。 - 审批与选择题:当有审批或选择题时,界面会有高亮提示。使用摇杆或方向键选择,按 A 键确认。
公网隧道¶
默认模式仅支持局域网连接。若需异地访问,可在 GUI 设置页切换至「公网模式」:
- 快速隧道:首次启用时会自动下载 cloudflared(约 30-60MB,缓存于
~/.dsh/cache),生成临时公网地址(*.trycloudflare.com)。地址在 DSH 重启后会变化,需重新扫码。 - 命名隧道:需在 Cloudflare 控制台创建隧道并映射主机名,填入设置页后可获得固定地址。
技术细节¶
- 端口:默认监听端口为 7788。若端口被占用,服务会自动顺延至 7795。
- 鉴权:采用持久化令牌鉴权。令牌存储在
~/.dsh/dsh-gb.token,可在设置页重置。 - 架构:插件分为 Host 半部和 Client 半部。Host 半部运行在本地,提供 HTTP 服务器和 SSE 推送;Client 半部集成在浏览器中,负责二维码生成和 UI 渲染。
- 安全:所有接口均要求随机令牌。
/info接口仅允许本地回环访问,动作接口收紧了 CORS 限制。
适用场景¶
- 需要 DSH 在后台运行时,用手机随时查看状态或发送指令。
- 在不操作电脑的情况下,通过手机处理审批流或选择题。
- 在异地网络环境下,通过公网隧道安全地控制本地 DSH。