sorsama/deepseek-harness-mobile

deepseek-harness-mobile

Android companion for DeepSeek Harness | chat, goals, approvals & notifications from your phone, over your LAN. Kotlin + Jetpack Compose.

待分类ai-agentscordisdeepseek

DSH Mobile

An Android app for driving a DeepSeek Harness from your phone.

English · 中文 · हिन्दी · Español · Français · ไทย

The DeepSeek Harness is an AI coding agent that runs on your computer and has a web interface. DSH Mobile connects to that harness and gives you the same controls in a native Android app. You can start a task at your desk, then follow it, answer its questions and approve its commands from your phone.

This is an unofficial, community-built app. It needs a harness running somewhere it can reach: on your computer, or on the phone itself through Termux.

The project site has a one-page overview, and the wiki has the full user guide.

Screenshots

Connect · Chat · Trajectory · Details :--: · :--: · :--: · :--: · · · Paste the link the harness prints, and you are connected and signed in. · Replies stream in. Tool calls fold into one row you can open. · Every tool call, turn by turn. · The session's model, context, goal, plan mode and jobs.

Subagents · Terminal · Dark theme :--: · :--: · :--: · · Read what a subagent did and send it a follow-up. · A real shell on the harness computer. · Light, dark, or follow the system.

What you can do

  • Chat with the agent. Replies stream in with their reasoning, code blocks and tool calls. You

can attach photos and files, reference files with @, and run commands and skills with /.

  • Press and hold a message, a tool call or a file to see what else you can do with it. Copy

it, fix a message you sent and send it again, or mention a file in your next message.

  • Answer what the agent needs from you: approve or reject a command, answer its questions, and

review a plan before it starts.

  • Keep an eye on long work. Goals, todo lists, queued messages, background jobs and subagents

each have their own view, and you can pause, steer or stop them.

  • Get a notification when a turn finishes, a goal completes or gets blocked, or the agent is

waiting for an answer. The connection stays up in the background.

  • Browse and preview the workspace files, and open a terminal on the harness computer.
  • Manage the harness itself: models, agent presets, plugins, scheduled tasks and archived

sessions.

  • Use the app in English, Chinese, Hindi, Spanish, French, Arabic, Bengali, Portuguese,

Russian, Urdu or Thai. Right-to-left languages are supported.

The changelog lists what changed in each release.

Getting started

1. Install the app

Download the APK from the latest release and install it. You need Android 8.0 or newer.

2. Make the harness reachable

The harness only listens on its own computer by default. Pick the setup that matches where your phone will be.

Same Wi-Fi as the computer

Start the harness on the computer's local network address. On harness 0.2.1-alpha.2 and newer:

dsh web --host 192.168.1.20

Use your computer's real address instead of 192.168.1.20. The harness prints a line like dsh web: http://192.168.1.20:3080/?token=…. In the app, choose Local network, paste that whole link into the address field (or tap the paste button), and tap Connect. The token in the link signs the phone in, and the harness then appears under Recent for next time. Older harness versions need a small patch instead of --host; see harness/README.md.

Away from home

Install dsh-relay, a harness plugin that adds a password, encryption and device pairing. Then choose Relay in the app and scan the pairing QR code. The Relay wiki page walks through it.

USB cable or emulator

Run dsh web on the computer and adb reverse tcp:3080 tcp:3080. In the app, choose This phone and sign in with the link dsh web printed.

On the phone itself

The harness can run in Termux. Choose This phone, and the app can start and stop the harness and sign in for you. Setting up Node in Termux does not work on every device yet; read harness/TERMUX.md first.

Your own HTTPS reverse proxy

Paste its https:// address in Local network mode. The proxy encrypts the connection, but it does not check who is connecting. See harness/README.md.

3. Start working

Pick a session from the list (swipe in from the left edge) or start a new one. If a connection fails, the app says why, and the wiki's troubleshooting page is organized by those messages.

Security

Read docs/SECURITY.md before you connect over a network. A signed-in phone can do anything the agent can do, and the agent runs commands on your computer. Treat signing in like giving out shell access.

  • Local network mode checks the sign-in token but does not encrypt anything. Use it only on a

network you trust.

  • Relay mode adds encryption and a pinned certificate, and works from outside your network.
  • Keep the dsh web link private. Anyone who has it can sign in until the harness restarts.

Compatibility

DSH Mobile is tested against DeepSeek Harness 0.2.1-rc.2. Older harness versions back to 0.1.6 still work for the most part, but newer features need a newer harness. The compatibility table lists which app version goes with which harness.

Building from source

./gradlew :app:assembleDebug      # debug APK
./gradlew :app:assembleRelease    # release APK, signed when the keystore environment is set
./gradlew :core:test :app:testDebugUnitTest

To check the app against a real harness, build a harness checkout and run the conformance suite:

DSH_HARNESS_SRC=/path/to/deepseek-harness ./gradlew :conformance:test

Release builds take their version from the git tag. CONTRIBUTING.md covers the development loop, the module layout and the release steps.

Path · Contents app/ · The Android app: screens, connection, notifications, translations core/ · Plain Kotlin protocol code: wire types, RPC and stream clients, reconnect logic, the session event fold conformance/ · Tests that start a real harness and check every call the app makes mock-harness/ · A small fake harness server for tests tools/capture/ · Records real harness traffic as test fixtures harness/ · Setup guides for local network and Termux docs/ · Architecture, protocol notes, compatibility, security

The relay plugin lives in its own repository, sorsama/deepseek-harness-relay.

License

MIT. Third-party material bundled with the app is listed in THIRD_PARTY_NOTICES.md. DeepSeek Harness and its brand belong to their owners. This project is not affiliated with them.