MIT-licensed DSH companion plugin that pairs the DeepPilot iPhone app to your own DSH Host over a pinned-TLS listener on port 3098 plus optional Tailscale Funnel — sessions, approvals, previews and notifications, with the DSH Web UI left alone.
DSH integration
Compatible
Author-claimed
Safety audit
Unaudited
Last verified
2026-11-13
License
MIT
01What can it help you accomplish?
Drive a DeepSeek Harness session from an iPhone while the host keeps running on your own computer
Project / session browsing, streamed assistant text and reasoning that recovers durable history after a reconnect, prompt sending, model switching, new sessions, and approvals / questions answered from the phone
DSH users who want to check on and steer a running agent from their phone without exposing the full web UI
Reach the host from outside the LAN without opening the DSH web server to the network
A paired, TLS-only connection on the plugin's own port 3098 with a pinned certificate fingerprint, falling back to the optional embedded Tailscale Funnel when you leave the LAN
Developers who leave the desk and still need approvals, questions and live output on the phone
Get notified and keep records of what the agent did
Live notifications plus optional APNs push while offline, a full ZIP log archive or Markdown transcript export, and quiet scheduled runs that can skip the completion notice
People running long or scheduled DSH tasks who do not want to watch the screen
02How to install into DeepSeek Harness
Prerequisites
- DSH host in the rolling range `>=0.2.1-rc.5 <0.3.0-0` with a `web` profile; 0.3.0 and its prereleases are refused until a fresh audit
- Node.js 22+ on the host machine
- The DeepPilot iPhone app — the README says it is currently in TestFlight review, so the invitation link accepts testers only after Apple approves the build
- Inbound TCP `3098` allowed through the firewall on the networks you use
Installation steps
- 01
Run `dsh plugin --profile web add dsh-deeppilot` and start the host with `dsh web`
$ dsh plugin --profile web add dsh-deeppilot
- 02
After DSH restarts, open Settings → DeepPilot, turn on "Allow phone connections", click "Add phone" beside "Paired devices" and scan the QR code in the app — or paste the copyable address, single-use code and certificate fingerprint
- 03
To update, restart DSH after `dsh plugin --profile web update dsh-deeppilot`, or — recommended because HMR rolls the in-place update back — quit DSH and run `dsh plugin --profile web add dsh-deeppilot@<target-version>`
$ dsh plugin --profile web update dsh-deeppilot
Verify the integration
Not specified by the author
Rollback
- `dsh plugin --profile web remove dsh-deeppilot` uninstalls the plugin; the local DeepPilot state under `$DSH_HOME/deeppilot/` is not deleted
03DSH integration and capability boundaries
DSH plugin that bridges the DSH Host to the DeepPilot iPhone app over its own TLS listener on TCP 3098 plus an optional embedded Tailscale Funnel — it never replaces or modifies the DSH Web UI
Pairing and pinned TLS transport
a five-minute single-use pairing code and a per-device P-256 key→a paired device whose app pins the host certificate fingerprint; TLS on the plugin's own port 3098, with Funnel as the off-LAN fallback
writes a self-signed certificate and key under `$DSH_HOME/deeppilot/lan-tls/`listens on TCP `3098` independently of the DSH web serverSession control from the phone
prompts, model choices, new-session requests, approval and question answers→streamed assistant text and reasoning, durable history recovered after a reconnect, and approvals resolved from the phone
writes new sessions and turn history into the DSH hostNotifications and exports
session events; optional APNs device token for offline push→live notifications, optional APNs push, a full ZIP log archive, and a Markdown transcript when the Host provides that route
in relay mode only the APNs device token and a limited payload leave the machineLocal web preview and desktop web UI pass-through
an `http://127.0.0.1:<port>` or `localhost:<port>` link that already appeared in the session, or the opt-in desktop web UI switch→the page or the DSH Web UI rendered inside the app with live reload intact, over a separate authenticated preview connection
the desktop web UI switch gives the phone the same owner access as the local browser, including settings and plugin managementIn-app plugin update and diagnostics
an explicitly confirmed compatible plugin version; the host's failure records→host-driven install with rollback on failure, a settings-page version hint, and a connection-diagnostics list plus `/phone/health` phase reporting
updating with HMR enabled is rolled back by the host because of a directory-picker composition conflictfailure records are kept for 7 days, capped at 5 MB, hashed sources only
04Who is it for? When not to use it?
Good for
- DSH users who want to check on and steer a running agent from their phone without exposing the full web UI
- Developers who leave the desk and still need approvals, questions and live output on the phone
- People running long or scheduled DSH tasks who do not want to watch the screen
Not for
- DSH re-checks the declared requirements on every start, so a host outside `>=0.2.1-rc.5 <0.3.0-0` refuses to activate the plugin; 0.3.0 and its prereleases stay refused until a fresh audit.
- DSH enables HMR by default, and an in-place plugin update removes the package mid-composition, so this plugin's directory-picker patch and the host's `directory-picker-auto` register the same service twice and the host rolls the update back. Update while DSH is stopped, or disable HMR for the profile.
- The phone reaches the host over TLS on the plugin's own TCP port 3098 — allow inbound `3098` in the firewall. Funnel mode needs the bundled Go helper, which requires macOS 13 Ventura or later; trusted-LAN mode keeps working on older macOS.
- The optional desktop web UI pass-through gives a paired phone the same owner access as the host browser — settings and plugin management included — so leave that switch off unless you need it.
05Compatibility, maintenance and safety notes
- DSH re-checks the declared requirements on every start, so a host outside `>=0.2.1-rc.5 <0.3.0-0` refuses to activate the plugin; 0.3.0 and its prereleases stay refused until a fresh audit.
- DSH enables HMR by default, and an in-place plugin update removes the package mid-composition, so this plugin's directory-picker patch and the host's `directory-picker-auto` register the same service twice and the host rolls the update back. Update while DSH is stopped, or disable HMR for the profile.
- The phone reaches the host over TLS on the plugin's own TCP port 3098 — allow inbound `3098` in the firewall. Funnel mode needs the bundled Go helper, which requires macOS 13 Ventura or later; trusted-LAN mode keeps working on older macOS.
- The optional desktop web UI pass-through gives a paired phone the same owner access as the host browser — settings and plugin management included — so leave that switch off unless you need it.
MIT · latest release v0.9.20 (2026-11-11), README evidence only, safety not audited
06Frequently asked questions
How do I connect my iPhone to DeepSeek Harness?
Run `dsh plugin --profile web add dsh-deeppilot`, start `dsh web`, then open Settings → DeepPilot in DSH, turn on "Allow phone connections" and click "Add phone" beside "Paired devices" to scan the QR code — or paste the copyable address, single-use code and certificate fingerprint. The pairing code is single-use and valid for five minutes, and the app pins the host certificate fingerprint carried in the QR code.
Can I get the iPhone app today?
Not unconditionally. The README says DeepPilot is currently in TestFlight review and the invitation link will accept testers after Apple approves the build, so install the plugin now and expect the app once that review clears.
Does this replace the DSH Web UI or expose it to the network?
No. The plugin does not replace or modify the DSH Web UI, and the LAN listener on port 3098 exposes only the DeepPilot connection, one-time pairing and health endpoints — not the whole web UI. The optional "Allow phones to open the desktop web UI" switch is off by default and, when on, gives the phone the same owner access as the host browser, including settings and plugin management.
Why did a plugin update roll back?
DSH enables HMR by default, and its update removes the installed package before installing the target, so the plugin's directory-picker patch and the host's `directory-picker-auto` register the same service twice and the host rolls the whole update back. The plugin stays intact and usable. Update while DSH is stopped — quit, run `dsh plugin --profile web add dsh-deeppilot@<target-version>`, start again — or disable HMR for that profile.
What files does it write on the host?
A self-signed certificate and key under `$DSH_HOME/deeppilot/lan-tls/` on first start, plus connection-failure diagnostics under the plugin data directory (7 days, 5 MB cap, source hashes only). Uninstalling the package does not delete the state under `$DSH_HOME/deeppilot/`.
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
The open-source DSH companion plugin for **DeepPilot**, a native iPhone client for using DeepSeek Harness remotely.
It connects the app directly to the DSH Host on your own computer and does not replace or modify the DSH Web UI.
- Connect over the LAN (TLS with a Host-issued certificate pinned during pairing) or the optional embedded Tailscale F…
This page is generated from the project’s public documentation, repository metadata and a structured parse of DSH Plugins; last verified on 2026-11-13. Found an error? Submit a correction.
Best DeepSeek Harness Plugins
Twelve plugins worth installing first — picked from the whole catalog, across every category.
