鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-remote-tunnel-easy

在设置中扫描二维码,通过 cloudflared 快速隧道在手机上于当前会话中打开 DeepSeek Harness 网页端。

远程移动端
访问 GitHub
文档README

dsh-remote-tunnel-easy

dsh-remote-tunnel-easy

Open your DeepSeek Harness session on your phone — by pointing the camera at it.

Scan the QR in Settings → Plugins and the harness opens in your phone's browser, inside the session you are already working in. Same workspace, same chat. No typing a URL. The dsh web terminal prints nothing.

⚠️ Renamed from qrcode-hassle-free — previously Raiyan007-gb/dsh-qrcode-hassle-free (npm qrcode-hassle-free). Now dsh-remote-tunnel-easy (Raiyan007-gb/dsh-remote-tunnel-easy, npm dsh-remote-tunnel-easy@1.4.2). If you installed the old name, migrate first — remove the old bundle, then add the new one.

A one-command DeepSeek Harness web bundle that brings QR-based remote handoff to the Settings page. It starts a cloudflared quick tunnel, loops your phone into the exact session the desktop is using, and draws the QR code plus settings right next to your other plugins — no terminal noise, no database, no Firebase, no app install.

  • Scan to open — a real QR code in Settings → Plugins, fresh every run
  • Same session — the phone lands inside the chat and workspace you are already in
  • Self-installing — detects cloudflared, and downloads it (SHA-256 verified) when missing
  • Regenerate — one click mints a fresh tunnel URL for the same session, without restarting
  • Editable settings — tunnel target, cloudflared path, and session handoff from the page
  • Nothing stored — the tunnel URL is random per run; nothing is saved anywhere
  • Everywhere — Windows (x64/x86), macOS (Intel/Apple Silicon), and Linux (x64/arm64)

At a Glance

QuestionAnswer
What is it?A dsh bundle that shows a scannable QR code and access link in the Settings page, so a phone opens the harness inside the active session.
Who is it for?Anyone running dsh web who wants their phone on the same session without typing tunnel URLs and tokens.
What do I get?A loopback edge proxy, a cloudflared quick tunnel, same-session handoff, and a live QR + settings card in Settings → Plugins.
What does it run on?Windows, macOS, and Linux — anything dsh runs on.
Is cloud required?No account or signup. cloudflared is used, and auto-downloaded on first run when missing; the tunnel is public, and the token in the link is the gate.

Get Started

Run dsh web once so a profile exists — that is the only prerequisite. cloudflared is no longer something you install by hand: on first tunnel start the bundle probes your PATH, and when no cloudflared is found it downloads the official pinned binary (SHA-256 verified), caches it under your user cache directory, and reuses it from then on. Prefer your own install? Put it on PATH, or set the cloudflared path field in the card to an absolute path — an explicit path disables both probing and downloading.

The simplest path — install from the npm registry with the plugin name:

▼
sh
复制代码
dsh plugin --profile web add dsh-remote-tunnel-easy@latest --config.minimumReleaseAge=0

The --config.minimumReleaseAge=0 flag bypasses pnpm's ~24-hour release-age gate, so a freshly published version installs immediately. Without it, a plain dsh plugin --profile web add dsh-remote-tunnel-easy still works but may hold off until the freshness window lapses.

Or, if you prefer, install straight from the GitHub repository URL:

▼
sh
复制代码
dsh plugin --profile web add https://github.com/Raiyan007-gb/dsh-remote-tunnel-easy

For a local checkout instead, clone it and add the folder:

▼
sh
复制代码
git clone https://github.com/Raiyan007-gb/dsh-remote-tunnel-easy dsh plugin --profile web add \./dsh-remote-tunnel-easy

These initialize the profile if needed, link the package, and register the bundle. No build step — the package ships plain ESM with zero runtime dependencies (the QR encoder and cloudflared resolver are vendored in-tree), so add and remove stay fast and never run install scripts.

Security note: installing from a git URL asks for permission to run the package's install scripts. This package has none (plain ESM, no postinstall), but pin a commit — #<sha> on the URL — to freeze what runs. To skip install permissions entirely, pnpm pack a tarball and dsh plugin --profile web add ./dsh-remote-tunnel-easy-1.1.0.tgz.

Then restart dsh web — the QR and settings appear on Settings → Plugins → DSH Remote on every start.


What it does

