dsh-PEC: Remotely Control Local DeepSeek Harness Sessions via Phone

前言

DeepSeek Harness(DSH)的日常使用通常绑在桌面端:会话、审批、终端和文件都在电脑前完成。人离开工位时,轻则无法及时点选工具审批,重则连「接着聊」都要先远程回到桌面。社区里也有各类远程桌面方案,但它们搬走的是整块屏幕,而不是 DSH 里那套会话、模型路由和沙箱策略语义。

下面介绍维护者 huajikano 发布的客户端类插件 dsh-PEC(npm 包名 dsh-pec,仓库 huajikano/dsh-PEC)。它在电脑上的 DSH 进程里起一个带鉴权的手机网关,再配合约 25 KB 的 Android 外壳(APK),让手机通过同一 Wi-Fi 或 Tailscale 访问你这台机器上已经跑着的 DSH——模型配置、工作区文件和会话状态仍落在本机,不是另一套云端后端。

这是什么

一句话:dsh-PEC 是「电脑端插件 + Android APK」的手机网关,手机只与插件通信;插件以进程内 owner 身份调用 DSH 的 Host 服务,无需反向解析 DSH 私有协议,也不维护第二套后端。

  • 插件侧(dsh-pec):监听 HTTP(默认 0.0.0.0:7317,占用时随机换端口并在日志打印实际地址),提供鉴权、SSE 流式推送和手机版网页界面。
  • 手机侧(dsh-pec-<版本>.apk):负责配对、保存设备信任、用 WebView 承载界面。

项目在 DSH desktop 0.2.1-rc.5 上开发并验证;若 DSH Host 服务签名发生较大变化,插件可能需要随之调整。当前 Release 包版本为 2.0.0(package.json 与 GitHub Releases 一致)。

目录页:SkillHub — huajikano/dsh-PEC。

核心功能

会话与对话

  • 会话列表支持搜索、运行状态、子代理过滤,以及新建、重命名、归档;新建会落在真实工作区,而非 DSH 的 profile 目录。
  • 完整历史、逐字流式输出、思考过程与工具调用的折叠卡片;回答按 Markdown 渲染,支持复制与朗读。
  • 「加载更早」翻页时保持阅读位置;断流重连不会冲掉已加载的旧消息。
  • 图片以气泡展示;每轮回答左下角显示本轮用时、token 用量、缓存命中率(口径与桌面端一致)。
  • 输入框草稿按会话持久化,切换页面或刷新不丢草稿。

不离电脑也能做的控制面

  • 模型与推理等级:按供应商列出可路由模型,切换写入当前会话;每个模型下可选推理等级(off / low / medium / high / max)。
  • 模式与权限:Agent 预设(如 standard、ptc、minimal、cordis 等);只读、仅工作区、完全访问等权限预设,直接改该会话的沙箱与审批策略。
  • 审批与提问:「接管 30 分钟」期间,工具调用推到手机可允许或拒绝;ask_user_question 在手机上以单选、多选、自定义回答、跳过等形式出现。分安全模式(电脑端在线时优先交给电脑)与强制模式(外出时由手机决定)。
  • 终端:PTY + xterm.js,支持彩色输出、行编辑、Ctrl-C、全屏 TUI;无 PTY 时降级为持久 shell。
  • 文件:按会话工作目录浏览;文本可预览(大于 2 MB 或二进制拒绝)。
  • 设置:可读改 DSH 各设置组中的 volatile 字段;模型供应商可在手机上增删改,并一键拉取端点模型列表(与桌面「获取模型」同源)。
  • 目标与计划任务、插件开关:与桌面能力对齐,开关即时生效。

连接与安全

两种连法:同一 Wi-Fi 下局域网直连(可自动发现),或 Tailscale 使用 100.x.y.z:7317。首次在私有网段配对可免 6 位码;之后新设备必须输入电脑上显示的配对码(6 位、10 分钟轮换、一次有效)。每台手机使用 32 字节随机设备令牌,电脑只存 SHA-256。局域网为明文 HTTP,文档建议仅在个人 Wi-Fi 或 Tailscale 内使用,且不建议将 7317 映射到公网。

安装与启用

Release 中需准备两个文件(见 GitHub Releases):

文件 用途
cc-dsh-plugin-<版本>.zip 解压得 plugin-ccdsh/,在 DSH 插件管理里「安装本地目录」指向该目录
dsh-pec-<版本>.apk 安装到 Android 手机

电脑端插件推荐以下方式之一(摘自官方 README):

# 方式一:本地目录(推荐,不受 pnpm 锁文件漂移影响)
# 解压 cc-dsh-plugin-<版本>.zip 后,在 DSH 里选中 plugin-ccdsh/ 目录

# 方式二:npm 包名(发布后可用)
dsh plugin add dsh-pec

# 方式三:GitHub 来源必须钉到 tag
dsh plugin add huajikano/dsh-PEC#v2.0.0

从 1.x 升到 2.0.0 时包名由 cc-dsh 改为 dsh-pec,需先卸载旧插件再装新插件;配对数据会从 %DSH_HOME%\cc-dsh\ 复制到 %DSH_HOME%\dsh-pec\,手机一般无需重新配对。更细的校验、端口与卸载步骤见仓库内 docs/INSTALL-plugin.md。

手机端:安装 Release 中的 dsh-pec-<版本>.apk(2.0.0 仅改显示名,包名仍为 com.ccdsh.app,可覆盖安装)。

典型用法

1. 首次配对(同一 Wi-Fi)

  1. 电脑上装好 dsh-pec 插件并确认网关已监听(默认 7317)。
  2. 手机打开 App,点「在同一 Wi-Fi 下自动查找」,或手动填写 电脑IP:7317。
  3. 第一次配对码留空,点「连接」。

2. 电脑端查看配对码与设备

DSH 设置 → 手机连接:查看 6 位配对码、局域网 / Tailscale 地址、已配对设备(可重命名、移除)。

3. 不在家时走 Tailscale

手机和电脑加入同一 Tailscale 网络后,用 100.x.y.z:7317 访问。Windows 防火墙与排障见 docs/tailscale.md。

4. DSH 升级后自检

curl.exe -sS http://127.0.0.1:7317/api/health

返回 ok: true 且 missing: [] 表示正常;missing 非空时相关功能会被禁用,不影响 DSH 其它部分。

适用场景与注意

适合谁:需要在不坐电脑前时继续同一套 DSH 会话、及时处理审批或终端输出;或希望用手机快速切模型、改权限预设、浏览工作区文件的开发者。

权限与信任:插件在 DSH 进程内以 owner 身份调用 Host 服务,手机配对成功后相当于持有本机 DSH 的执行面。安装前应阅读源码与许可证,仅在可信网络(家庭 Wi-Fi 或 Tailscale)中使用;勿在公共 Wi-Fi 上明文暴露 7317。

已知限制(摘自 README):文件仅能在线预览文本,不能下载到手机;除图片外暂不支持把手机文件上传到电脑。设置面板只开放 volatile 字段。审批强制模式可能在电脑端留下待处理弹窗,回电脑前需自行处理。

生态上,DSH 奉行「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-PEC 把「正在本机跑的 DSH」拆成稳定的手机网关:会话、模型、终端、文件与设置仍走 Host 服务,不复制第二份状态。若你的痛点是「人走开但 Harness 不能停」,可按 Release 安装插件与 APK,先在局域网完成首次免码配对,再按需配置 Tailscale。

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

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

Xiaoye