dsh-pocket
手机远程访问 DSH Web 界面:扫码即用局域网或公网(cloudflared 隧道)访问,实时同屏、移动端适配布局,带设置页管理。
安装
dsh plugin --profile web add dsh-pocket
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | — |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
<p align="center">
<img src="docs/banner.jpg" alt="DSH Pocket" width="100%">
</p>
<h1 align="center">DSH Pocket</h1>
<p align="center"><a href="README.en.md">English</a> | <a href="README.md">中文</a></p>
<p align="center"><a href="https://trendshift.io/repositories/166736?utm_source=trendshift-badge&utm_medium=badge&utm_campaign=badge-trendshift-166736" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/166736/daily?language=JavaScript" alt="shaobeichen%2Fdsh-pocket | Trendshift" width="250" height="55"/></a></p>
<p align="center">
<a href="https://www.npmjs.com/package/dsh-pocket"><img alt="npm" src="https://img.shields.io/npm/v/dsh-pocket?color=4d6bfe&label=npm"></a>
<a href="https://www.npmjs.com/package/dsh-pocket"><img alt="downloads" src="https://img.shields.io/npm/dm/dsh-pocket?color=4d6bfe"></a>
<a href="https://github.com/shaobeichen/dsh-pocket/actions"><img alt="CI" src="https://github.com/shaobeichen/dsh-pocket/actions/workflows/release.yml/badge.svg"></a>
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-GPL--2.0-red.svg"></a>
<a href="https://github.com/shaobeichen/dsh-pocket/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/shaobeichen/dsh-pocket"></a>
<a href="https://awesome-dsh-plugin.com/zh/"><img alt="Awesome DSH Plugin" src="https://awesome-dsh-plugin.com/badge.svg"></a>
</p>
把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫二维码就实时看到电脑上的同一个界面——人在外面也能用。
<p align="center">
⭐ 顺手留颗 Star,作者能高兴一整天 · <a href="https://github.com/shaobeichen/dsh-pocket">行,给你一颗 Star</a>
</p>
这是什么
你不在电脑前,也想用电脑上的 DeepSeek Harness。
- 下班路上,agent 在电脑上跑任务,你想掏出手机看看它干到哪了、结果如何
- 出门在外,突然想让电脑上的 agent 查点资料、写段代码,但没有远程桌面、没有 SSH
- 电脑在宿舍/办公室,你人在外面,想随时"操控你的 DeepSeek Harness"——发任务、看输出、点审批
DSH Pocket 就是干这个的:装上它,手机扫个码,就能实时看到并操控电脑上的 DeepSeek Harness 界面——人在外面也能用。
实际效果——手机上的界面就是电脑上的界面,实时同步:
<p align="center">
<img src="docs/interface.jpg" alt="手机上的 DSH 界面" width="100%">
</p>
✨ 特性
特性 · 说明
📶 局域网扫码 · 装好即用:设置 → 手机访问,打开就有局域网二维码,手机连同一 WiFi 扫码即开(自动识别本机局域网 IP,WSL 环境自动取 Windows 物理网卡 IP)
🚪 局域网开关 · 设置页可一键关闭/开启局域网访问(切换时弹窗提醒):关闭后局域网二维码/链接立即失效,仅公网可用
🌐 公网扫码(人在外面) · 点「开启公网访问」→ cloudflared 隧道 → 出公网二维码,4G/任何网络都能访问
🏷️ 公网固定域名 · 可选「命名隧道」模式:填 Cloudflare Tunnel Token + 自己的域名,公网地址固定不变(重启不再变;见下方说明)
🔐 访问密码 · 公网链接默认使用 8 位随机密码(每次开启公网自动换新;可自定义固定密码——自定义后不再换新);局域网有独立的默认 8 位随机密码(默认开启,设置页可一键关闭——关闭后局域网扫码直连)
🔑 自定义密码 · 公网/局域网密码都可在设置页设成自己固定的 8–64 位密码(英文字母大小写或数字)(自定义后公网不再自动换新)
🧘 会话保持 · 手机输一次密码后长期免输(登录状态绑定电脑上的 dsh web 进程:只要它不重启,手机不用再输;dsh web 重启/更新后需重新输入一次)
⚡ 实时同步 · 流式输出走 WebSocket 全透传——电脑上在输出,手机上同步在滚,可双向操作;内置心跳保活(防路由器 NAT/省电机制静默断链,断线自动重连)
📱 移动端适配 · 窄屏自动变抽屉布局(移植 dsh-web-mobile,MIT):侧栏抽屉、会话全宽、状态栏安全区、触控优化
🧭 可选右边栏 · 手机端显示原生右边栏入口;普通手机可在设置中关闭以保持紧凑,折叠屏展开后可更方便地同时使用终端底栏和右边栏
📁 文件浏览 · 移动端「文件浏览」入口需要宿主提供 explorer 面板(dsh-web-ui 组件);官方 DSH 未内置时入口自动隐藏,不会出现"点了没反应"
🗜️ 传输压缩 · 大 JSON 响应自动 gzip/brotli(长会话 17MB → ~1MB,brotli 质量 6:快且省流量),手机加载更快、更省流量
🔁 隧道自动恢复 · DSH 重启后自动重新拉起之前开着的公网隧道,无需手动重开
🧩 零依赖安装 · 一个 npm 包、一个设置页,没有核心/适配器要分开装;无需账号、无需服务器
🚀 怎么用
入口在哪:安装完成并重启 dsh web 后,打开 设置,左侧边栏就能看到 「手机访问」 入口(和「通用设置」「模型」同级):
<p align="center">
<img src="docs/entry.jpg" alt="手机访问入口" width="70%">
</p>
前提:电脑上已装好 DeepSeek Harness。如果终端提示 dsh: command not found(找不到 dsh 命令),先安装:
npm install -g @deepseek-ai/dsh # 全局安装;验证:dsh --version # 不想全局装?每次命令前加 npx:npx @deepseek-ai/dsh <命令>
# 1. 装插件(一个包全都有) dsh plugin --profile web add dsh-pocket -w # 2. 重启 dsh web npx @deepseek-ai/dsh web
局域网(同一 WiFi)
设置 → 手机访问 → 手机扫「📶 局域网」二维码 → 打开链接输入局域网密码(显示在设置页局域网区块,点「刷新」可换新,或点「自定义」设成自己固定的 8–64 位密码——英文字母大小写或数字)→ 打开的就是电脑上的 DSH,实时同步。
「局域网访问」开关默认开:可一键关闭/开启(切换时弹窗提醒)——关闭后局域网二维码/链接立即失效(手机打不开),公网不受影响;想恢复时再点「开」即可。
局域网密码默认开启(安全优先)。如果只有自己用、嫌每次输密码麻烦,可在设置页局域网区块把「局域网访问密码」切到关——之后局域网扫码直连、无需密码(仅同一局域网设备可访问;公网始终要密码,不受影响)。
手机登录一次后长期免输:只要电脑上的 dsh web 不重启,再次打开手机不用再输入(dsh web 重启/更新后需重新输入一次)。
高级选项:自动识别在 Tailscale/VPN 等场景下可能选不到可达地址。可在「局域网地址」下拉框手动选择已检测到的 IP;一般不需要修改。
公网(人在外面)
同一页点「开启公网访问」→ 每次都会先弹出安全免责声明,勾选「我已知情」后才能开启(公司/涉密网络请先确认合规)→ 等隧道建立(首次会下载 cloudflared,macOS/Linux 走清华镜像秒下)→ 手机扫「🌐 公网」二维码 → 打开链接输入访问密码(密码显示在设置页公网区块,默认是每次开启公网变新的 8 位随机密码,也可点「自定义」设成 8–64 位固定密码——英文字母大小写或数字,自定义后不再换新)→ 人在外面(4G/公司网)也
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:116,最后更新 2026-10-17