dsh-web-ui
zhu1090093659
Plugin and skin collection for DeepSeek Harness (DSH) Web UI - task board, git graph, right-side panel, remote mobile UI, pet, live token stats, and skin center.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:kelai141/dsh-mobile-apk
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
dsh-mobile 生态 · dsh-shell-termux(shell)· dsh-client-ui-responsive(移动 UI)· dsh-host-web-compat(浏览器兼容)
Android shell for DeepSeek Harness: WebView UI over an embedded Termux runtime snapshot (extract-and-run, no Termux app needed), SAF directory bridge, keep-alive foreground service, engine watchdog, and online runtime updates. One APK to install: it boots a full dsh web agent that can really execute bash.
http://127.0.0.1:3080 with the responsive plugin
(drawer/sheet on phones).pickDirectory maps the picked tree to a real path (/storage/emulated/0/…).Requirements: JDK 17+, Android SDK (compileSdk 36); Gradle 8.11.1 via wrapper.
# 1. Prepare the runtime snapshot (required, ~70MB, distributed as a Release asset)
# Option A: download snapshot-x86_64.tar.xz from GitHub Releases
# Option B: build on a Termux device (scripts/make-snapshot.sh) and pull it
mkdir -p app/src/main/assets
cp snapshot/snapshot.tar.xz app/src/main/assets/snapshot.tar.xz
# 2. Build (fails loudly when the snapshot is missing)
./gradlew assembleDebug
# output: app/build/outputs/apk/debug/app-debug.apk
window.androidBridge)| method | signature | description |
|---|---|---|
version |
getter → string | bridge protocol version ("1.0") for feature detection |
checkEngine |
() → string | probes 127.0.0.1:3080; JSON {running, latencyMs} |
keepScreenOn |
(enable: boolean) | screen-on wake lock |
showNotification |
(title, text) | test notification channel (POST_NOTIFICATIONS) |
pickDirectory |
(callbackId: string) | SAF tree picker; result async via window.__dshBridge.onDirectoryPicked(callbackId, path) |
The bridge decouples the APK from the dsh version: pages feature-detect on androidBridge.version.
manifest.json: {url, sha256, size} (default http://10.0.2.2:8899/manifest.json
for emulator testing; production points at a release server);usr → usr-old → new usr, then kills the old engine — the watchdog
restarts it from the new runtime.Test trigger: adb shell am start -n com.dshmobile.shell/.MainActivity -a com.dshmobile.shell.action.UPDATE;
status is written to files/update-status.txt. Test server: node scripts/snapshot-server.mjs.
INTERNET (WebView + engine probe), POST_NOTIFICATIONS (notification channel),
FOREGROUND_SERVICE + FOREGROUND_SERVICE_DATA_SYNC (keep-alive). SAF picking needs no permission.
The x86_64 snapshot is verified end-to-end. arm64 snapshots are assembled from the official Termux aarch64 repo (see docs/design.md §ABI); a 16KB-page build must be produced on a 16KB device. APKs are per-ABI (the snapshot inside is arch-specific).
MIT. Contains third-party components under their own licenses (see dependency declarations).
Design rationale: docs/design.md.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: webview。