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
- 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"
- 02
Restart DSH and open the “DSH Pocket” settings page in the sidebar — three cards (LAN / Tailscale / public) should appear
- 03
Install `DSH掌上版-1.41.apk` from the repository on the phone
- 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
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 500PIN 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 groupsAddress 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 loginMobile 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.
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.
07Related DSH workflows
open-design
by nexu-io
The 1st Collaborative AI Design Agent Workspace. Local-first and open source. Create motion, prototypes, websites, apps, dashboards, presentations, images, and videos with your team and AI agents. Share work, exchange feedback, and iterate together in one workspace.
mole
by tw93
🐹 Open-source Mac and PC cleaner. Keep your machine clean, light, and running like new. Fast CLI, plus native Mac and Windows apps.
dsh-desktop
by anywhere-labs
Modern desktop client for the DeepSeek Harness (dsh) plugin ecosystem. Everything is a plugin — even the desktop shell itself.
picgo
by molunerfinn
:rocket: The Ultimate Image Uploader for Efficient Creators. Supports Obsidian, Typora, VS Code etc. and 60+ image hosting services (S3, GitHub, Cloudflare R2, Imgur, Aliyun OSS...). Paste, upload, done.
08Data and sources
是 [shaobeichen/dsh-pocket](https://github.com/shaobeichen/dsh-pocket) 的增强发行版。插件本体仍是那个插件(包名 `dsh-pocket`),我们在它上面打了七处补丁,并配…
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.
