Hello! 欢迎来Regret的小站!

Pocket Harness:把电脑上的 DSH 揣进兜里,手机只当一个会说话的遥控器


avatar
Regret 2026-11-06 33
Pocket Harness:手机不是第二个 AI
把电脑上那个 DSH 连成一扇窗,而不是另起一个

先说清楚它不是什么

很多人一听「DSH 手机端」,第一反应是「把 DSH 装到手机上」。那是另一条路,那台手机得自己跑 Node、自己跑 proot、自己吃 token。Pocket Harness 走的是反方向:

手机上不跑任何模型,也不存任何记忆。它只是电脑上那个 DSH 的远程控制台。

这个区别决定的不是技术实现,是使用手感:

云端手机助手 Pocket Harness
大脑 厂商服务器上的模型 你电脑上的 DSH
历史 另一份对话 就是电脑上那条会话,切回来还是它
状态 只有一个「在输入」 回复中 / 用时 / 排队 / 目标 / 待确认提问,跟电脑上一致
数据 上传 配对直连,只走你俩之间那条线

表格里第三行才是真正值钱的地方。你在电脑上派出去的活还在跑,手机上点进去看到的就是「回复中 · 用时 3 分 12 秒」,不是转圈等待。你在电脑上排队的目标、等着你确认的提问,手机上一样列着、一样能回答。没有「另一端还是空白」这种尴尬。

一条会话,两端不打架

这是它做得最讲究的一块,也是最容易被做砸的一块。大多数「手机遥控」类工具死在这里:家里电脑开着会话 A,手机点进来开了会话 B,两边的历史就此分叉,谁也接不上谁。

Pocket Harness 的处理是切换会话时把上一轮彻底收掉,表头项目跟着换。往上翻到顶自动取上一页,不会出现「翻不动」。派出去的命令两端是同一批消息,不会出现只有一端才有的行。

目标与队列有个明确的边界:目标只在电脑上编辑,手机上能看。这个取舍是对的——手机屏幕小,编辑目标是重操作;看和回答是轻操作,那才是手机上真正会做的事。

桌宠是可选件,不是本体

它默认关着。你在设置里打开「显示鲸灵」,才会出现那只像素鲸鱼娘。

这个默认值是整篇文章里我最想夸的一处。把桌宠做成默认开启,用户会以为它是个玩具;做成默认关闭,它才是一个能用的工具,桌宠变成你主动选择的一种进入方式。

桌宠也不是纯装饰,它把状态翻译成了动作:

  • 说停就停:尾静音 1 秒判你说完了,不用点发送
  • 动作就是状态:听、想、说、待机四态各有动作,安静下来就是活干完了
  • 8 套衣服:水手裙 / 女仆装 / 鲸鱼卫衣 / 冬日斗篷 / 深海公主 / 深海研究员 / 星潮小魔女 / 泡泡睡衣

「安静下来就是活干完了」这一句,比任何进度条都直观。你不用看百分比,看它是不是在动。

悬浮窗那只是同一个它,不会出现两只,也不会各说各话。

三种连法,按你的处境选

这里没有标准答案,只有你的网络长什么样。

局域网——手机和电脑同一个 WiFi,零配置。面板会给你一个 http://192.168.x.x:8480/pet-voice/ 的地址和二维码,扫完就能说话。只在家里或办公室用,选这个,别折腾。

局域网那一行如果显示「现在用不了」,八成是两个原因:电脑开着 VPN 且 VPN 把本机地址的路由抢走了;或者系统防火墙拦了进来的连接(Windows 上要去「设置 → 网络 → 防火墙」允许 DSH 接收入站)。

自建域名——你有域名、有证书,长期用。适合在外面也要用、又不想每次折腾临时隧道的人。

服务器中转——在外面也想用,但不想碰路由器和证书。装 cloudflared 或 ngrok,或者用你自己的中转服务器,把它给的 https 地址填进去。

还有一种特殊情况值得单拎出来:域名没备案。国内机器上,没备案的域名走 80/443 会被云厂商拦到备案页,这不是 DSH 的问题。这时直接填 http://<公网IP>/pet-voice/ + token,功能一样全,只是没有 https 那把小锁。

门槛:Node.js 22.15.0 起

插件静态引用了 node:zlib 的 zstdDecompressSync。Node 20 会在加载插件时直接报「这个函数不存在」,不是降级能用,是根本起不来。

这条门槛值得留意,因为 DSH 自己在 v0.2.2-alpha.2 里已经把最低 Node 版本提到了 24.9。也就是说你的电脑上如果还挂着 Node 20,两个都会挂。

现在能用吗

项 状态
APK 0.9.145(versionCode 215),Android 8.0+(API 26),targetSdk 35
验证环境 Android 11 模拟器跑通全链路:配对、语音、回复、动作、历史、检查更新
真机 厂商权限跳转与硬件麦克风只在 AOSP 页面验证过,各家 ROM 仍可能不同
Android 14/15 未做实机验证:后台恢复、麦克风前台服务在收紧后的行为待确认
iOS 不支持(悬浮窗与常听麦克风是 Android 特性)

这段话难得地诚实。作者没有写「全平台支持」,而是把「模拟器跑通」和「真机没验」分得很清楚。如果你用的是 MIUI、ColorOS 这类会杀后台的 ROM,做好心理准备:悬浮窗和常听麦克风这两件事,出厂系统往往比原生 Android 更严格。

两条不是纯离线的链路

它整体是本地直连,但有两处逃不掉:

  1. 语音合成默认走微软 Edge 的在线接口(edge-tts,免 key)
  2. 唤醒与识别走 Android 系统语音服务(SpeechRecognizer),是否上传音频由系统或厂商决定

想彻底离线,可以换本地 TTS、换音色,但这两条链路本身不是纯离线的。介意的话,关掉语音只用打字,剩下全是本地。

装起来

电脑侧:

rsync -a --delete plugins/pocket-harness/ ~/.dsh/plugins/pocket-harness/
# 重启一次桌面端,让它重读 cordis.patch.yml

装了 dsh 命令行的,也可以 dsh plugin add pocket-harness@latest。装好后桌面端侧栏出现「Pocket Harness」面板。

然后是三步:面板里出配对码 → 手机装 APK → 扫码绑定。

不想扫码也行,手机上直接填电脑面板里的地址和 token。

一句话

它解决的不是「手机上没有 AI」,而是「手机上接不上我正在跑的那个 AI」。 会话不断、状态一致、数据不出门——这三点做到了,手机端才有意义;做不到,就只是又一个聊天框。


*参考:GitHub regrevia/pocket-harness(MIT),APK 0.9.145,2026-11-05 更新。*

暂无评论

发表评论