在手机上运行终端编程 Agent,单文件即装即用
35.6/100
综合分
8
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add LouisYang841/dsh-mini该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-mini @ 0.1.11
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 14:18:08
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 35 处,展示前 35 条)
- 执行外部命令固定命令cli/bash-tool.js:28
const child = spawn("bash", ["-c", command], { - 读取本地文件cli/cli.js:63
if (!existsSync(envFile)) continue; - 读取本地文件cli/cli.js:64
for (const line of readFileSync(envFile, "utf8").split(/ ? /)) { - 读取密钥环境变量cli/cli.js:83
const GEMINI_KEY = process.env.GEMINI_API_KEY; - 读取密钥环境变量cli/cli.js:145
const PROVIDER = PROVIDER_OVERRIDE ?? CONFIG.defaultProvider ?? (process.env.DEEPSEEK_API_KEY || !process.env.GEMINI_API_KEY ? "deepseek-official" : " - 写入本地文件cli/cli.js:186
mkdirSync(dirname(target), { recursive: true, mode: 0o700 }); - 写入本地文件cli/cli.js:187
if (target === join(homedir(), ".dsh-mini", "env")) chmodSync(dirname(target), 0o700); - 读取本地文件cli/cli.js:188
const previous = existsSync(target) ? readFileSync(target, "utf8").replace(new RegExp(`^${env}=.*$`, "m"), "").trimEnd() : ""; - 读取本地文件cli/cli.js:188
const previous = existsSync(target) ? readFileSync(target, "utf8").replace(new RegExp(`^${env}=.*$`, "m"), "").trimEnd() : ""; - 写入本地文件cli/cli.js:189
writeFileSync(target, `${previous}${previous ? "\n" : ""}${env}=${key}\n`, { mode: 0o600 }); - 写入本地文件cli/cli.js:190
chmodSync(target, 0o600); - 执行外部命令来自配置/变量cli/cli.js:303
const child = spawn(process.execPath, [process.argv[1], ...args], { - 读取本地文件cli/cli.js:758
if (existsSync(agentsPath)) { - 读取本地文件cli/cli.js:759
const instructions = readFileSync(agentsPath, "utf8").slice(0, AGENTS_MD_CAP).replaceAll("</workspace_instructions>", "<\\/workspace_instructions>"); - 读取密钥环境变量cli/cli.js:959
...(process.env.OPENAI_API_KEY ? { openai: { apiKeyEnv: "OPENAI_API_KEY" } } : {}), - 读取密钥环境变量cli/cli.js:960
...(process.env.ANTHROPIC_API_KEY ? { anthropic: { apiKeyEnv: "ANTHROPIC_API_KEY" } } : {}), - 读取密钥环境变量cli/cli.js:961
...(process.env.OPENROUTER_API_KEY ? { openrouter: { apiKeyEnv: "OPENROUTER_API_KEY" } } : {}), - 读取本地文件cli/config.js:70
if (!existsSync(path)) return undefined - 读取本地文件cli/config.js:73
text = readFileSync(path, 'utf8') - 写入本地文件cli/config.js:132
mkdirSync(dirname(path), { recursive: true, mode: 0o700 }) - 写入本地文件cli/config.js:136
writeFileSync(tmp, JSON.stringify(next, null, 2) + '\n', { mode: 0o600 }) - 写入本地文件cli/config.js:137
chmodSync(tmp, 0o600) - 写入本地文件cli/config.js:138
renameSync(tmp, path) - 发起网络请求cli/gemini-adapter.js:126
response = await fetch(url, { - 读取本地文件cli/skill-scanner.js:33
if (!existsSync(root)) continue; - 读取本地文件cli/skill-scanner.js:34
entries = readdirSync(root, { withFileTypes: true }); - 读取本地文件cli/skill-scanner.js:45
if (existsSync(candidate)) { - 读取本地文件cli/skill-scanner.js:72
meta = parseFrontmatter(readFileSync(entry.path, "utf8")).meta; - 读取本地文件cli/skill-scanner.js:98
const { meta, body } = parseFrontmatter(readFileSync(candidate.locator, "utf8")); - 读取本地文件cli/tool-scanner.js:66
if (!existsSync(root)) continue - 读取本地文件cli/tool-scanner.js:67
entries = readdirSync(root, { withFileTypes: true }) - 读取本地文件cli/tool-scanner.js:76
const raw = JSON.parse(readFileSync(file, 'utf8')) - 执行外部命令固定命令cli/tool-scanner.js:125
spawnSync('taskkill', ['/pid', String(child.pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' }) - 执行外部命令来自配置/变量cli/tool-scanner.js:150
const child = spawn(definition.command[0], definition.command.slice(1), { - 写入本地文件vendor-pi/bash-executor.ts:94
const stream = createWriteStream(tempFilePath);
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-loop@deepseek-ai/dsh-fs@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-session-persistence-jsonl@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tool-fs@deepseek-ai/dsh-tool-todo@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 单文件即装即用
- 零运行时依赖
DeepSeek Harness 核心的便携引擎 + Termux 友好的终端编程 Agent CLI(pi 壳 + DSH 引擎,零运行时依赖,359MB→7.6MB 单文件)
README
由 DeepSeek 最新模型翻译生成dsh-mini
CI
version
stars
license
node
runtime deps
Termux
DeepSeek Harness 核心的便携引擎 + 一个能在手机上干活的终端编程 Agent CLI。 我们不是 fork:以 npm 消费者身份把 pi(壳)和 DSH(引擎)拼在一起,本仓库真正自研的是五条缝、兼容层和文档——拼装与解耦。
这是什么
- 引擎原样来自 DSH 官方包:事件溯源会话、turn/step 状态机、工具调度、压缩、skills——@deepseek-ai/dsh- 锁版直用,一行不改
- 壳来自 pi 生态:真 @earendil-works/pi-tui 框架 + 社区 @openguardrails/dsh-tui 全屏界面(默认)
- 我们能替换的只有缝:provider 换、文件系统换、持久化换、UI 换,引擎不动
依赖砍了多少
| | 官方 DSH | dsh-mini |
| 构建期直接依赖 | — | 39 个(npm 闭包 168 包/161MB,见 REFLECTION.md) |
| 默认 profile 插件 | ~90 个 | 31 个(全纯 JS,零原生模块) |
| 运行时 npm 依赖 | 全家桶 | 0 个(产物自包含) |
展开完整文档(README 剩余 1 节)
dsh-mini CI version stars license node runtime deps Termux DeepSeek Harness 核心的便携引擎 + 一个能在手机上干活的终端编程 Agent CLI。 我们不是 fork:以 npm 消费者身份把 pi(壳)和 DSH(引擎)拼在一起,本仓库真正自研的是五条缝、兼容层和文档——拼装与解耦。 这是什么 - 引擎原样来自 DSH 官方包:事件溯源会话、turn/step 状态机、工具调度、压缩、skills——@deepseek-ai/dsh- 锁版直用,一行不改 - 壳来自 pi 生态:真 @earendil-works/pi-tui 框架 + 社区 @openguardrails/dsh-tui 全屏界面(默认) - 我们能替换的只有缝:provider 换、文件系统换、持久化换、UI 换,引擎不动 依赖砍了多少 | | 官方 DSH | dsh-mini | | 构建期直接依赖 | — | 39 个(npm 闭包 168 包/161MB,见 REFLECTION.md) | | 默认 profile 插件 | ~90 个 | 31 个(全纯 JS,零原生模块) | | 运行时 npm 依赖 | 全家桶 | 0 个(产物自包含) | | 安装体积 | 359MB node_modules | 7.7MB 单文件(约 47 倍缩减) | | 便携引擎 | — | 419KB,零 Node 内置依赖 | 数字来源:官方安装的 node_modules 实测 359MB;我们只保留直接 import 的 39 个构建期包(全部 devDependencies,npm install --omit=dev 装 0 个);完整砍依赖账本见 REFLECTION.md。 为什么对 Termux 友好 - 推荐 Node ≥ 22.15——zstd 内置于 node:zlib,无原生模块、无编译;更旧 Node 可运行但 session 会退化为未压缩 JSONL - 一条命令安装:curl | sh,下载单个 7.7MB 自包含文件 + 26 行 launcher,npm 都不需要 - bash 工具直接打手机真实文件系统(OnePlus 15 / Termux 实测:ls、建文件、跑脚本) - 为 Android 修过的真坑(skill 里有记录):SELinux 禁硬链接 → 持久化降级为 rename 原子发布;exit 与 200ms 写批的时序 → 退出前强制 flush - 数据和密钥都在手机本地:会话 JSONL 在 ~/.dsh-mini/sessions;密钥只从环境变量读取(可选持久化到 0600 权限的 ~/.dsh-mini/env 或 ./.env),不出设备 - 三套界面按环境自适应:默认全屏 TUI / DSH_TUI=basic 简易壳 / DSH_PLAIN=1 纯文本(管道与脚本友好) pi 和 DSH 是怎么低耦合焊在一起的 五条缝(完整契约见 ARCHITECTURE.md): 1. LLM 适配器——DSH 官方 DeepSeek 直连 + 官方 pi-ai 多 provider(OpenAI/Anthropic/OpenRouter,环境变量存在即启用)+ 自写 Gemini 作为缝的参考实现 2. 文件系统服务——官方 dsh-fs-local(koffi 仅 Windows 惰性加载,Linux/Termux 等效纯包);node-fs.js 是非 Node 宿主的契约参考 3. 持久化后端——官方 JSONL 后端 + 我们的 shims/fs-promises.js 兼容层(Android 专属修复) 4. Node API 面 shims——纯 JS 重实现 + "大声失败"桩:核心一旦越界立刻报错 5. 引擎面 polyfills——QuickJS/V8 等引擎差异归一化(同 bundle 在 Node 与 QuickJS 上产生字节级一致的事件序列) 这个 repo 如何支持再拼装与扩展 - ARCHITECTURE.md:五缝 + 六步改装配方——把引擎装进任何 harness/agent app - DECISIONS.md:ADR-0001(为什么组装而不是 fork 官方)+ ADR-0002(砍大头留小头判据) - skills/:近 50 条实踩坑(cordis 语义、引擎差异、Android、配额、发布),agent 可通过内置 skill 工具现场加载 - conformance 门:假 provider 回放 + 字节级基线(run.sh)——上游升版、引擎改动全有客观验收,且零 API 配额 - AGENTS.md:给任何 coding agent(包括 dsh-mini 自己)的工程规矩 快速开始 任意 Node ≥ 22.15 机器(Termux 先 pkg install nodejs) curl -fsSL https://github.com/LouisYang841/dsh-mini/raw/main/scripts/install.sh | sh dsh-mini 首次运行无密钥会交互询问 provider 并持久化(~/.dsh-mini/env)。DeepSeek 默认;/provider 切换,/model 换型号,--resume/--sessions 回访会话。 新会话默认 minimal 模式:system prompt 固定为官方 Minimal 的完整 persona,模型只看到 bash + str_replace_editor。用 --mode standard、DSH_MODE=standard 或会话内 /mode standard 切到完整工具目录;模式作为 durable session event 保存,resume 时自动恢复。/mode standard --global 会把新默认值写进 ~/.dsh-mini/settings.json,之后每次启动都生效。 持久化配置 两层 JSON 设置(仿 pi 的 settings 契约,去掉 watcher/lockfile 依赖): 1. ~/.dsh-mini/settings.json — 用户默认值(首次 /mode --global 或 /config key value 时以 0600 创建) 2. /.dsh-mini/settings.json — 当前项目覆盖值 优先级:CLI flag > 环境变量 > 项目设置 > 用户设置 > 内置默认值。支持的字段: | 字段 | 默认 | 说明 | | defaultMode | minimal | 新会话模式(minimal / standard) | | defaultProvider | 自动 | 启动默认 provider(如 deepseek-official、google、openai) | | defaultModel | provider 默认 | 启动默认模型 | | reasoningEffort | provider 默认 | 推理强度(以 /reasoning 列出当前模型支持的 id,如 off/high/max;env:DSH_REASONING_EFFORT) | | sessionsDir | ~/.dsh-mini/sessions | 会话存储目录,支持 ~/... | | compactionRatio | 0.8 | 自动压缩触发比例(>0 且 ≤1) | | titles | false | 是否给会话生成标题(静默消耗一次 LLM 调用) | | workspaceInstructions | true | 是否注入工作目录的 AGENTS.md | | showBanner | true | 是否显示启动 banner | | renderer | auto | auto(默认 cc-tui)/ cc / basic / plain | 会话内 /config 查看当前有效值及来源;/config 写入用户设置。会话内 /reasoning [id] 查看/切换推理强度,/reasoning --global 把新默认值写进用户设置(/reasoning default --global 清除并回到 provider 默认)。凭据不进 settings —— API key 只从环境变量或 ~/.dsh-mini/env 读取。 自定义工具(toolpackages) Agent 或用户可以给 dsh-mini 写自己的工具。扫描目录是 /tools/ 和 ~/.dsh-mini/tools/:每个工具由 .tool.json manifest 加一个可执行文件组成。manifest 声明 name / description / parameters / output / command;执行时 dsh-mini spawn 该命令,JSON 参数走 stdin,结果从 stdout 读回 JSON。写完后 /tools reload 热加载,完整工具在 standard 模式可见。完整契约见 docs/toolpackages.md,agent 开发时可加载 skills/toolpkg-authoring/SKILL.md。 许可证 自身代码 MIT;全部拼装组件的归属声明见 THIRD_PARTY_LICENSES.md(随 release 分发)。 相关项目 / Related - DeepSeek Harness — 本项目的引擎来源(官方 255 包全家桶 → 我们砍到 39 个构建期包、0 运行时依赖) - pi — 壳与 provider 生态来源(pi-tui / pi-ai) - @openguardrails/dsh-tui — 默认全屏 TUI(同为 pi-tui 系,MIT) - dsh-cc-tui — 另一社区 TUI(BSD-3,仅作参考未打包) 以下为英文文档(架构细节、开发指南)。 This directory is the spike that answers one question: can the DeepSeek Harness core be pulled from npm, run as a self-contained engine behind a compatibility layer, and be embedded in other hosts? Two deliverables: 1. 引擎探针(bundle.mjs、run.sh) 真正的 DSH 核心——cordis + AgentRegistry + SessionStore + SystemPrompt + ToolRuntime + AgentLoop(事件溯源的轮次/步骤状态机)——被打包成一个与引擎无关的单一文件(约 419 KB,零 Node 内置依赖),包含: - shims/——用纯 JS 重新实现的 Node 内置接口表面(path、 util、crypto、async_hooks/AsyncLocalStorage 通过打补丁的 promise 链实现,……)。fs/sqlite/child_process 是显式失败的桩:如果核心一旦触碰它们,就会大声报错而不是行为异常。 - polyfills.js——引擎 polyfill(AbortController、structuredClone、 Promise.withResolvers、Symbol.dispose,……)外加一处引擎差异归一化:QuickJS 将原生函数的 Function.prototype.toString 渲染为多行,而 dsh-tools 会按 V8 的单行形式做字符串比较。 关键设计选择:esbuild --target=es2016 将 async/await 降级为生成器,使每个 promise 续体都经过 JS 可见的 Promise.prototype.then ——这是 AsyncLocalStorage 前奏在 QuickJS 上工作所必需的,因为 QuickJS 的 await 是 C 内部实现。 验证:5 个脚本化场景(纯文本 / 工具往返 / 并行+独占工具调度 / 最大 token 截断 / 轮次中途引导)通过一个假 provider 回放。Node 和 QuickJS 产生逐字节相同的事件轨迹(114 个事件),在 baseline.node.json + baseline.sha256 中做哈希锚定。未来每一次 @deepseek-ai/ 升级都必须通过 ./run.sh。 2. dsh-mini CLI(cli/) 同一个 DSH 核心,在 Node 上作为真正的交互式编码代理: node cli/cli.mjs [model] - Provider:通过 AI Studio SSE 端点接入 Google Gemini,实现为一个 dsh-llm 的 LlmAdapter(cli/gemini-adapter.js)——证明第三方 provider 可以通过适配器接缝接入核心。包含 Gemini-3 的 thoughtSignature 回显怪癖(签名在两个方向上都是 functionCall 的部件级同级项)。 - 工具:真正的 dsh-tool-fs 工具(read/write/edit/list)+ dsh-tool-todo,由官方 dsh-fs-local 服务支撑(cli/node-fs.js 仍是非 Node 的契约参考)。 - 持久化:真正的 DSH JSONL 后端(dsh-session-persistence-jsonl, zstd,按 cwd 布局);会话在重启后存活,--resume 恢复, --sessions 列出。已验证跨进程记忆(密语测试)。 - 模式:minimal 是新会话的默认模式(精确的 Minimal 人格 + 仅 bash/str_replace_editor);standard 保留完整的 dsh-mini 目录。通过 --mode 、DSH_MODE、/mode 或 defaultMode 设置选择;当前活动模式被记录为持久会话事件,并在恢复时还原。/mode --global 将新的默认值持久化到 ~/.dsh-mini/settings.json。 - 设置:~/.dsh-mini/settings.json(用户)合并到 ./.dsh-mini/settings.json(项目)之下,然后是环境变量,然后是 CLI 标志。 字段:defaultMode、defaultProvider、defaultModel, reasoningEffort、sessionsDir、compactionRatio、titles、 workspaceInstructions、showBanner、renderer。/config 显示有效值,/config 保存到用户文件。 推理强度按模型通过 /reasoning [id] 选择(/reasoning --global 持久化默认值);CLI/环境变量默认值为 --reasoning-effort / DSH_REASONING_EFFORT。API 密钥不放在设置中——它们存在于环境变量或 ~/.dsh-mini/env 中。 - 工具包:扫描 /tools 和 ~/.dsh-mini/tools 中的 .tool.json 清单。每个工具以进程外方式运行,通过 stdin/stdout 传递 JSON; /tools reload 无需重启即可重新扫描。 - REPL:/clear、/model 、/mode [id [--global]]、/reasoning [id [--global]]、 /config [key [value]]、/sessions、/tools [reload]、/exit;来自 会话 firehose 的实时事件渲染;带实时 token 使用量的 ANSI 状态栏。 命令: cli/cli-build.sh # build cli/cli.mjs (Node profile) ./run.sh # engine conformance (Node + QuickJS, diff vs baseline) ./build.sh # portable engine bundle only node cli/cli.mjs [model] [--mode ] [--reasoning-effort ] [--resume ] [--sessions] # settings files + env configure the rest 提供商。 DeepSeek 是默认项(通过 DSH 自有的 dsh-llm-deepseek 适配器走 deepseek-official 路由;DEEPSEEK_API_KEY),Google Gemini 通过 GEMINI_API_KEY。pi 提供商生态共用一个适配器(dsh-llm-pi-ai):设置 OPENAI_API_KEY / ANTHROPIC_API_KEY / OPENROUTER_API_KEY,openai / anthropic / openrouter 路由会自动启用(外加 pi-ai 的 deepseek 路由)。使用 /provider 切换提供商,使用 /model 切换模型。 首次运行且任何地方都没有密钥时会启动交互式设置:选择一个提供商,粘贴密钥——它会被持久化到 ~/.dsh-mini/env(回退到 ./.env,两者都被 gitignore)并在下次启动时自动加载。 工作区指令:如果工作目录包含 AGENTS.md,它会被注入到系统提示中(DSH_NO_AGENTS=1 或 workspaceInstructions: false 可禁用)。 架构(引擎/宿主接缝、改造配方、升级策略): ARCHITECTURE.md。陷阱与宿主集成清单: skills/dsh-core-embedding/SKILL.md。 安装(一行命令) curl -fsSL https://github.com/LouisYang841/dsh-mini/raw/main/scripts/install.sh | sh 将 dsh-mini 安装为命令(包安装到 ~/.dsh-mini/,启动器放入 PATH)。zstd 会话需要 Node >= 22.15;较旧的 Node 可使用未压缩的 JSONL。在 Termux 上:先执行 pkg install nodejs。 Termux(Android) 发布产物完全自包含——无需 npm install(也已在 OnePlus 15 上实机验证:设置 → bash 工具驱动手机的真实文件系统 → 会话持久化,全部在设备上完成): 渲染器模式:在真实终端上,全屏 pi-tui shell (@openguardrails/dsh-tui,Claude-Code 风格)是默认模式; DSH_TUI=basic 获得最小化的聊天流式外壳,DSH_PLAIN=1(或管道) 获得用于脚本/CI 的纯行模式。 pkg install nodejs # Node >= 22.15 (zstd is bundled in node:zlib) curl -LO https://github.com/LouisYang841/dsh-mini/releases/latest/download/dsh-mini.mjs export GEMINI_API_KEY="" node dsh-mini.mjs # pi-tui shell; the bash tool hits Termux's real bash 会话持久化在 ~/.dsh-mini/sessions 下(zstd JSONL;在 Node = 22.15 运行它。无需 npm install,无需 DSH 包树。 2. 仅引擎:将 dsh-engine.mjs + shims/ + polyfills.js(全部为普通文件)放入你自己的框架中;main.js 是启动参考, baseline.node.json 是一致性门禁。同样无需 npm install。 3. 源码构建:git clone + npm install(仅构建时 devDependencies) + bash cli/cli-build.sh。加上 --omit=dev 则完全不安装任何东西;在 Termux 上加上 --ignore-scripts。 CI .github/workflows/conformance.yml 在每次推送时运行:npm install → 单元测试 → 可移植包构建 → 一致性门禁(与 baseline.node.json 逐字节一致) → CLI 构建。 路线图 带有来源决策(pi-native → DSH minimal → 自写胶水代码)的功能审计、优先级,以及一份有意跳过清单:ROADMAP.md。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
LouisYang841/dsh-mini
在手机上运行终端编程 Agent,单文件即装即用
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目