dsh-mobile-access
Open a Mac or Windows DeepSeek Harness Web instance from iPhone or iPad Safari: 8-digit pairing, a LAN gateway for loopback-only hosts, optional Tailscale Serve, and iOS-only Safari input and touch fixes. Installs with dsh plugin add.
Install
dsh plugin --profile web add dsh-mobile-access
Sandbox test results
| Stage | Result |
|---|---|
| 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
手机访问(dsh-mobile-access)

English (US) — plain-language guide: [README.en.md](README.en.md)
用 iPhone / iPad 自带的 Safari,安全打开 Mac 或 Windows 10/11 上的 DeepSeek Harness Web。
不用装 App,不用改 DSH 源码,不影响你原来在电脑上的使用。
Windows 10/11 用户也能用:同一份插件,不区分 Mac / Windows。
Windows 只是多一个“防火墙允许 Node.js”的步骤;完整小白步骤见
[Windows 10/11 快速上手](#windows-1011-快速上手小白版)。
这是一个独立的 TypeScript DSH 插件(bundle)。它主要在 DSH 里增加三样东西:
1. 左侧栏一个「手机访问」入口;
2. 一个给手机用的短地址和 8 位配对码;
3. 一组只在 iPhone/iPad 上生效的输入与触摸小补丁(Return 换行、防自动放大、侧栏手势等)。
其他东西都不动:不改 DSH 核心、不改登录方式、不替换页面、不装后台服务、不拦截现有请求。
安全吗?会偷看或上传我的文件吗?
结论:按 1.1.10(与 1.1.9 同一依赖集,无生产依赖)的源码和 npm 发布包检查,没有发现窃取文件、上传数据或远程控制的行为。
- 没有生产依赖:
dependencies是空的;安装包只含运行所需的 JS、配置、图标和说明。 - 没有危险能力:服务端只用到 Node 自带的
http、net、os和 Web Crypto;没有读文件的fs、没有执行命令的child_process、没有eval。 - 没有第三方服务器:手机和电脑之间的配对、页面、WebSocket 只在你的局域网或你自己的 Tailscale 内;配对码和 Cookie 只发给这台 DSH。
- 不主动读取或保存内容:插件不读取聊天记录、不扫描文件;局域网网关只转发你主动发起的 HTTP/WebSocket 请求,不另存一份。
- 自动检查结果:
npm audit --omit=dev为 0 个漏洞;npm 在安装时会校验发布包的 registry 签名;35 项自动测试和 Ubuntu/Windows CI 均通过。 - 边界也要知道:插件运行在 DSH 进程权限内;请只从 npm 安装固定版本,不要把 8 位配对码给不信任的人;在公共 Wi-Fi 下建议关闭网关或改用 Tailscale。任何软件都有供应链风险,锁定
1.1.10比盲目使用@latest更稳妥。
技术用户可以自己复核:
cd /path/to/dsh-mobile-access npm view dsh-mobile-access@1.1.10 dependencies npm audit --omit=dev npm audit signatures grep -RInE "child_process|exec\\(|eval\\(|https?://" src
English (US) — What This Is
This is a small, independent add-on for the official DeepSeek Harness (DSH)
Web app. It lets Safari on an iPhone or iPad open the DSH Web app running on
your Mac or Windows 10/11 PC — without installing a phone app or changing
DSH itself.
DSH normally protects its page with a very long login link. That link is too
long to type on a phone. This plugin adds a simpler, temporary way in:
1. The DSH sidebar shows an 8-digit code on your computer.
2. You open a short address on the iPhone, ending in /m.
3. You type the 8 digits.
4. Safari logs in and keeps a secure cookie for 30 days.
The long login token never appears in the phone’s address bar, browser history,
or Referer header. The code expires after 10 minutes and locks after too many
wrong attempts.
Install in one command
Mac Terminal:
dsh plugin --profile web add dsh-mobile-access@1.1.10 --registry=https://registry.npmjs.org/
Windows 10/11 PowerShell (no administrator mode needed):
dsh plugin --profile web add dsh-mobile-access@1.1.10 --registry=https://registry.npmjs.org/
Then refresh the DSH page, open Mobile Access in the left sidebar, and use
the address and 8-digit code shown there.
If DSH only listens on 127.0.0.1, the plugin automatically starts a local
gateway on port 3081; your computer keeps using 127.0.0.1, and the phone
uses http://<computer-LAN-IP>:3081/m. On Windows, allow Node.js on **Private
networks** when the firewall asks.
This is not a public tunnel or a VPN. It is for your own trusted Wi-Fi/LAN.
For access outside the home, the optional Tailscale Serve steps are in the full
English guide.
iPhone-only fixes included
- Return adds a new line; the send button sends.
- Tapping the model switcher does not zoom the page or pop up the keyboard.
- One tap switches a sidebar session and collapses the sidebar.
- Swipe right to open the sidebar; tap the conversation content to close it.
- Switching sessions dismisses the keyboard instead of reopening it.
Mac and Windows desktop behavior is left alone.
**Read the full plain-English guide:
[README.en.md](README.en.md)** — it includes requirements, pairing steps,
Windows firewall notes, Tailscale Serve, a troubleshooting table, security
details, limits, and uninstall instructions.
先看结论:它到底帮你做了什么
假设你的电脑(Mac 或 Windows 10/11)上正在运行 DSH Web,地址是:
http://192.168.1.23:3080
以前 iPhone 直接打开这个地址,会看到:
dsh web authentication required; reopen the URL printed by dsh web.
这不是网络坏了,而是 DSH 的安全保护:它只认电脑终端(Mac 终端 / Windows PowerShell)里打印出来的那条带很长 token 的登录链接。这条链接太长,手机不可能手输。
这个插件做的事,就是把这个过程变成:
电脑面板显示 8 位配对码
↓
iPhone 打开短地址 /m
↓
输入 8 位数字
↓
自动登录,进入完整 DSH Web
用生活里的话说:
- DSH 是一栋上锁的房子;
- 原来的长 token 是一把很长的钥匙,手机没法输;
- 插件在门口装了一个「临时门禁」;
- 电脑前的人看到 8 位门禁码,告诉手机;
- 手机输对后,屋里直接给它戴上 30 天有效的「手环」(HttpOnly 登录 Cookie)。
长钥匙不会出现在手机地址栏、浏览器历史或网页来源信息里。
Windows 10/11 快速上手(小白版)
这一段是专门写给“不写代码、不懂网络”的 Windows 用户的。
如果你用的是 Mac,可以直接看下面的[安装](#安装mac-或-windows-操作复制即可)。
先说结论
这个插件不是 Mac 专用的。
它在 Windows 10 / Windows 11 上使用的是同一个 npm 包、同一条安装命令、同一个「手机访问」面板。
Windows 和 Mac 最需要额外注意的区别是:
Windows 第一次运行时,系统防火墙会弹出一个“是否允许 Node.js 访问网络”的窗口,点一次“允许”即可。
不需要安装 iTunes,不需要买 Mac,不需要改 DSH 源码,也不需要在 iPhone 上装 App。
你需要准备什么
只需要 4 样东西:
1. 一台 Windows 10 或 Windows 11 电脑;
2. 电脑上的 DSH Web 已经能正常打开(平时启动 DSH 的那个窗口不要关);
3. iPhone 和 Windows 电脑连的是同一个 Wi-Fi;
4. Windows 上已经装好 DSH 需要的 Node.js(DSH 能启动,就说明已经装好)。
三步安装
第 1 步:打开 PowerShell
在 Windows 上:
1. 按键盘上的 Win + X;
2. 在弹出的菜单里选 “终端” 或 “Windows PowerShell”;
3. 不需要“以管理员身份运行”;
4. 看到类似 PS C:\Users\你的名字> 的提示符,就说明打开了。
第 2 步:复制下面这一条命令,粘贴,回车
dsh plugin --profile web add dsh-mobile-access@1.1.10 --registry=https://registry.npmjs.org/
这条命令只做三件事:
1. 从 npm 下载插件;
2. 装进 DSH 的 web profile;
3. 自动把插件加入 DSH 的插件列表。
如果你的 DSH 平时用的不是web这个 profile,把命令里的web换成你实际使用的名字。
不确定时先照抄;如果提示 profile 不存在,再检查你平时启动 DSH 用的名称。
如果 PowerShell 提示“dsh 不是内部或外部命令”,说明 DSH 没有加入系统 PATH。
这不代表插件坏了:请先按你平时启动 DSH 的方式打开它的终端,再执行同一条命令;或者把 DSH 的 bin 目录加入 PATH。不要因此重装 Node.js 或 DSH。
第 3 步:回到 DSH 页面,按 Ctrl + R 刷新
刷新后,DSH 左侧栏会出现一个手机图标,名字叫「手机访问」。
如果插件管理器提示“需要重启”,请手动重启 DSH;不要连续反复重装。
正常情况下不需要重启。
第一次打开:Windows 防火墙会问你
第一次让手机访问时,Windows 可能弹出:
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::16,最后更新 2026-10-29