dsh-Go
ccch1mneyyy/dsh-Go加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象一个场景:你坐在地铁上,手机里没有开发环境,但手头有一台公司里跑着 DeepSeek Harness(DSH)的开发机。传统做法是掏出电脑、连 VPN、开远程桌面——等你折腾完,地铁已经到站了。
DSH Go(仓库 ccch1mneyyy/dsh-go)要解决的就是这件事:把 DSH 引擎塞进 Android 手机。首次启动时 App 会在应用私有目录里解压一套 Ubuntu 24.04 + Node.js + @deepseek-ai/dsh 的完整运行时,通过 proot(无需 Root 的用户态 Linux 层)跑起 dsh web,然后 Flutter 原生界面通过本地 HTTP/SSE 连上它。整个过程不装 Termux、不解锁 bootloader,手机完全就是个"AI 开发机终端"。
更妙的是它有两条腿:一条是本机跑(手机自己当主机),另一条是反向遥控(手机当远程客户端,通过 WebRTC / SSH / DSHarness Remote 连到你电脑或服务器上的 DSH)。切换主机时对话可以接着往下走。
截至 2026-11-03,这个仓库在 GitHub 上拿到 5802 star、289 fork,最新 release 是 v1.0.9(2026-11-02 发布),而仓库创建时间只有 2026-10-25——9 天涨 5800 星,这是一条陡峭的上升曲线。
DSH(DeepSeek Harness)是 DeepSeek 官方开源的"命令行编码智能体":你在终端里给它一个需求,它自己读代码、改文件、跑测试、总结给你看。官方提供了 Web 版,但那是桌面浏览器里的东西。
DSH Go 的作者 ccch1mneyyy(中文圈 ID)在 GitHub 上的作品矩阵相当密集:同门的 dsh-TUI 拿了 6601 star(DSH 的终端交互界面,贡献了"Deepy 小鲸鱼"和"鲸娘"两只吉祥物),working-activity 666 star,还有 dsh-auth、dsh-context、dsh-blender-plugin 等一长串插件与实验项目。
所以 dsh-go 不是孤立的移植项目,而是作者围绕 DSH 生态做的一整条产品线:TUI 负责电脑端,Go 负责手机端,Remote 负责跨设备,market/ 目录则是一个插件市场(含 JSON Schema、候选插件池、CI 校验与发布工作流)。
需要说清楚的是:DSH Go 与 DeepSeek 官方无任何隶属关系,是社区第三方项目,README 中专门有 FAQ 段落澄清这一点。
如果把 DeepSeek Harness 理解成"会自己干活的程序猿",那 DSH Go 就是放进裤兜的工位:

技术栈是 Flutter 3.47 / Dart 3.13 + Riverpod 3(UI 层)、Kotlin(Flutter 插件形式,解压运行时、管理 proot 进程、跑前台服务)、纯 Dart 的 packages/dsh_client(HTTP/SSE + mux + 会话 API)、packages/dsh_remote(WebRTC / LAN / TURN / 中继传输)。
关键工程细节:runtime/locks/ 用 ubuntu-noble-arm64.json、ubuntu-noble-amd64.json 锁定了系统包版本,runtime/patches/pins.json 把每一个补丁与被修改文件的 SHA256 前后值钉死——这意味着补丁机制是可复现、可校验的,不会因为上游 npm 包更新而静默失效。补丁本身覆盖了文件上传、fs 独占创建、插件管理器活动运行守卫、路由守卫、会话删除、日志脱敏、模型默认值等 15+ 处。
targetSdk = 28 是刻意为之(与 Termux 对齐),绕开 Android 10+ 对应用私有目录 exec 的限制。proot 以 lib*.so 形式放进 jniLibs,靠 useLegacyPackaging = true 解压到 nativeLibraryDir 变成可执行文件。
DSH 的回复是流式的,用户往往等不及。DSH Go 允许在生成过程中插话,排队的消息可以"立即发送"抢跑,任务完成后过程被折叠成一行而不是刷屏。

