dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
该程序是一个独立的 Capacitor Android 应用,用于管理本机 DeepSeek Harness Ubuntu 用户空间。它提供运行时安装与重置、Ubuntu 终端、可选的 Shizuku 设备 Shell 访问、设置,以及仅限回环地址的内嵌 Harness Web 界面。
English · 繁體中文 · 한국어 · 日本語
面向 Android 的本地 AI 工作台。 将 DeepSeek Harness、Ubuntu 运行环境、会话、插件与文件管理整合到手机中;开启相应授权后,AI 还可通过 Shizuku 执行设备 Shell(命令行)任务,或通过无障碍服务操作指定应用。
无需 Root(超级用户权限)。Linux 环境通过 PRoot 在用户空间运行,控制台由内置网页视图展示;模型推理使用你配置的服务。
· 应用包名 · io.deepseekharness.mobile 最低系统 · Android 8.0(API 26)及以上 目标应用副屏 · Android 10(API 29)及以上,需 Shizuku 与设备验证 支持架构 · 仅 arm64-v8a(64 位 ARM) 内置运行时 · Ubuntu 24.04 ARM64 · Node.js 24.19 · @deepseek-ai/dsh 0.2.1-rc.1 应用许可证 · MIT(运行时组件沿用各自许可证,见许可证)
git+https 仓库地址导入,管理包与子插件的启停;更新时按支持的目录规则保留数据,并可切回上一版。需要安装脚本、原生编译或不同核心 SDK 的包存在限制,详见插件管理。/system/bin/sh)。Shizuku 提供的是安卓 Shell 权限,而非 Root 权限。rootfs.bundle 与清单文件,无网络环境也可完成运行时安装;同时也支持经摘要固定(digest-pinned)的远程运行时来源。~/.dsh/.credentials.yaml(权限 0600)或同等受保护的启动文件,绝不回传至 WebView。127.0.0.1。每次启动都会生成全新的 256 位传输令牌,同时保护 HTTP 与 WebSocket 请求;令牌仅保存在进程内存中,不会持久化,也不会写入 URL。模型调用和用户发起的下载、插件安装等仍可能访问网络。Bearer 前缀;保存成功才清空,失败原样保留可重试。本机没有检测到模型凭据时不会直接打开 Harness,保存 API Key 就能解除门禁。详见首次配置。应用分为三层:
dsh web 并仅监听回环地址。Node.js 预加载模块会在任何请求到达 Harness 之前校验当次启动令牌,内置 WebView 也被限制在同一回环源内。完整架构与安全边界见 docs/ARCHITECTURE.md。
逐步的操作与排错见 首次配置。
内置供应商:DeepSeek、OpenAI、Anthropic、Google Gemini、OpenRouter、Groq、xAI、Mistral。
也可以将任意 OpenAI 兼容端点配置为自定义供应商(基础地址、API Key 与模型列表)。管理端 API Key 通过 Android Keystore 保护,并写入 Harness 私有的 ~/.dsh/.credentials.yaml(0600);仅本次启动所需的临时令牌才会写入同样受保护的启动文件。保存配置时若 Harness 正在运行会自动重启,确保运行时状态始终与界面显示一致。
在「设置 → 模型与密钥」点击「登录 DeepSeek 账号」会先打开 Harness;进入后从侧栏「更多」菜单选择官方登录。授权完成后返回设置页,应用会刷新账号授权状态并保留尚未保存的 API Key 草稿。退出账号后再次返回该页也会刷新为未登录状态;账号授权和 API Key 是两条独立的可用路径。
登录回调只精确放行 Harness 的 GET /oauth/callback,其余 Harness 页面和 WebSocket 仍需要本次启动的应用认证。Android 只会把 https://platform.deepseek.com[:443]/dsh/authorize?... 的用户触发导航交给系统浏览器;其他来源、路径、片段、userinfo 或非 HTTPS 地址均不会打开。应用不会读取或转交账号令牌。
Shizuku 完全可选,且不会随应用捆绑安装:
开启后,模型可调用设备 Shell 读取、写入、创建目录、上传、下载文件,也可查询指定应用的进程、服务和 Activity 摘要。Shell 使用 Shizuku 的实际 Android 权限,不等同于 Root;命令正文和输出不会写入诊断日志。请不要让模型读取或回显密钥、短信、通讯录、令牌等隐私数据。
无障碍自动化需要你另外在系统设置中手动开启服务,再在应用内从已安装应用列表选择目标包名并保存白名单。白名单数量不设上限;普通厂商应用可加入,系统设置、权限、支付、验证码和密码页面仍由原生服务拒绝。服务不能绕过锁屏,也不能保证厂商后台策略下的持续运行。
当 Shizuku 不可用、未授权或连接断开时,设备工具会明确报错;Ubuntu 运行时与 Harness 不受影响。
更新 Shizuku 应用之后,手机上可能仍在运行更新前启动的服务端,此时连接用户服务会超时。遇到这种情况请在 Shizuku 里停止服务再重新启动(或重启手机),然后回到本页重试——应用内没有重启 Shizuku 服务端的通路。界面上的「Shizuku 应用 13.6.0」是已安装的 Shizuku 应用版本,「服务端 API 13」是服务端上报的 API 版本,两者不是一回事。
在 设置 → AI Shell → 目标应用副屏(实验功能) 中选择目标应用,可尝试将其运行到独立虚拟显示,并通过原生预览页或可拖动小窗查看和操作。此处展示的是目标应用界面;AI 对话悬浮窗是另一项功能。
入口要求 Android 10 及以上、已授权并连接 Shizuku,且用户已开启 AI Shell。锁屏或熄屏时,该副屏通道暂停读取与输入。AI 工具已覆盖副屏状态与性能读数(目标帧率、画面年龄、输入后首帧间隔估计)、PNG 截图、副屏专用无障碍节点树、点击、滑动、返回、中文文本写入(经无障碍聚焦写入,失败时回退系统剪贴板粘贴)、15/30/60 fps 档位和结束会话;画面仍是逐帧取 PNG,不是视频编码通道。
截至 2026-10-02,已在 MuMu Android 15 中以普通 Shell 权限验证测试应用的横竖屏截图、定向点击和会话回收,并检查 363×800 dp 与 800×363 dp 的原生选择页布局;此后各版本另有 HONOR AAP-AN00 真机回执,逐条列在目标应用副屏说明里,本段不重复。尚未验证完整 Shizuku 授权与绑定链路、真实第三方应用、小窗互切、长期后台与锁屏恢复;上述新增能力多数也只有单元测试与编译检查,模拟器探针结果不能视为所有手机或所有应用的兼容保证。
已有运行环境还需要更新或重新打包 dsh-mobile-shizuku 插件,才能使用新增 AI 工具;仅安装新 APK 不会改写现有插件数据。机制、工具接口与完整验证范围见目标应用副屏说明。
^22.19.0 或 >=24.0.0,以及 pnpm 11libdsh_proot.so、libdsh_proot_loader.so)——准确的上游版本号与哈希见 THIRD_PARTY_NOTICES.mdruntime-manifest.json 与 rootfs.bundlepnpm install --frozen-lockfile
pnpm run build # TypeScript 检查 + Vite 生产构建
pnpm run android:sync # 构建并同步到安卓工程
pnpm run android:open # 在 Android Studio 中打开,或直接使用 Gradle 构建开发版构建可以不内置运行时,改为同时设置 DSH_RUNTIME_MANIFEST_URL 与 DSH_RUNTIME_MANIFEST_SHA256 以固定远程清单。完整构建说明与签名策略见 android/README.md。
pnpm test # Vitest 单元测试
pnpm --dir scripts/runtime-profile install --frozen-lockfile --ignore-scripts # 插件测试依赖
pnpm run test:scripts
pnpm lint # ESLint,零警告通过SecureRandom 生成全新的 256 位令牌。令牌不会持久化、不会写入日志或 URL,也不会返回给 JavaScript。~/.dsh/.credentials.yaml(0600)读取;账号授权记录也由 Harness 以同样的私有文件权限管理。每次启动生成的临时传输令牌只在受保护的启动文件与进程内存在。欢迎在 提交 Issue 与 Pull Request。
提交前请保持改动聚焦、为新行为补充测试,并运行 pnpm lint 与 pnpm test。 涉及安全的改动必须维护 docs/ARCHITECTURE.md 所述边界, 尤其不得削弱回环访问控制、摘要校验、入口白名单或 Shizuku UserService 契约。
欢迎更多开发者参与,你的名字也可以出现在这里。
黄线是 GitHub 星标累计数(按加星时间计入);蓝线是各 Release 资产的总下载次数—— GitHub 只提供当前累计值,所以按发布日计入、逐日累加成阶梯线。图由 pnpm run chart:stats 重新生成,抓取日期会写进图内;仓库里的 stats-chart 工作流每天自动跑一次,数据变了就自己提交新图。
本仓库中的应用代码基于 MIT 许可证发布。
正式版 APK 还以各自许可证再分发了第三方运行时组件,包括 PRoot (GPL-2.0-or-later)、Operit2 运行时工具链(AGPL-3.0)、Ubuntu 24.04 软件包、Node.js,以及采用 MIT 许可证的 DeepSeek Harness 运行时与前端。 组件来源、确切上游版本、制品哈希及相应许可证文本记录于 THIRD_PARTY_NOTICES.md,并随 APK 内 assets/legal/ 目录一并提供。