ZSLsherly
DSH-remote-console
No description
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
DSH Remote Console
DSH Remote Console 是 DeepSeek Harness (DSH) Web profile 的移动端增强插件,插件 ID 为 dsh-mobile。它通过 Tailscale Serve 将本机 DSH 安全地提供给手机浏览器,无需在公网监听端口。
功能
- 显示 DSH 连接、运行、等待操作和就绪状态。
- 统计待处理/已完成会话,并跳转到下一个会话。
- 在浏览器页面存活时提供待操作/任务完成通知。
- 支持浏览器的“安装应用”提示。
- 仅在手机/触摸屏布局中显示,不替换 DSH 原有界面。
设计
手机浏览器
|
| Tailscale HTTPS(Tailnet 内)
v
Tailscale Serve :8443
|
| http://127.0.0.1:3080
v
DSH Web + dsh-mobile
|
v
DSH 官方 Session / RPC / Permission / Reconnect
插件不解析会话 JSONL,不创建额外的 DSH 子进程,不提供终端或 bypassPermissions。客户端以附加项方式注册到官方 conversation.input.dock Slot。
环境要求
- Windows 10/11
- DSH
0.1.0-rc.6 - Node.js
22.19+或24+ - Corepack
- Tailscale(远程访问需要)
官方安装方式
DSH 官方插件分发路径是 dsh plugin --profile <name> add,支持 npm 包、tarball 和 GitHub 安装。
# 从 npm(发布后)
dsh plugin --profile web add @wahu/dsh-mobile
# 从本地 tarball
corepack pnpm pack
dsh plugin --profile web add ./wahu-dsh-mobile-0.2.0.tgz
# 从 GitHub Release tarball
dsh plugin --profile web add https://github.com/ZSLsherly/DSH-remote-console/releases/download/v0.2.0/wahu-dsh-mobile-0.2.0.tgz
# 从 GitHub(已提供 prepare 构建)
dsh plugin --profile web add github:ZSLsherly/DSH-remote-console
包名
@wahu/dsh-mobile,插件 ID 同为dsh-mobile;包内已声明dsh.bundle与dsh.clientmanifest。
安装
在 CMD 中执行:
git clone https://github.com/ZSLsherly/DSH-remote-console.git
cd /d DSH-remote-console
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\install.ps1
安装脚本会完成依赖安装、类型检查、测试、构建,然后把当前目录链接到 DSH web profile。
验证 profile:
dsh.cmd --profile web --dump-config | findstr /i dsh-mobile
本机使用
dsh.cmd --profile web --port 3080
浏览器打开 http://127.0.0.1:3080。
手机远程访问
1. 首次配置
电脑和手机先登录同一个 Tailnet。在电脑 CMD 中执行:
cd /d DSH-remote-console
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\start-remote.ps1 -ConfigureServe
脚本会:
- 从
tailscale status --json读取当前设备的 MagicDNS 域名。 - 配置 Tailscale HTTPS 8443 代理到
127.0.0.1:3080。 - 以该 MagicDNS authority 作为
--trusted-host启动 DSH。 - 如果端口上已有符合安全要求的 DSH,则验证后复用它。
脚本输出的 Mobile URL 就是手机访问地址,例如:
https://device-name.example.ts.net:8443/
2. 手机登录
- 在 iOS/Android 安装 Tailscale。
- 登录与电脑相同的 Tailscale 账号,或加入同一 Tailnet。
- 确认手机 Tailscale 状态为已连接。
- 用手机浏览器打开脚本输出的
Mobile URL。
DSH 没有额外的账号登录页;Tailnet 成员身份和 ACL 就是访问边界。
3. 日常启动
Tailscale Serve 配置会保留。电脑重启后只需:
cd /d DSH-remote-console
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\start-remote.ps1
如果脚本新启动了 DSH,该 CMD 窗口需要保持打开;按 Ctrl+C 停止。
4. 连通性验证
新开 CMD:
cd /d DSH-remote-console
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\check-remote.ps1
检查 Tailscale Serve 状态:
"C:\Program Files\Tailscale\tailscale.exe" serve status
远程打开本地工作区
DSH 出于安全限制,host.pickDirectory 只允许本机回环调用;手机通过 Tailscale 远程访问时调用它会返回 HTTP 403。
手机远程访问时,本插件会接管 DSH 原生的 “选择工作区域 / 添加工作区” 流程:点击后会弹出路径输入框,输入电脑上的本地工作区绝对路径,插件会通过 DSH 的 workspace.create 接口直接注册并打开该目录,绕开被限制的原生目录选择器。对话输入区的 “打开工作区” 按钮也走同样的路径。
示例路径:
C:\my-project
电脑防睡眠
手机远程连接后,浏览器会每 20 秒向插件心跳端点发送一次请求。插件在电脑上收到心跳后,会通过 Windows SetThreadExecutionState 保持系统唤醒,避免电脑进入睡眠;超过 90 秒没有心跳后自动恢复系统正常睡眠策略。
该机制不修改电源计划,也不需要管理员权限。插件更新到本版本后需要重启一次 DSH,新的 Node 端才会生效。
安全边界
- DSH 只监听
127.0.0.1,不使用0.0.0.0。 - 远程脚本只配置 Tailscale Serve,不开启 Funnel。
--trusted-host只加入当前设备的 MagicDNS:8443authority。- Tailscale Serve 默认仅 Tailnet 内可见,请同时维护好 Tailnet ACL。
- 页面通知不是 Web Push;浏览器必须保持页面存活。
停用 8443 代理:
"C:\Program Files\Tailscale\tailscale.exe" serve --https=8443 off
开发
corepack.cmd pnpm install
corepack.cmd pnpm run check
check 依次执行 TypeScript 类型检查、Vitest 测试和 Node/浏览器 bundle 构建。
License
生态标签
该仓库/包使用以下标签便于 DSH 插件市场与社区索引发现:
- GitHub topics:
dsh-plugin、deepseek-harness、dsh、mobile、remote-console、tailscale - npm keywords:
dsh-plugin、deepseek-harness、dsh、mobile、remote-console、tailscale