devctl-dsh:从另一台设备用 CLI 控制 DSH 会话

前言

DSH(DeepSeek Harness)采用插件化架构,运行在特定进程内。通常控制会话需要直接操作运行 DSH 的设备。devctl-dsh 提供了 DSH 接入层:从另一台设备通过 CLI 控制 DSH 会话。它管理会话(列会话、发消息、看流式回复、打断、换模型),配对无需手动复制 token(通过设置页二维码),并提供原生 Android 客户端与 Python 控制端。

核心功能

  • 会话管理:列出会话、发送消息、查看流式回复、打断当前轮次、切换模型。
  • 配对机制:设置页提供二维码,扫码即可获取 dshctl add 命令,避免手动抄写 token。
  • 控制端:单文件 Python 3 脚本 cli/dshctl.py,零依赖。
  • 客户端:原生 Android 客户端 dshconsole,与 CLI 共享协议和 token。
  • 代理与界面:提供网页界面代理,集成于 DSH 设置页,支持设备列表、工作区增删改查及权限管理。
  • 图片支持:--image 参数支持发送本地图片。

安装(被控端)

在被控端安装插件,使其在 DSH 进程内开启 token 鉴权的 JSON-Lines TCP 端口(默认 7788)。

plugin_manager install_bundle target=<本仓库的绝对路径>

安装后端口立即生效,设置页会出现 devctl 分区。确认端口开启:

netstat -ano | findstr :7788

首次启动会生成 token 并写入 %USERPROFILE%\.dsh\devctl-dsh.json。修改端口或绑定地址可编辑 cordis.patch.yml 的 config 或在 profile 补丁层覆盖。

安装(控制端)

控制端只有一个文件。在被控端临时起一个 HTTP 服务供移动端下载:

cd cli
python -m http.server 7799

在手机 / iSH / Termux 下载并注册设备:

curl -O http://192.168.2.7:7799/dshctl.py
python3 dshctl.py add desk --host 192.168.2.7 --port 7788 --token <TOKEN>

同机运行时,--token 可省略,脚本会自动读取 %USERPROFILE%\.dsh\devctl-dsh.json。

CLI 用法

CLI 命令对齐 devctl 风格,常用命令如下:

dshctl.py add <name> <host:port> [--token T]        # 注册设备
dshctl.py devices                                  # 列出设备
dshctl.py use <name>                               # 设默认设备
dshctl.py send "message"                           # 发消息
dshctl.py send "图片" --image shot.png             # 发送图片(路径为控制端本地)
dshctl.py permissions                              # 查看权限
dshctl.py permissions danger-full-access           # 提升权限
dshctl.py tail [-n 40]                             # 查看最近消息
dshctl.py watch [--for 60]                         # 实时监听事件
dshctl.py cancel                                   # 打断当前会话
dshctl.py workspaces                               # 列出工作区
dshctl.py ws-new D:\proj\thing                     # 新建工作区
dshctl.py ws-rm d431cc0a                           # 注销工作区(保留文件和会话)

注意事项:
* 远程控制端可以修改权限,可能将自己提升到 danger-full-access。
* dshctl 每条命令都是短连接(除非正在 watch/tail)。
* ws-rm 只注销条目,不删除磁盘上的目录和会话。

Android 客户端

仓库包含原生 Android 客户端 clients/dshconsole,单 Activity、纯 Java + 手写 View,不依赖 AndroidX/Compose,产物约 86 KB。它和 CLI 走同一套协议。

构建 APK 不需要 Android SDK,在 Linux 沙箱即可:

cd clients/dshconsole
python3 build.py        # → out/dshconsole.apk
adb install -r out/dshconsole.apk

界面特性:
* 思考块:✦ 思考 · N 字 ▸ 默认折叠,流式期间只露最新一行。
* 模式栏:输入框上方胶囊直接切换模型/思考强度/权限。
* 发送模式:↑ 排队等待本回合结束;⏎ 立刻插话。
* 工具调用:自动收成折叠卡片。
* 连接自愈:断线自动重连并重新 watch。
* 排版:支持 Markdown 和真表格。

适用场景与注意

本插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。它通过局域网端口提供服务,请确保网络环境安全。

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

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

小夜