How thness/dsh-mobile works
DeepSeek Harness Mobile is an Android shell for running the DeepSeek Harness locally: the app starts an embedded Node.js engine, displays its web UI in a WebView, and bridges selected Android capabilities. The main path is launch → extract/start runtime → serve the local UI. The README also documents background keep-alive, external workspace support, optional Shizuku integration, and OTA updates. Some supporting paths are based on README claims because their implementation was not sampled.
Main entry points: MainActivity.kt App UI · EngineManager.kt Engine lifecycle · UpdateManager.kt OTA updater · AndroidBridge.kt JavaScript bridge
Components 16
Android shell
- App UI
app/src/main/java/com/dshmobile/shell/MainActivity.kt - Harness Web UI
- JavaScript bridge
app/src/main/java/com/dshmobile/shell/AndroidBridge.kt
Local engine
- Harness engine
- Engine lifecycle
app/src/main/java/com/dshmobile/shell/EngineManager.kt - Engine probe
app/src/main/java/com/dshmobile/shell/EngineProbe.kt - Snapshot extraction
app/src/main/java/com/dshmobile/shell/SnapshotExtractor.kt
Workspace and files
- External workspace
- Shared app data
- Android Downloads
- System directory picker
Runtime operations
- Foreground service
app/src/main/java/com/dshmobile/shell/EngineService.kt - OTA updater
app/src/main/java/com/dshmobile/shell/UpdateManager.kt - Update server
- Shizuku
app/src/main/java/com/dshmobile/shell/ShizukuSupport.kt
Other components
- User
Connections 24
- User → App UI: launches
- App UI → Engine lifecycle: starts engine flow
- Engine lifecycle → Snapshot extraction: extracts snapshot
- Engine lifecycle → Harness engine: starts process
- Harness engine → Harness Web UI: serves local UI
- App UI → Harness Web UI: loads local page
- App UI → Foreground service: starts service
- Foreground service → Engine lifecycle: starts engine
- Foreground service → Engine probe: checks availability
- Engine lifecycle → Shared app data: migrates user data
- Harness engine → External workspace: accesses workspace
- Harness engine → Shared app data: reads and writes
- Harness Web UI → JavaScript bridge: calls bridge
- JavaScript bridge → Engine probe: checks engine
- JavaScript bridge → App UI: requests Android actions
- App UI → System directory picker: opens picker
- System directory picker → App UI: returns selection
- App UI → External workspace: exports files
- App UI → Android Downloads: saves export
- App UI → OTA updater: runs update
- OTA updater → Update server: fetches update
- OTA updater → Snapshot extraction: extracts download
- OTA updater → Harness engine: restarts via service watchdog
- App UI → Shizuku: checks optional status