@restregular/dsh-pocket

remotetested: passnpmMIT

A separate narrow-screen web surface for DeepSeek Harness rather than the desktop GUI scaled down: it serves its own session list and chat stream behind a random access token over LAN, a tunnel (cloudflared, localtunnel or localhost.run) or an SSH reverse forward through a server you own. On the pho

下载量 / Downloads
1,969
依赖体积 / node_modules
2.33 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add @restregular/dsh-pocket

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

<div align="center">

<img src="icon.svg" width="80" alt="Pocket Access" />

<h1>Pocket Access · dsh-pocket</h1>

<p><strong>把本机的 DeepSeek Harness 装进口袋。</strong></p>

<p>在手机上继续会话、盯住流式输出、回答问题与审批、下载产物。<br />

轻量界面为小屏重写;需要完整桌面能力时,一键直通宿主 Web GUI。</p>

<p>

<a href="https://www.npmjs.com/package/@restregular/dsh-pocket"><img src="https://img.shields.io/npm/v/@restregular/dsh-pocket?style=flat-square&logo=npm&label=npm" alt="npm version" /></a>

<a href="https://www.npmjs.com/package/@restregular/dsh-pocket"><img src="https://img.shields.io/npm/dm/@restregular/dsh-pocket?style=flat-square" alt="npm downloads" /></a>

<img src="https://img.shields.io/badge/node-%3E%3D22.13-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node.js >= 22.13" />

<a href="LICENSE"><img src="https://img.shields.io/npm/l/@restregular/dsh-pocket?style=flat-square" alt="MIT License" /></a>

<img src="https://img.shields.io/badge/DeepSeek%20Harness-plugin-4f8cff?style=flat-square" alt="DeepSeek Harness plugin" />

<a href="https://dsh-plugin.org/plugins/restregular/dsh-pocket"><img src="https://dsh-plugin.org/badges/listed.svg" alt="Listed on dsh-plugin.org" /></a>

</p>

</div>

Pocket Access 是 DeepSeek Harness 的移动端伴侣插件。插件列表与侧栏的显示名为 随身访问;包名为 @restregular/dsh-pocket。
English — A mobile companion for DeepSeek Harness. It serves a purpose-built phone UI and can reverse-proxy the full desktop GUI, with live sessions, prompts, tool approvals, file downloads, LAN/tunnel access, one-tap keep-awake, and one-tap restart or shutdown of DSH.

<p align="center">

<img src="preview/hero.jpg" width="100%" alt="Pocket Access:手机端的会话、聊天与文件下载" />

</p>

