前言¶
在 DeepSeek Harness(DSH)里跑 agent 时,常见情况是人坐在电脑前,但 Mac 屏幕只有一块,输入也绑在键盘上。想远一点看画面、用语音打字、或在沙发里用触控板滚动当前前台窗口,往往要另开远程桌面或自己拼一套脚本,权限和端口还不好管。
dsh-phone-remote 是维护者 g524843184-maker 发布的客户端类 DSH 插件(当前 GitHub 星标为 0)。它把同一局域网里的手机变成 Mac 的外接终端:语音输入、1:1 屏幕镜像、MacBook 触控板手势、语音回读,以及三个 agent 一键切换。插件在 DSH 启动时拉起本地服务 server/server.cjs,绑定 0.0.0.0:8787,以便手机访问;子进程由 DSH 负责,继承 DSH 的系统权限,无需再单独授权一个独立应用。
这是什么¶
- 名称:dsh-phone-remote(手机遥控器)
- 分类:客户端
- 许可证:MIT(见仓库
package.json,版本 0.1.0) - 定位:在 Mac 上通过 DSH 插件,让手机浏览器(可加主屏幕)操作当前 Mac 前台窗口并查看 1:1 镜像。
生态上,DSH 奉行「一切皆插件」;社区目录站 skillhub.cn 与 DeepSeek、幻方无官方从属关系,安装前应自行查看源码与许可证。
核心功能¶
下面能力均来自官方 README,按界面区域说明。
本地服务与自检¶
插件启动后会监听 0.0.0.0:8787(与仅监听 127.0.0.1 的 DSH Web 服务不同,必须为局域网手机可达)。运行后可请求 GET /selfcheck,返回 {accessibility, screenRecording, voice, ok, hint},用于检查辅助功能、屏幕录制与语音相关状态。
手机端界面¶
- 左侧主界面:状态栏、输入框、1:1 镜像区、动作行(清空·退格·语音·发送·换行)、⌘ 快捷键行、触控板、三个 agent 键。
- 触控放大面板:按住触控区时弹出,固定盖住动作行那两行,放大指针周围横幅;中间小黄点为指针在放大区内的真实位置,便于贴边操作。
输入与镜像¶
| 能力 | 说明 |
|---|---|
| 输入框 + 发送 | 支持语音或打字;发送时以 ⌘V 等方式注入到当前前台窗口 |
| 镜像区 | 1:1 显示 Mac 屏幕(依赖屏幕录制权限) |
| 触控区 | 单指移/轻点/双击/长按拖;双指滚动/右键/捏合;三指四指切桌面 |
语音回读(可选)¶
语音不是必需。插件向本机 127.0.0.1:9899(GENIE)发 HTTP 请求;有服务则回复会被念出,手机/桌面按「这条是谁发起的」决定出声位置。无服务时其它功能正常,只是不念。本插件不包含语音模型;模型(约 3.9GB)在 ~/.hermes/tools/genie-tts,属本机共享服务,插件不会打包或独占模型。
三个 agent 键¶
默认按钮文案与目标(大聪明 / 小聪明 / 大管家)是作者本人机器上的配置,其他环境需用 ~/.dsh/phone-remote.json 覆盖,无需改代码。详见下文「典型用法」。
系统权限(必须)¶
| 权限 | 用途 | 不授权的后果 |
|---|---|---|
| 辅助功能 | 把键盘、鼠标事件打进当前前台窗口 | 发送、⌘C/V、触控板无效 |
| 屏幕录制 | 截屏做 1:1 镜像 | 镜像区全黑(仅剩壁纸) |
macOS 授权方式:
系统设置 → 隐私与安全性 → 辅助功能 → 勾选 / 添加 DeepSeek Harness.app
系统设置 → 隐私与安全性 → 屏幕录制 → 勾选 / 添加 DeepSeek Harness.app
勾选项后需重启一次 DSH(TCC 对已在运行进程不即时生效)。
安装与启用¶
官方 README 未提供 dsh plugin add github:... 一类命令,安装步骤如下。
- 把本插件目录放到
~/.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>。 - 手机与 Mac 处于同一局域网,用浏览器打开上述地址;Safari 可通过「分享 → 添加到主屏幕」固定入口。
安全与权限说明:插件以当前 DSH 进程权限运行,并继承 DSH 已授予的辅助功能、屏幕录制等能力。安装前建议在 GitHub 仓库阅读 server/server.cjs 与相关源码,确认行为符合你的环境策略。
典型用法¶
手机上各区域¶
| 区域 | 作用 |
|---|---|
| 输入框 + 发送↵ | 语音/打字输入,注入到前台窗口 |
| 镜像区 | 1:1 看 Mac 屏幕;触摸下方触控区操作 |
| 触控区 | 见上文手势说明 |
| 红点 | 复读 / 结束(与语音回读相关) |
| 三个 agent 键 | 默认对应大聪明 / 小聪明 / 大管家,激活并全屏 |
覆盖 agent 切换配置¶
默认三个键指向作者本机的 DeepSeek Harness.app、Hermes.app 及 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)生效;不需要的键可从配置删掉,前端仍可能显示,点击会提示未知目标。
适用场景与注意¶
适合谁:长期在 Mac 上用 DSH / 多个 agent,希望同一 Wi‑Fi 下用手机看 1:1 画面、远程点按和滚动、顺便切换常用应用,且能接受给 DSH 开辅助功能与屏幕录制。
需注意:
- 仅 macOS;依赖局域网访问
8787端口。 - 镜像全黑、按键无反应时,先查 TCC 是否勾选 DeepSeek Harness.app 并重启 DSH,再用
/selfcheck核对。 8787被占用时(例如旧版独立服务仍在跑),可尝试:launchctl bootout gui/$(id -u)/com.example.phone-remote。- 语音回读依赖
127.0.0.1:9899,未运行时不影响镜像与触控。 - 「大管家」类坐标点击若 DSH 窗口非全屏可能漂位;插件会先尝试全屏再点,仍失败则需手动切换。
想改插件实现可参考仓库内 DEVELOPMENT.md(架构、机制与调试)。
结尾¶
dsh-phone-remote 把「手机 + 浏览器」收成 Mac 旁路终端:在 DSH 权限模型下统一处理注入、镜像与可选 TTS,并用独立端口服务手机端。目录与源码: