Back to directory

dsh-pocket-plus

In a curated listMaintenance: Active

mrsirlila/dsh-pocket-plus

Lets a phone access and control a local DSH web session over LAN, Tailscale, or Cloudflare with QR login, WebSocket synchronization, and password protection.

View on GitHub
$ dsh plugin --profile web add "dsh-pocket@github:Mrsirlila/dsh-pocket-plus#path:/plugin"

17

stars

0

forks

JavaScript

Language

GPL-2.0

License

2026-09-21

Created

2026-11-08

Last push

GPL-2.0 fork of dsh-pocket with seven plugin patches and an Android client that keeps a DeepSeek Harness session reachable from the phone — streaming output, approvals, artifacts — across LAN, Tailscale and Cloudflare links.

DSH integration

Native runtime

Author-claimed

Safety audit

Unaudited

Last verified

2026-11-10

License

GPL-2.0

01What can it help you accomplish?

  • Keep a DeepSeek Harness session usable from a phone — read streaming output, answer questions and approvals, download artifacts — without rescanning a QR code every time the address changes

    A patched dsh-pocket settings page with three link cards (LAN / Tailscale / Cloudflare) and an Android app that probes them in order and fails over automatically

    People who run DeepSeek Harness on a computer and use it from an Android phone, including outside their home network

  • Enter the phone UI by scanning one QR code, and keep the current public address in sync afterwards

    QR text with `?token=<PIN>` appended, a 30-day HttpOnly cookie after validation, and a read-only `GET /dsh-pocket/entry.json` the app pulls to refresh address + PIN

    Users who were re-typing the PIN and re-scanning whenever the Quick Tunnel domain changed

02How to install into DeepSeek Harness

Prerequisites

  • DeepSeek Harness installed with a `web` profile (the README installs through `dsh plugin --profile web`)
  • Android 8.0+ for the companion app (README badge: `Android-8.0%2B`)
  • Allow “install from unknown sources” on the phone — the APK is self-signed

Installation steps

  1. 01

    Install the plugin into the Web profile: `dsh plugin --profile web add "dsh-pocket@github:Mrsirlila/dsh-pocket-plus#path:/plugin"`

    $ dsh plugin --profile web add "dsh-pocket@github:Mrsirlila/dsh-pocket-plus#path:/plugin"

  2. 02

    Restart DSH and open the “DSH Pocket” settings page in the sidebar — three cards (LAN / Tailscale / public) should appear

  3. 03

    Install `DSH掌上版-1.41.apk` from the repository on the phone

  4. 04

    Scan any of the QR codes with the phone; the one carrying the PIN enters directly

Verify the integration

  • Check the patched file is in place: `(Get-Item "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-pocket\lib\service.mjs").Length` — 26509 is the patched build, 22202 the upstream original
  • Grep the installed file for `tailscaleIPv4` and `qrTextFor` with `Select-String`

03DSH integration and capability boundaries

DSH integrationNative runtime

Native dsh Web-profile plugin: it installs as the `dsh-pocket` package (the upstream plugin, patched in seven places) via a GitHub sub-directory spec, plus a companion Android app that picks between LAN / Tailscale / Cloudflare links.

  • Three-link auto-selection

    LAN `192.168.x.x:3081`, Tailscale `100.x.x.x:3081`, Cloudflare Quick Tunnel URL→the first link that actually works, with automatic failover and an optional manual lock from the app top bar

    probing is a TCP + HTTP double check: a reachable port only counts when `GET /` returns a status below 500
  • PIN in the QR code

    a scanned URL carrying `?token=<PIN>`→PIN validation, a 30-day HttpOnly cookie, then a 302 to the clean URL

    the link contains the PIN and is equivalent to the computer’s key — the README says not to post it in public groups
  • Address sync via entry.json

    `GET /dsh-pocket/entry.json` on any reachable link→the current public address plus PIN, stored locally by the app so the next trip needs no rescan

    read-only, exposes only address + current PIN, never session data; the public link still requires a login
  • Mobile UI patches

    the patched mobile client CSS and proxy→horizontally scrollable wide tables and a 401 self-heal that clears stale `dsh-auth-*` cookies and re-handshakes

    patch ⑦ forces `grid-template-columns: 0 minmax(0,1fr) 0` on narrow screens to fix a zero-width main column

04Who is it for? When not to use it?

Good for

  • People who run DeepSeek Harness on a computer and use it from an Android phone, including outside their home network
  • Users who were re-typing the PIN and re-scanning whenever the Quick Tunnel domain changed

Not for

  • This is a modified copy of `shaobeichen/dsh-pocket` distributed under GPL-2.0, unrelated to the original author. Upstream problems go to the upstream repo; the seven patches and app go to this repo.
  • Do not overwrite upstream releases directly: the README’s upgrade flow pulls the new upstream into a temp directory, re-applies the seven patches file by file, rebuilds the zip and updates the checksums. `pnpm update dsh-pocket` also reverts the files to the official build, which is why a self-heal script re-applies them at start.
  • The public link runs over a Cloudflare Quick Tunnel with HTTPS, but the LAN and Tailscale links are plain HTTP reachable only inside a trusted network; the access PIN is 6–8 digits and is enforced on the public entry only.

05Compatibility, maintenance and safety notes

  • This is a modified copy of `shaobeichen/dsh-pocket` distributed under GPL-2.0, unrelated to the original author. Upstream problems go to the upstream repo; the seven patches and app go to this repo.
  • Do not overwrite upstream releases directly: the README’s upgrade flow pulls the new upstream into a temp directory, re-applies the seven patches file by file, rebuilds the zip and updates the checksums. `pnpm update dsh-pocket` also reverts the files to the official build, which is why a self-heal script re-applies them at start.
  • The public link runs over a Cloudflare Quick Tunnel with HTTPS, but the LAN and Tailscale links are plain HTTP reachable only inside a trusted network; the access PIN is 6–8 digits and is enforced on the public entry only.
  • Quick Tunnel domains are temporary: restarting DSH changes the public domain and the PIN, which the README calls normal. The app only needs a rescan when all three links are unreachable.
2026-09-212026-11-08Not specified by the author

GPL-2.0 fork of `shaobeichen/dsh-pocket` · no GitHub release published (facts pack latest_release = null); APK 1.41 shipped as a repo file

06Frequently asked questions

Do I have to type the PIN after scanning?

No — the patched QR text carries `?token=<PIN>`. The proxy validates the PIN, sets a 30-day HttpOnly cookie and redirects to the clean URL, so later visits need no parameter.

Why does the phone go back to a black screen after DSH restarts?

DSH rotates its launch token on each start, and the old `dsh-auth-*` cookie then yields 401. Patch ④ turns that 401 into a 302 that clears the stale cookie and re-handshakes, so the phone recovers on its own.

The public address changes every restart — do I rescan?

Usually not. Quick Tunnel domains are temporary, but when the app reaches the LAN or Tailscale link it pulls `/dsh-pocket/entry.json` and syncs the new public address and PIN. Rescanning is only needed when all three links are unreachable.

How do I verify the patches survived an update?

Check the length of `node_modules/dsh-pocket/lib/service.mjs`: 26509 is the patched build, 22202 the upstream original. The README also greps for `tailscaleIPv4` and `qrTextFor` with `Select-String`.

Is the APK signed by Google Play or an app store?

No — the signature is self-signed, so the first install has to allow “install from unknown sources”. Upgrades install over the old version because the same signing key is reused.

08Data and sources

  • Author-claimedgithub.com95a9c06d936c…

    是 [shaobeichen/dsh-pocket](https://github.com/shaobeichen/dsh-pocket) 的增强发行版。插件本体仍是那个插件(包名 `dsh-pocket`),我们在它上面打了七处补丁,并配…

  • Author-claimedgithub.com95a9c06d936c…

    dsh plugin --profile web add "dsh-pocket@github:Mrsirlila/dsh-pocket-plus#path:/plugin"

This page is generated from the project’s public documentation, repository metadata and a structured parse of DSH Plugins; last verified on 2026-11-10. Found an error? Submit a correction.

🏆

Best DeepSeek Harness Plugins

Twelve plugins worth installing first — picked from the whole catalog, across every category.

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.