把电脑上的 DeepSeek Harness 装进手机(dsh-pocket)
DSH Pocket 是一个把 DeepSeek Harness 搬到手机上的插件:电脑上跑 dsh web,手机扫码就能实时同屏并操作同一个界面。这篇文章讲清它的安装命令、局域网与公网两种访问方式、密码与安全机制,也写明它接不了哪些场景、和同类插件比该怎么选。
DeepSeek Harness 跑在电脑上,干活的 agent 进程也在电脑上。人一离开工位,观察和干预的通道就断了:任务跑到哪一步、要不要点那个审批、刚生成的代码对不对,全都看不到。DSH Pocket 要补的就是这段空档。
DSH Pocket 是 DeepSeek Harness 的手机访问插件,JavaScript 写成:装进电脑上的 dsh web 后,手机扫码即可在浏览器里实时看到并操控同一个界面。
它不需要账号,也不需要另买服务器。默认走局域网,手机连同一个 WiFi,扫设置页里的局域网二维码、输一次密码就能打开;人在外面时点「开启公网访问」,插件通过 cloudflared 建一条隧道出公网二维码,4G 网络下同样能进。仓库在 https://github.com/shaobeichen/dsh-pocket ,许可证是 GPL-2.0,主要语言为 JavaScript(87.5%)与 TypeScript(12.5%),当前 1719 个 Star、79 个 Fork、6 个开放 Issue,最新版本 v2.11.0 发布于 2026-10-12。
这件事以前怎么做
想在电脑之外碰 DSH,常规办法是远程桌面或 SSH 回到那台机器。README 把「没有远程桌面、没有 SSH」直接列为要解决的问题:手机上装远程桌面客户端、连上网络、再缩放一个本来按桌面分辨率设计的界面,操作成本不低;换到 SSH,会话流、审批按钮和文件列表又都看不到。
另一条路是自己把电脑上的服务暴露出去,配内网穿透、挂反向代理、再加一层认证。这套东西对熟手不算难,麻烦在于每换一次地址就要重新对一遍链接和密码,长期挂着的个人用户会觉得琐碎。
换成它之后
安装和启用被压成几步:
- 电脑上先有 DeepSeek Harness。
npm install -g @deepseek-ai/dsh,用dsh --version验证;不想全局装,就在每条命令前加npx。 - 装插件:
dsh plugin --profile web add dsh-pocket -w - 重启:
npx @deepseek-ai/dsh web - 打开设置,左侧边栏会多出「手机访问」入口,和「通用设置」「模型」同级。
- 局域网:手机扫局域网二维码,输入设置页显示的局域网密码,打开的就是电脑上的 DSH,实时同步。
- 公网:点「开启公网访问」,勾选免责声明,等隧道建立,扫公网二维码,输入访问密码。
- 升级:
dsh plugin --profile web update dsh-pocket --latest -w。跨大版本时--latest是必须的,^0.x的范围不会自动升到 1.x。
密码分成两套。公网默认是每次开启都换新的 8 位随机密码,也可以在设置页里设成自己固定的 8–64 位(英文字母大小写或数字),自定义之后不再轮换。局域网有独立的 8 位随机密码,默认开启,可以一键关掉,关掉之后同一网络内的设备扫码直连、不再询问。
手机登录一次后长期免输,条件是这份登录状态绑在电脑的 dsh web 进程上:只要它不重启,手机不用再输入;dsh web 重启或更新后,需要重新输一次。登录还带限速,同一 IP 连续输错 5 次锁定 60 秒,输对密码后计数清零。
怎么接进现有流程
插件的输入是电脑上正在运行的 dsh web 进程,安装形态是一个 npm 包,没有核心和适配器要分开装。输出是手机浏览器里的同一个界面:流式输出走 WebSocket 全透传,电脑上在滚,手机上同步在滚,两边都能操作;内置心跳保活,挡的是路由器 NAT 和手机省电机制造成的静默断链,断了会自动重连。
公网这条路不需要自己置办服务器。cloudflared 首次使用会自动下载,macOS 与 Linux 走清华镜像。DSH 重启后,之前开着的公网隧道会自动重新拉起,不用手动再开一次。
配置和密钥都落在本机:公网密码在 $DSH_HOME/dsh-pocket/token,局域网密码在 $DSH_HOME/dsh-pocket/token-lan,开关与自定义标记在 $DSH_HOME/dsh-pocket/settings.json。没有定时任务这一环,访问是随用随开的。
大响应会被压缩:长会话的 JSON 从 17MB 压到约 1MB(brotli 质量 6),手机端加载更快,流量也更省。
它替代不了的部分
agent 始终跑在电脑上,所以电脑得开着、dsh web 得在运行,这是整套方案的前提。DSH Desktop 桌面版里扫码同屏可以正常用,更新和重启由桌面版管理,但 advanced 模式不支持手机访问:该模式禁用网页布局,手机拿不到 layout 服务会白屏,需要切回 compatibility 模式后重启。文件浏览入口依赖宿主提供 explorer 面板(dsh-web-ui 组件),官方 DSH 没内置时,这个入口会自动隐藏,不会出现点了没反应的情况。
想固定公网地址,需要 Cloudflare 账号和自己的域名。做法是在 Cloudflare Zero Trust 的 Networks → Tunnels 里建一条命名隧道,把 Tunnel Token 和域名填进设置页。命名隧道模式下密码不自动轮换,得靠自己用自定义密码管理;Tunnel Token 只存本机,设置页不回显。项目的许可证是 GPL-2.0,二次分发要遵守对应条款。
历史上有几类问题值得提前知道,它们目前都已关闭。手机或电脑打开局域网地址后只显示 forbidden;移动端抽屉里点历史会话无法切换,排查结果是背景遮罩抢走了点击;在远程 Linux 服务器上启用公网访问时,cloudflared 的自动安装会失败,只能去服务器命令行处理。另外,命令行直接跑 dsh-pocket 这条路在 v2.10.3 之前没有认证,现在的版本默认生成 8 位密码并打印在终端、同时内嵌进二维码,可以用 --pin 或 DSH_POCKET_PIN 自定义(至少 6 位),--no-auth 能关掉但不推荐。
公网访问的边界要自己守住。开启时服务端会强制校验免责声明,绕不过去;公网等于把一台能执行代码的 DSH 挂到互联网上,只能用于自己的设备或已获授权的目标,涉密与公司内网环境先确认合规再开。请配强密码、用完即关,别把局域网二维码、链接或密码发给别人。
同类插件的横向对照
| 项目 | 适合谁 | 部署方式 | 主要限制 | 什么情况下选它更合适 | 项目地址 |
|---|---|---|---|---|---|
| dsh-pocket | 电脑常年开机、想在外面用手机看着并操作 DSH 的个人开发者 | npm 插件:dsh plugin --profile web add dsh-pocket -w,无需账号与服务器 | agent 仍跑在电脑上,电脑与 dsh web 必须开着;DSH Desktop 的 advanced 模式不支持手机访问;固定公网域名需要 Cloudflare 账号与自有域名 | 想看到电脑上的完整界面并双向操作,也接受自己管理访问密码 | dsh-pocket |
| zhuiyueya/dsh-im-gateway | 习惯在微信、飞书等聊天软件里给 agent 下指令的人 | 仓库没有说明 | 它做的是把 dsh agent 接入 20+ 聊天平台的聚合网关,不提供原界面的手机同屏 | 想在聊天窗口里收发指令,不需要看完整界面 | zhuiyueya/dsh-im-gateway |
| liangmianya/dsh-synapse | 需要在画布上组织多分支会话的人 | 仓库没有说明 | 它是可视化、非线性的会话工作区,不负责手机远程访问 | 想把会话按画布摊开、在分支之间来回跳 | liangmianya/dsh-synapse |
这三个是同一批 DSH 插件,解决的问题并不重合,选择时要看你缺的是哪一环。如果你要的是随手在微信里发一句话让 agent 干活,dsh-pocket 给不了,它只把电脑界面搬进手机浏览器;这种场景用 dsh-im-gateway 更对路。反过来,需要在手机上看到完整会话流、点审批、翻文件列表的需求,聊天网关这类方案覆盖不到。dsh-pocket 有一处确实不如它们:它每次连接都要处理密码和链接有效性,公网快速隧道的地址每次重启还会变,得重新扫码;走聊天平台的方案不用打开专属网页,也不用记访问密码。
值不值得换
- 电脑长期开机、DSH 本来就在 web profile 下跑,缺的只是离开工位后的入口。
- 经常要在外面盯长任务进度、点审批,或者临时给电脑上的 agent 派活。
- 愿意自己管密码,用完把公网访问关掉。
不适用的情况也明确:你的 agent 交互主要发生在微信、飞书这类聊天软件里,那该装的是聊天平台网关插件,dsh-pocket 帮不上忙;你的电脑平时关机或 DSH 只跑桌面版 advanced 模式,扫码同屏这条路也走不通。
焚评:这个项目的量化评分
本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.3 分(满分 10)。下表是各维度的得分:
| 评分维度 | 得分 |
|---|---|
| 热度动量(权重 25%) | 10.0 / 10 |
| 开发活跃(权重 25%) | 8.0 / 10 |
| 社区响应(权重 15%) | 10.0 / 10 |
| 文档质量(权重 15%) | 8.5 / 10 |
| 发布节奏(权重 10%) | 10.0 / 10 |
| 风险控制(权重 10%) | 10.0 / 10 |
评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。
内容核验说明
把电脑上的 DSH 界面搬到手机,此前只能靠远程桌面硬扛。这篇把安装命令、局域网与公网两条路径、密码轮换与免登录条件都写清楚了,还对照了三个同类插件的分工,先判断自己缺的是哪一环再动手会省事。适合电脑常年开机、愿意自己管访问密码的个人开发者;公网隧道地址每次重启会变、固定域名要自备 Cloudflare 账号和域名,这两点在部署前要有预期。
Star、Fork、Issue 数与版本号来自 GitHub 仓库页面;焚评各维度得分由焚.com 授权引用,口径以其方法页为准。17MB 压到约 1MB、密码轮换规则与免登录条件均出自作者公开说明,诀.com 未独立验证。文中列举的历史问题标注为已关闭,是否在当前版本复现未核验。用户反馈摘要
根据仓库 Issue 来看,反馈集中在接入与兼容两类:局域网或公网打开后只显示 forbidden、提示设备未配对、加载提供方目录失败、桌面版启动后插件加载异常,以及移动端按钮叠加、左栏弹窗优先级过高等,这些 Issue 状态均为已解决。另有提交者要求支持固定公网域名(命名隧道),希望在会话窗口直接下载文件到手机,并报告在远程 Linux 服务器上 cloudflared 自动安装失败、自定义域名未填 token 后无法返回。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:shaobeichen(shaobeichen)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库