-
-
Notifications
You must be signed in to change notification settings - Fork 4
Getting Started
Getting DSH Mobile running takes two things: the app on your phone, and a harness your phone can
actually reach. The second part is the one that needs a decision, because the harness binds to
127.0.0.1 by default.
- An Android phone or emulator on Android 8.0 or newer (minSdk 26).
- A DeepSeek Harness installed on a computer and runnable with
dsh web— this app drives a harness, it does not contain one. - Phone and computer on the same network, unless you use the USB route below.
Download the APK from the latest release and open it on the phone. It is not on Google Play, so Android will ask you to allow installing from your browser or file manager once.
Each release also publishes SHA256SUMS.txt if you want to verify the download.
On first launch, allow the notification permission when asked. Without it the app still works, but you lose the entire point of a remote — being told when the harness needs you. See Notifications.
Pick whichever row describes your setup. All three end with an address you type into the app.
| Your setup | On the computer | Connect the app to |
|---|---|---|
| Phone plugged in by USB, or an emulator |
dsh web, then adb reverse tcp:3080 tcp:3080
|
127.0.0.1 port 3080
|
| Over Wi-Fi | Apply the LAN patch — see LAN Mode — then dsh web
|
the computer's LAN IP, e.g. 192.168.1.20 port 3080, or just tap Scan network
|
| Harness running on the phone itself (e.g. Termux) | dsh web |
127.0.0.1 port 3080
|
The USB route is the safest way to try the app: adb reverse tunnels the phone's own
127.0.0.1:3080 to the computer, so the harness stays bound to loopback and nothing is exposed to
the network. The Wi-Fi route is the convenient one, and it requires understanding
Security first — the harness has no authentication.
dsh web prints the address it is serving. If you changed the port, use yours everywhere 3080
appears.
Open the app. The connect screen offers three ways in:
- Scan network — sweeps your phone's own subnet and lists what answers.
- Connect manually — type the host and port.
- A remembered harness — after the first successful connection, tap it to reconnect. The app
probes it in the background first, so it can tell you
Unreachablebefore you tap.
While connecting, the app narrates where it is: Checking the address… → Reaching… → Opening event streams… → Verifying the harness… → Connected. If it stops on one of those, the message names the cause and the fix; Troubleshooting lists every one of them.
You will see a warning banner whenever you connect to something that is not loopback. That is deliberate — read Security.
Once connected the app lands on a session: the one you last had open on this harness, or the most recently active one if this is your first connection.
- Swipe right from the left edge to open the chat list, grouped by workspace. Create a session with New session, or pick an existing one.
- Type in the composer and send. The turn streams in as the harness works.
- Swipe left from the right edge for the session details panel — context usage, goal, plan mode, model, background jobs, subagents, export.
- Leave the app. When the turn finishes, or the harness asks for an approval, a decision, or an answer, you get a notification that opens straight back into that session.
- Feature Tour — everything the app can do, screen by screen.
-
Slash Commands and Skills — how
/lines and skills work here. - Connecting — auto-connect, scanning, and remembered hosts in detail.
- Troubleshooting — when the connect screen refuses.
DSH Mobile — an unofficial, community-built Android remote for the
DeepSeek Harness. The harness and its brand belong
to their respective owners.
MIT ·
repository ·
canonical technical docs in
docs/.