Repository navigation
Releases
dsh-mobile-remote v0.3.1
Security hardening for the pairing endpoint added in 0.3.0.
Fix in 0.3.1
/__dshm-local/pairingnow requires both a direct loopback socket and a
loopbackHostheader, and rejects requests carryingX-Forwarded-For/
X-Real-IP. Tailscale Serve proxies tailnet requests from127.0.0.1and adds
X-Forwarded-*, so the previous socket-only check could not tell a local
browser from a remote tailnet peer.- The panel keeps working locally (Mac browser / DSH app); on a phone the panel
still shows the Host-injected pairing snapshot but the refresh action reports
that it must be done on the Mac. - Includes everything from 0.3.0: the Mobile remote left-sidebar page,
one-click copy/rotate, locale resources and icon.
DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
"$DSH" plugin --profile desktop add -w github:monsterjakey/dsh-mobile-remote
# restart DSH Desktop onceMIT licensed.
dsh-mobile-remote v0.3.0
The pairing helper now lives in the left sidebar.
New in 0.3.0
- Mobile remote page in the left sidebar (
sidebar.panellist+ the layoutmainkeyed slot). After restarting DSH, open it to:- see the live pairing code with a countdown;
- Copy code or open/copy the pairing page in one click;
- New code — rotate the pairing code immediately;
- copy the terminal fallback command;
- jump back to the home page.
- The Host injects a read-only pairing snapshot (code, expiry, port, pairing URL — never the launch token) into the authenticated page, so the panel also works when the page cannot call the loopback endpoint.
- New plugin locale resources (
locale/en.json,locale/zh.json) and an original sidebar icon; the bundle now declares a web Client entry (dsh.client,./client,./locale/*.json,./icon). - Pairing codes still rotate automatically on expiry/use (0.2.3 behavior) and the loopback endpoint +
scripts/pairing.mjsremain available.
Upgrade
DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
"$DSH" plugin --profile desktop add -w github:monsterjakey/dsh-mobile-remote
# restart DSH Desktop once, then look for "Mobile remote" / "手机远程" in the left sidebarExisting publicBaseUrl / autoServe config from 0.2.x keeps working. MIT licensed.
dsh-mobile-remote v0.2.3
Pairing-code rotation and an on-demand pairing helper.
New in 0.2.3
-
No more restart for an expired code. Opening
/__dshm/pairafter the code expired (or was already used) mints a fresh code and republishes~/.dsh/mobile-remote.json. Pairing codes remain single-use with a 30-minute TTL. -
New loopback-only endpoint
/__dshm-local/pairing(remote tailnet peers get 403). -
New helper script:
node scripts/pairing.mjs # print current code / expiry / pairing URL node scripts/pairing.mjs --refresh # rotate the code immediately
-
Docs: a "pairing code expired?" section (EN/中文), and the iPhone Duo landscape section + preview screenshot.
-
Note: the running plugin must be 0.2.3 or newer; restart DSH Desktop once after upgrading.
Install
DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
"$DSH" plugin --profile desktop add -w github:monsterjakey/dsh-mobile-remote
node ~/.dsh/profiles/desktop/node_modules/dsh-mobile-remote/scripts/setup-profile.mjsRequires DSH Desktop 0.2.2.x and Tailscale HTTPS certificates on the tailnet. MIT licensed.
dsh-mobile-remote v0.2.2
Mobile skin + pairing helper for the official DeepSeek Harness Web UI, accessed over Tailscale.
Highlights
- Phone/tablet skin scoped to
html.dshm-mobile; desktop UI and large tablet layouts keep the official layout. - One-time pairing page (
/__dshm/pair) with a 6-digit code; the launch token stays on the Mac. - Automatic tailnet hostname detection and
tailscale servereconciliation (retries after boot, then every 5 minutes). scripts/check-exposure.mjsself-check: Funnel off, Serve tailnet-only, Tailscale SSH off, Serve target matches the live DSH port.scripts/setup-profile.mjscomputes your tailnet authority, backs up the profile patch, and writes the required deployment entries.- Touch scroll rescue + floating page buttons for iOS Safari;
#dshm-off/#dshm-onskin switch.
Install
DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
"$DSH" plugin --profile desktop add -w github:monsterjakey/dsh-mobile-remote
node ~/.dsh/profiles/desktop/node_modules/dsh-mobile-remote/scripts/setup-profile.mjs
# restart DSH Desktop, then open https://<this-mac>.<tailnet>.ts.net/__dshm/pairRequires DSH Desktop 0.2.2.x and Tailscale HTTPS certificates on the tailnet.
MIT licensed, unofficial community project.
中文说明 / 简体中文 README: https://github.com/monsterjakey/dsh-mobile-remote/blob/main/README.zh-CN.md
iPhone Duo 横屏体验更佳 / even better on iPhone Duo (landscape): 展开后接近小尺寸平板,侧栏与对话并排、代码块更少横向滚动;>1024px 时插件自动使用官方桌面布局并保留滚动救援。