目录

  • [为什么是 Pocket](#为什么是-pocket)
  • [功能一览](#功能一览)
  • [两种界面,按场景选择](#两种界面按场景选择)
  • [界面预览](#界面预览)
  • [快速开始](#快速开始)
  • [安装](#安装)
  • [从手机访问](#从手机访问)
  • [远程访问](#远程访问)
  • [移动端能力](#移动端能力)
  • [桌面 Pocket 面板](#桌面-pocket-面板)
  • [安全模型](#安全模型)
  • [配置](#配置)
  • [HTTP 接口](#http-接口)
  • [已知限制](#已知限制)
  • [开发](#开发)
  • [反馈与贡献](#反馈与贡献)
  • [License](#license)

为什么是 Pocket

DeepSeek Harness 的 Web GUI 为桌面设计。Pocket 不要求你在手机上重新适应一套缩水界面,也不要求插件作者为移动端再写一遍 UI;它提供两条互补的路径:

  • 两种界面,同一套能力。 默认的轻量页为窄屏重写会话流与输入流程,首屏小、打开快;需要终端、插件市场、文件预览或任何第三方插件面板时,一键切到「桌面直通」,手机加载的就是桌面端同一份渲染代码。
  • 不只是看,而是接管。 发送提示词、停止回合、切换模型与思考等级、选择权限预设、处理阻塞式提问和工具审批,全部可以在手机上完成;手机离线时自动回落到桌面。
  • 为真实网络设计。 局域网直连、Cloudflare Quick Tunnel、localtunnel、localhost.run、自有服务器 SSH 反向转发,或自定义命令;桌面面板生成带令牌的二维码,扫一下就进入。
  • 手机端细节不是事后补的。 发图前本地压缩、工作区文件直接下载到手机、跨会话提问提醒、跟随系统主题、主屏幕图标、保持电脑常亮、一键重启/关闭 DSH——都按移动端使用习惯处理。
  • 边界清晰的安全模型。 128 位随机令牌;桌面面板只接受回环请求;文件读取限制在会话 cwd 或已登记工作区;GUI Cookie 留在 Pocket 内部,不交给手机。
  • 轻量、无构建。 移动页面是原生 ESM,唯一的运行时依赖是 ws;二维码编码器随包内嵌,不需要前端构建链。

功能一览

类别 · 能力

会话 · 按桌面工作区顺序分组、折叠、搜索、新建、置顶、重命名、归档/取消归档、复制 Session ID

实时对话 · WebSocket 流式输出、历史快照分批到达、思考过程折叠、工具调用参数与结果、token 用量

远程控制 · 发送 / 排队 / 插话、停止回合、模型与思考等级、权限预设、/技能 引用

人机交互 · 阻塞式提问直接作答、工具审批「允许一次 / 拒绝」、跨会话提醒、手机回答后撤回桌面弹窗

文件与媒体 · 工作区文件树、文本/图片预览、@路径 引用、文件下载到手机、最多 4 张图片消息与本地压缩

外观与体验 · 跟随系统 / 浅色 / 深色、历史截断设置、回到底部、PWA 主屏幕图标

宿主能力 · 账户余额、保持电脑常亮、一键重启/关闭 DSH、桌面 Pocket 面板、扫码连接、令牌轮换

远程访问 · 局域网、Cloudflare、localtunnel、localhost.run、自有服务器 SSH、自定义隧道、固定 publicUrl

两种界面,按场景选择

Pocket 的核心差异是:手机界面不是桌面界面的降级版,而是一个可切换的完整方案。

· 轻量界面(默认) · 桌面直通

首屏 · 为小屏重写的会话列表与聊天流,加载快 · 完整的桌面 bundle(含全部插件)

插件 UI · 重写核心会话、文件、审批流程 · 插件面板、设置、终端、市场原样复用

适合 · 日常查看、回复、审批、下载产物 · 需要桌面专属功能或第三方插件界面

代价 · 新插件不会自动出现在轻量页 · 首屏更大;触摸交互不如原生移动页顺手

切换 · 手机设置 →「界面」;或桌面 Pocket 面板 →「设置 → 手机端界面」 · 同上,也可访问 GET /__pocket/surface?to=desktop

桌面直通不是简单的 iframe:Pocket 把宿主 Web GUI 整页反向代理给手机,并处理两层认证——手机仍先过 Pocket 令牌/Cookie,Pocket 再用进程启动令牌换取绑定回环 authority 的 GUI Cookie。隧道地址变化不影响使用。

界面预览

<table align="center">

<tr>

<td align="center" width="50%">

<img src="preview/mobile-home.png" width="250" alt="手机会话列表与余额" /><br />

<sub><b>会话列表</b> · 工作区分组、搜索、置顶与归档</sub>

</td>

<td align="center" width="50%">

<img src="preview/mobile-chat.png" width="250" alt="手机实时对话" /><br />

<sub><b>实时对话</b> · 流式输出、思考过程、工具卡片与 Markdown 表格</sub>

</td>

</tr>

<tr>

<td align="center" width="50%">

<img src="preview/mobile-preview.png" width="250" alt="文件预览与下载" /><br />

<sub><b>文件下载</b> · 预览底部、文件树每行都能直接保存到手机</sub>

</td>

<td align="center" width="50%">

<img src="preview/mobile-settings.png" width="250" alt="手机设置" /><br />

<sub><b>界面切换</b> · 轻量界面与桌面直通,按场景选择</sub>

</td>

</tr>

</table>

截图使用演示会话、演示余额与演示地址;二维码和令牌均为示例,真实值以你本机面板显示为准。

快速开始

1. 安装插件:在 Plugin Manager 中安装 @restregular/dsh-pocket,或使用本地目录安装。

2. 打开面板:刷新一次 Web GUI,在侧栏的全局面板列表里打开 随身访问 / Pocket Access。

3. 扫码进入:手机相机扫描面板里的二维码;隧道在线时指向公网地址,否则指向局域网地址。首次打开会写入一个 30 天有效的 HttpOnly Cookie。

装好后建议把手机页面「添加到主屏幕」;iOS 使用 180/192 PNG 图标,避免 SVG 在主屏幕上显示空白。

安装

一条命令从 npm 安装(Web profile):

dsh plugin --profile web add @restregular/dsh-pocket

也可以在 Plugin Manager →「安装 Bundle」里安装(或调用 plugin_manager 的 install_bundle),包名:

@restregular/dsh-pocket

也可以安装本目录(Plugin Manager →「本地目录安装」):

D:\DeepseekHarnessProjects\dsh-pocket
本包以 link: 方式安装到 profile 时,pnpm 不会替被链接的目录安装它自己的可选依赖。若要让 Windows x64 自动带上 cloudflared,请先在本目录执行一次 pnpm install(只影响本目录的 node_modules)。从 npm 正式安装时这一步由包管理器自动完成。

从手机访问

1. 打开桌面侧栏的 随身访问 / Pocket Access。

2. 手机相机扫描「扫码连接」里的二维码。

3. 首次打开会种下 30 天有效的 HttpOnly Cookie;也可以直接收藏地址。

也可以手动复制面板里的「本机 / 局域网 / 公网」地址。

链接里带有访问令牌,等同于本机 DSH 的钥匙。 不要发到公开群聊或截图分享。令牌泄露时,在面板点「轮换令牌」;旧链接会立即失效。

远程访问

隧道怎么选

方式 · 适合 · 说明

cloudflared(推荐) · 大多数场景 · Quick Tunnel 无需账号,没有浏览器拦截页。Windows x64 会通过可选依赖 agentroam-cloudflared-win32-x64 使用经过校验的官方二进制;其他平台把 cloudflared 放进 PATH,或设置 cloudflaredPath。

localtunnel · 已有 lt 命令 · 浏览器首次访问会经过 localtunnel 的 511 提示页,需要输入本机公网 IP 作为 tunnel password。

localhost.run · 出站 22 端口可用 · 通过 ssh -R 建立隧道,不需要额外客户端。

ssh · 有自有服务器 · 不要求服务器开启 GatewayPorts,也不改 sshd;见下一节。

custom · 已有 frp / rathole 等 · 任何能在 stdout/stderr 打印公网 URL 的命令

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::31,最后更新 2026-11-06

Links

GitHub · Homepage · npm

Same category