dsh-phone-remote · 手机遥控器(DeepSeek Harness 插件)
把手机变成 Mac 的外接终端:语音输入 · 1:1 屏幕镜像 · MacBook 触控板手势 · 语音回读 · 三个 agent 一键切换。
想要改代码?看 DEVELOPMENT.md(架构、四个核心机制、踩坑清单、调试方法)。 只想用?往下看。
这个插件会在启动时拉起一个本地服务(
server/server.cjs,绑定0.0.0.0:8787), 因为它必须能被局域网里的手机访问;而 DSH 自己的 web 服务只监听127.0.0.1。 子进程的"负责任进程"是 DeepSeek Harness,所以它继承 DSH 的系统权限,不用再单独授权一个应用。
一、需要哪些系统权限(必须)
| 权限 | 用途 | 不授权的后果 |
|---|---|---|
| 辅助功能 | 把键盘、鼠标事件打进当前前台窗口 | 发送、⌘C/V、触控板全部无效 |
| 屏幕录制 | 截屏做 1:1 镜像 | 镜像区全黑(只剩桌面壁纸) |
授权方式(macOS):
系统设置 → 隐私与安全性 → 辅助功能 → 勾选 / 添加 DeepSeek Harness.app
系统设置 → 隐私与安全性 → 屏幕录制 → 勾选 / 添加 DeepSeek Harness.app
勾完要重启一次 DSH,TCC 对已在运行的进程不即时生效。 插件跑起来后可访问
GET /selfcheck自检,返回{accessibility, screenRecording, voice, ok, hint}。
二、语音回读(可选)
语音不是必需的。它调用本机的语音代理 127.0.0.1:9899(GENIE),
- 有 → 回复会被念出来,手机/桌面按"这条是谁发起的"自动决定从哪出声
- 没有 → 其它功能完全正常,只是不念
本插件不包含任何语音模型:模型(约 3.9GB)在 ~/.hermes/tools/genie-tts,属于本机共享服务,三个 agent(大聪明/小聪明/九妹)共用同一把排队锁。插件只发 HTTP 请求,不会打包、覆盖或独占模型。
三、安装
把本目录放到
~/.dsh/profiles/<profile>/node_modules/dsh-phone-remote(或link:到该位置)profile 的
cordis.patch.yml末尾加:- insert: - id: phone-remote name: dsh-phone-remote重启 DSH
终端里看启动日志:
[phone-remote] phone-remote 已启动 / 手机访问: http://<IP>:8787/?t=<token>手机(同一局域网)打开那个地址,Safari → 分享 → 添加到主屏幕
四、手机上怎么用
| 区域 | 作用 |
|---|---|
| 输入框 + 发送↵ | 语音/打字输入,⌘V 注入到前台窗口 |
| 镜像区 | 1:1 看 Mac 屏幕;触摸下方触控区即可操作 |
| 触控区 | 单指移/轻点/双击/长按拖 · 双指滚动/右键/捏合 · 三指四指切桌面 |
| 红点 | 复读 / 结束 |
| 三个 agent 键 | 大聪明 / 小聪明 / 大管家,激活并全屏 |
五、三个 agent 键:默认是我自己电脑的配置,你要自己改
⚠️ 重要:输入框下面那三个键(大聪明 / 小聪明 / 大管家)是为开发者本人的电脑定制的, 它们默认指向这三个我自己装的东西:
| 按钮 | 默认指向 | 说明 |
|---|---|---|
| 大聪明 | DeepSeek Harness.app |
就是跑这个插件的宿主 |
| 小聪明 | Hermes.app |
我自己的另一个 agent 应用,你机器上大概率没有 |
| 大管家 | DeepSeek Harness.app + 点击侧边栏「DS Bot」 |
这是 DSH 的 ds-bot 面板,坐标是按我的窗口尺寸量的 |
不需要改代码,写一个配置文件覆盖即可:
~/.dsh/phone-remote.json
{
"switch": {
"dsh": { "label": "我的助手", "open": ["-a", "YourAgentApp"] },
"hermes":{ "label": "另一个", "open": ["-a", "SomeOtherApp"] },
"dsbot": { "label": "第三个", "open": ["-a", "AnotherApp"] }
},
"apps": {
"cc": { "label": "Claude Code", "cmd": "claude" }
}
}
- 只写想覆盖的项,其余保持默认
open数组直接传给open命令:["-a", "应用名"]或["/path/to/App.app"]enter是「坐标点击」用的,只有需要点某个面板时才要,且坐标随窗口尺寸变化,别人的机器基本对不上,建议删掉- 改完重启插件(重启 DSH)生效
如果你不需要这三个键中的某几个,把它们从配置里删掉即可——前端仍然会显示,点了会提示未知目标。
六、常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 镜像全黑 / 只有壁纸 | 没给「屏幕录制」 | 授权后重启 DSH |
| 点了没反应、⌘C 无效 | 没给「辅助功能」 | 授权后重启 DSH |
| 打开不了页面 | 8787 被占用(旧版独立服务还在跑) | 停掉旧服务:launchctl bootout gui/$(id -u)/com.example.phone-remote |
| 不念语音 | 9899 没在跑 | 起语音代理;或忽略(其它功能正常) |
| 切大管家点错 | DSH 窗口不是全屏,坐标漂了 | 插件会先强制全屏再点;仍失败就手动切一次 |
No comments yet. Be the first to write one.