On every dsh web start the bundle:

  1. Spawns a loopback edge proxy (127.0.0.1, ephemeral port) that forwards every request and WebSocket upgrade to the harness, rewriting Host and Origin to the loopback authority. This is what makes the harness's /api browser-trust fence accept tunneled traffic — the fence requires Origin == Host, and a phone's Origin is the tunnel hostname, which --http-host-header rewriting alone can never satisfy. Without the proxy the app loads but every API call 403s.
  2. Locates cloudflared — the configured cloudflared path override, else a binary on PATH, else a pinned download (2026.8.2) SHA-256 verified and cached under the user cache directory. It then spawns cloudflared tunnel --no-autoupdate --url http://127.0.0.1:<proxy-port> pointed at that proxy.
  3. Waits for cloudflared to print the random https://<name>.trycloudflare.com URL.
  4. Resolves this process's launch token via the harness connection service (authenticatedUrl — the same mint the console line prints).
  5. Seeds the most recently active session id into every served index page (via the webserver's index-injection table), gated to non-loopback origins and once per tab — so any tunnel entry lands inside the session the desktop is working in. The id is resolved on the Host at render time (cached, refreshed every 15s); the phone makes no /api call for the seed itself.
  6. Registers a token-gated /remote-handoff route as a fallback entry path: same seeding, then the normal token→cookie login (SHA-256 constant-time compare). Prefix-matched, so /remote-handoff and /remote-handoff/ both work.
  7. Registers a remote-handoff settings namespace and a loopback-only bridge (/api/dsh-remote-handoff-settings). The card in Settings → Plugins → DSH Remote reads the tunnel status (QR matrix + access link) from that bridge and draws them in the page, alongside the editable tunnelTarget / cloudflaredPath / sessionHandoff settings. The Regenerate button restarts the tunnel in place for a brand-new URL on the same session, and an empty tunnel target auto-fills the harness's own loopback address. The dsh web terminal prints nothing.

Requirements

  • No manual cloudflared install — downloaded automatically when missing (Windows x64/x86, macOS Intel/Apple Silicon, Linux x64/arm64); any other platform needs a cloudflared on PATH or an explicit cloudflared path.
  • Network access on first run (to reach GitHub for the binary download)
  • Node — already present where dsh runs
  • Phone on any network — the tunnel is public; the token in the URL is the only gate, so treat the shown link like a password.

Migrating from qrcode-hassle-free

Previously this plugin was named qrcode-hassle-free (Raiyan007-gb/dsh-qrcode-hassle-free on GitHub, qrcode-hassle-free on npm). It is now dsh-remote-tunnel-easy (Raiyan007-gb/dsh-remote-tunnel-easy, dsh-remote-tunnel-easy@1.4.2). The old npm package is unpublished.

If you installed the old name, remove it first, then add the new one and restart dsh web:

▼
sh
复制代码
dsh plugin --profile web remove qrcode-hassle-free dsh plugin --profile web add dsh-remote-tunnel-easy@latest --config.minimumReleaseAge=0

Restart dsh web — the QR and settings now appear under Settings → Plugins → DSH Remote as before.

Removing

▼
sh
复制代码
dsh plugin --profile web remove dsh-remote-tunnel-easy

and restart dsh web.


License

MIT — use it, modify it, ship it. See LICENSE.


Citation

If you use dsh-remote-tunnel-easy in your research or project, please cite:

▼
bibtex
复制代码
@software{dsh_remote_tunnel_easy, title = {dsh-remote-tunnel-easy: Hassle-free remote tunnel for DeepSeek Harness}, author = {Raiyan}, url = {https://github.com/Raiyan007-gb/dsh-remote-tunnel-easy}, year = {2026}, version = {1.4.2} }

Built for the DeepSeek Harness — scan, open, keep working.

远程移动端

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:Raiyan007-gb/dsh-remote-tunnel-easy

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
dsh 插件推荐
dsh-web#packages/dsh-ssh
SSH 远程运维面板:Web 终端、SFTP 传输、本地端口转发与一条命令并发集群执行,Agent 与面板共用同一份主机配置。
dsh-tether
用 Android/iOS 手机远程使用电脑上的 dsh 完整网页界面,经 iroh 跨网点对点直连,中间不经过任何服务器。
dsh-im-gateway
DeepSeek Harness 聚合 IM 网关:通过微信、飞书、Telegram、Discord、QQ、WhatsApp 等 20+ 聊天平台驱动 agent,支持统一会话、远程审批和交互提问。默认放行所有能给机器人发消息的人,需要限制请配置 allowedUserIds。
dsh-android
在对话里直接操作 Android 设备——模拟器或 USB 手机,完全通过 adb 驱动:20 个 Agent 工具用于流式投屏、Gradle 构建运行、UI 树或 OCR 交互、logcat、进程与内存检查,并附带三键导航面板。
dsh-remote-ssh
类 VSCode Remote-SSH 的 DSH 插件:SSH 连接超算/服务器,内置文件页签直读远程文件、终端页签自动 SSH,远程工作区配单往返合并读与结果缓存,含 12 个会话感知的 remote_ssh_* 模型工具。
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题