Getting started

DSH Mobile connects to a DeepSeek Harness host that you operate. This guide takes you from zero to a phone-connected host in about ten minutes.

1

Install a DSH host

Install DeepSeek Harness on any computer that stays reachable (Mac, PC, VPS — Linux is a first-class citizen):

git clone https://github.com/deepseek-ai/deepseek-harness
cd deepseek-harness
pnpm install && pnpm build
pnpm dsh web -- --host 127.0.0.1 --port 3080 --token "$(openssl rand -hex 24)"

Keep the token safe — it is the only credential the app needs. See the project README for the current upstream instructions.

Binding depends on your channel: the command above binds 127.0.0.1 (loopback) — correct when a tunnel or reverse proxy terminates the connection. For Tailscale or LAN direct access, bind the actual interface instead: --host 100.x.y.z --port 3080 (your Tailscale IP) or --host 0.0.0.0 only inside a trusted network — never on a public interface without TLS in front.

2

Make it reachable — privately

Pick one channel (or both, for redundancy). Both are outbound-only: no inbound ports, no public IP needed. Remember to match the host bind from step 1 to your channel (loopback for tunnel, interface IP for Tailscale/LAN).

  • Cloudflare Tunnelcloudflared tunnel run for a named tunnel, hostname → http://127.0.0.1:3080. TLS terminates at the edge.
  • Tailscale — install on host and phone; connect via the host's 100.x address.
3

Connect from the app

Open DSH Mobile, tap Add connection, enter your host URL (for example https://your-host.example.com or http://192.168.1.20:3080) and paste the token. The app stores it in the iOS Keychain.

Security notes

Token hygiene

Treat the host token like a password. Rotate it with a new --token if it leaks; delete a connection in the app to remove its stored token.

TLS at the edge

Never expose dsh web directly to the internet. DSH itself has no TLS — put a reverse proxy or a Cloudflare Tunnel in front; the token alone is not an encryption boundary.

Data flow

Chat content travels only between your device, your host and your configured model provider. The app keeps a local render cache for fast session open — see the privacy policy.

What you need

  • A computer running DeepSeek Harness (Node.js 22.19+, or newer) — model API key configured on the host.
  • iOS 18 or later, iPhone or iPad.
  • A reachable path to the host (LAN, tunnel or Tailscale).

Questions? Read the FAQ or contact formiopa@gmail.com.