dsh-pocket:把 DeepSeek Harness 装进手机口袋

前言

DeepSeek Harness(DSH)的 Web GUI 面向桌面浏览器设计:宽屏布局、插件面板、终端与市场都假设你在电脑前操作。实际开发里,智能体回合可能跑很久,中间还会弹出阻塞式提问或工具审批;若你暂时离开工位,只能等回到电脑前再处理,流式输出和会话状态也无法在手机上可靠查看。

社区插件 dsh-pocket(npm 包 @restregular/dsh-pocket,界面显示名 随身访问 / Pocket Access)由维护者 RestRegular 发布,定位为 DSH 的移动端伴侣:在手机上继续会话、盯住流式输出、回答问题与审批、下载产物,并支持局域网或隧道远程访问。本文基于 GitHub 仓库 与 SkillHub 目录页 公开说明整理,便于同行评估是否安装使用。

这是什么

Pocket Access 是 DeepSeek Harness 插件,分类为客户端。它不替代宿主 Web GUI,而是额外提供一套为小屏重写的轻量移动页,并在需要时把完整桌面 GUI 反向代理到手机(「桌面直通」)。同一套 DSH 能力可在两种界面间切换:日常在轻量页查看、回复、审批;需要终端、插件市场或第三方插件面板时,一键加载与桌面相同的 bundle。

运行环境要求 Node.js >= 22.13(见 package.json engines)。当前 npm 版本为 0.15.2,许可证 MIT。GitHub 仓库 RestRegular/dsh-pocket 星标数为 1(以目录页与仓库页面为准)。

核心功能

下面按 README 中的能力分类说明,均可在安装后通过手机浏览器或 PWA 主屏幕使用。

两种界面

轻量界面(默认) 桌面直通
首屏 为小屏重写的会话列表与聊天流 完整桌面 bundle(含全部插件)
适合 查看、回复、审批、下载产物 终端、市场、插件专属 UI
切换 手机设置 →「界面」;或 GET /__pocket/surface?to=desktop 同上

桌面直通通过反向代理整页宿主 GUI,并处理 Pocket 令牌与 GUI Cookie 两层认证;隧道地址变化时仍可使用。

会话与实时对话

  • 会话列表按桌面工作区顺序分组,支持折叠、搜索、新建、置顶、重命名、归档、复制 Session ID。
  • WebSocket 流式输出、历史分批加载、思考过程折叠、工具调用参数与结果、token 用量。
  • 远程控制:发送 / 排队 / 插话、停止回合、模型与思考等级、权限预设、/技能 引用。

人机交互与文件

  • 阻塞式提问在手机上作答;工具审批支持「允许一次 / 拒绝」;跨会话提醒;手机回答后可撤回桌面弹窗。
  • 工作区文件树、文本/图片预览、@路径 引用、文件下载到手机;消息最多 4 张图片并支持本地压缩。

远程访问与宿主能力

  • 局域网直连;隧道可选 cloudflared(推荐)、localtunnel、localhost.run、自有服务器 SSH、custom 命令,或固定 publicUrl;auto 按 cloudflared → localtunnel → localhost.run 顺序尝试。
  • 桌面 随身访问 / Pocket Access 面板生成带令牌的二维码;账户余额、保持电脑常亮、令牌轮换。

安全模型(摘要)

  • 128 位随机访问令牌;链接含令牌,等同于本机 DSH 钥匙,不宜公开分享。
  • 桌面面板只接受回环请求;文件读取限制在会话 cwd 或已登记工作区;GUI Cookie 留在 Pocket 内部。
  • 首次手机打开写入 30 天有效 HttpOnly Cookie;泄露令牌时在面板「轮换令牌」可使旧链接失效。

移动页面为原生 ESM,运行时依赖主要为 ws;无前端构建链。

安装与启用

DSH 生态中插件通过 Plugin Manager 等方式安装 bundle,具体以你当前 Harness 版本文档为准。README 给出的安装标识如下。

从 npm 安装(Plugin Manager →「安装 Bundle」,或调用 plugin_manager 的 install_bundle):

@restregular/dsh-pocket

也可使用本地目录安装(示例路径来自 README,请改为你本机克隆或解压的路径):

D:\DeepseekHarnessProjects\dsh-pocket

以 link: 方式链到 profile 时,Windows x64 若需自动带上 cloudflared,需先在插件目录执行 pnpm install;从 npm 正式安装时由包管理器处理可选依赖 agentroam-cloudflared-win32-x64。

安装后:

  1. 刷新 Web GUI,在侧栏全局面板打开 随身访问 / Pocket Access。
  2. 用手机扫描面板「扫码连接」中的二维码(隧道在线时为公网地址,否则为局域网地址)。
  3. 建议将手机页面「添加到主屏幕」;iOS 使用 180/192 PNG 图标,避免 SVG 主屏幕空白。

典型用法

本机与局域网

  1. 打开侧栏 随身访问 / Pocket Access。
  2. 扫描二维码,或复制面板中的本机 / 局域网 / 公网地址。
  3. 在轻量界面处理会话与审批;需要完整桌面能力时,在设置中切换到「桌面直通」。

远程隧道(示例:自有 SSH 服务器)

在配置中可选用 tunnel: ssh(也可在桌面面板「公网入口」选「自有服务器」填写后切换)。README 示例片段:

tunnel: ssh
sshHost: 203.0.113.10
sshUser: root
sshKeyPath: ~/.ssh/id_ed25519
sshPort: 22
sshRemotePort: 8790
sshExposePort: 80
# 可选:有域名/HTTPS 反代时填写
# sshPublicUrl: https://pocket.example.com

要求服务器能免密 SSH 登录并装有 Node.js;sshExposePort 需在防火墙与安全组放行。直接监听公网 80 时为 HTTP,生产环境建议反代 HTTPS 并设置 sshPublicUrl。

状态文件默认路径:~/.dsh/pocket/state.json(即 $DSH_HOME/pocket/state.json),保存访问令牌、面板选项等;端口与隧道地址每次启动重新协商。

隧道方式速查

方式 说明
cloudflared Quick Tunnel,无需账号;其他平台将 cloudflared 放入 PATH 或设置 cloudflaredPath
localtunnel 需 lt;首次访问可能有 511 提示页
localhost.run 通过 ssh -R,需出站 22 可用
ssh 自有服务器反向转发
custom 自定义命令,%PORT% 替换本地端口
publicUrl 已有固定域名,不起隧道进程

适用场景与注意

适合谁: 经常在移动场景跟进 DSH 会话、需要及时处理工具审批或阻塞提问、或希望把手机作为「第二块屏」查看流式输出与下载工作区文件的 Harness 用户。

权限与安全: 插件与当前 DSH 进程同权运行,可访问宿主已开放的会话与工作区能力。安装前请阅读 源码 与 MIT 许可证,并理解令牌与隧道暴露面的风险;勿将带令牌的链接发到公开渠道。

生态说明: DSH 采用「一切皆插件」思路;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。

已知限制: README 设有「已知限制」章节,升级前可在仓库查看最新说明;部分 DNS 环境可能导致本机无法解析 *.trycloudflare.com,手机 DNS 通常仍可用,必要时改用局域网或其它隧道。

结尾

dsh-pocket 用轻量移动页加可选桌面直通,把会话、流式输出、提问审批与文件下载接到手机上,并配合局域网与多种隧道降低「必须坐在电脑前」的约束。若你需要在 Harness 工作流里补一层移动端访问,可从目录页与仓库 README 的「快速开始」「配置」「HTTP 接口」继续对照本机环境。

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

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

小夜