开启权限后,本机引擎可以读取屏幕内容、模拟点击和输入。这是最"Agent 化"的部分——手机上的 AI 不只是聊天,还能真的替你操作手机。
但作者在设计上做了明确的安全边界:付款、密码、验证码、系统设置这类操作一律交还给用户,确认级别分三档可调。开启手机操控后,任务所需的屏幕文字会发送给模型,支持看图的模型还可能收到截图——README 对此有明确告知。
sdk/plugin-kit/ 提供原生工具卡、表单、面板的开发套件(含 Node 测试与同步脚本),market/ 是带 JSON Schema 的插件市场,带候选池、CI 检查、发布工作流和 policy.json。仓库里已经躺着 @ccch1mneyyy__dsh-media、@liustack__modlens、@liustack__modsearch、@xmanrui__dsh-im 等第三方插件条目。
services/share-worker/ 是一个 Cloudflare Worker(TypeScript),负责分享链接、下载页、下载量统计、beta 通道鉴权(beta-auth/beta-guard)和市场分发。分享链接采用端到端加密,密钥只在链接里,服务器看不到内容。配套的 infra/forum/ 用 docker compose 部署了 Discourse 论坛(forum.dshtui.com)。
| 路径 | 门槛 | 适合人群 |
|---|---|---|
| 侧载 APK 连远程主机 | 最低。Android 8.0+,下载 arm64 APK 装上即可 | 想随时遥控自己电脑/服务器的人 |
| 本机跑引擎 | 中等。需预留约 1 GB 空间,App 内点几下自动装好 Ubuntu + Node + DSH | 想让手机完全独立干活的人 |
| 从源码构建 | 高。仅支持 Linux x86_64,需先跑 tooling/setup-toolchain.sh 装 JDK 17 / Flutter 3.47.7 / Android SDK+NDK,再 runtime/build-runtime.sh arm64-v8a + tooling/build-apk.sh -f arm64 | 想改代码做插件的开发者 |
注意几个坑:没有 32 位 ARM 构建;签名不同的早期测试包不能覆盖安装,卸载会清空对话、Linux 环境和设置;未配置 app/android/key.properties 时本地 release 构建用 debug 签名;当前构建以 APK 侧载为目标,不是 Google Play 发布配置。
单人主导 + 明确拒绝外部 PR。仓库的 AGENTS.md 把"不接受任何外部 PR"列为最高优先级硬规则,.github/workflows/pr-gate.yml 会自动关闭外部 PR。这在短期内保护了代码一致性,长期看是明显的巴士因子风险——全库 5178 个文件、209 次提交、contributors 只有 1 人(ccch1mneyyy 本人)。社区讨论只能走 Issue 和论坛。
Issue 积压严重。当前 open issue 219 个 / 累计 291 个,已关闭 72 个,PR 也有 38 个开着。热门的 issue 集中在"不打扰模式(后台屏)"这一块:Android 16 / 17 上注入事件被拒、Sui/HyperOS 上读屏恒为 0 项、自连 ADB 配对无响应、Android 17 通知聚合导致 Direct Reply 失效——这说明最激进的后台操控能力在最新 Android 版本上还没有打磨好。
proot + sandbox 的结构性限制。有 issue 详细定位了 workspace-write 沙箱不可用的机制:bwrap 暂存目录 × proot 路径翻译 × DSH tmpfs 硬编码三者叠加,附了只读档修复方案但尚未落地。
机型碎片化。鸿蒙 7 + 卓易通下本地引擎 getcwd ENOSYS / exec EFAULT 无法启动;motorola/Android 16 上 1.0.8 误报"注入被拒"(1.0.7 正常)。国产 ROM 的省电策略也会杀后台,作者为此专门做了检测提醒和一键跳转设置页(vivo/小米/华为/荣耀/OPPO)。
安全面的取舍。AGPL-3.0 主协议(sdk/ 与 examples/ 为 MIT),"DSH Go"名称、标识和吉祥物形象明确不在授权范围内。更值得注意的是 runtime/patches/install-log-redaction.diff 这个补丁的存在本身——它说明引擎安装日志可能包含敏感信息,作者为此专门做了脱敏补丁,同时 AGENTS.md 明确要求"不记录、不回显、不持久化完整 API key"。
模型请求不由项目提供。DSH Go 只是壳,模型请求仍发往用户配置的提供方,按提供方账户计费,官方 DeepSeek 账号登录只是其中一种方式。
DSH Go 代表的趋势是把编码智能体从"开发者的桌面工具"变成"随身携带的设备能力":
从数据看,这条曲线还在加速:仓库 10 月 25 日创建,到 11 月 2 日已经发布到 v1.0.9,五个版本在两天内迭代完成,release 节奏极密。作者自己也说"Star 点得越多,我适配得越快"——这既是玩笑,也是这个项目当前最真实的状态:能力边界正被用户的期待快速拉扯着扩展,而主力开发者只有一个人。
数据采集时间:2026-11-03 | 数据来源:GitHub REST API、仓库源码与 README、PIFS 平台