@zseven-w/dsh-crew
Dispatch work to DSH agents from Claude Code or Codex: native subagent progress, in-host worker sessions with per-tier presets, and a multimodal bridge for vision and image generation.
Install
dsh plugin --profile web add @zseven-w/dsh-crew
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<p align="center">
<img src="./docs/images/dsh-crew-logo.png" alt="DSH Crew" width="120" />
</p>
<h1 align="center">DSH Crew</h1>
<p align="center">
<strong><a href="https://github.com/deepseek-ai/deepseek-harness">DeepSeek Harness</a> 插件:在 Claude Code / Codex / Antigravity / Grok 里把活派给 DSH agent,同时保留宿主原生的子代理界面。</strong><br />
<sub>原生进度 UI • 档位策略与失败升档 • 派发护栏 • 任务看板 • DSH 会话进宿主 • 原生优先视觉与生图 • 一键安装</sub>
</p>
<p align="center">
<sub>npm: <code>@zseven-w/dsh-crew</code> · 当前插件版本: <code>0.1.0-rc.11</code> · 已在 DSH <code>0.1.1-rc.1</code> 验证</sub>
</p>
<p align="center">
<a href="./README.md">English</a> · <a href="./README.zh.md"><b>简体中文</b></a> · <a href="./README.zh-TW.md">繁體中文</a> · <a href="./README.ja.md">日本語</a> · <a href="./README.ko.md">한국어</a> · <a href="./README.fr.md">Français</a> · <a href="./README.es.md">Español</a> · <a href="./README.de.md">Deutsch</a> · <a href="./README.pt.md">Português</a> · <a href="./README.ru.md">Русский</a> · <a href="./README.hi.md">हिन्दी</a> · <a href="./README.tr.md">Türkçe</a> · <a href="./README.th.md">ไทย</a> · <a href="./README.vi.md">Tiếng Việt</a> · <a href="./README.id.md">Bahasa Indonesia</a>
</p>
<p align="center">
<a href="https://github.com/ZSeven-W/dsh-crew/blob/main/LICENSE"><img src="https://img.shields.io/github/license/ZSeven-W/dsh-crew?color=64748b" alt="License" /></a>
</p>
<br />
<p align="center">
<img src="./docs/images/dsh-crew-overview.png" alt="DSH Crew 设置页" width="100%" />
</p>
<p align="center"><sub>DSH Crew 设置页 —— 宿主集成、派发策略、执行方式与多模态桥</sub></p>
为什么用 DSH Crew
DSH Crew 是 DeepSeek Harness(DSH,开源 agent harness)的插件,它让 DSH agent 可以从 Claude Code、Codex、Antigravity 与 Grok 里被派活:orchestrator 的模型不变,活由真正的 DSH agent 去干——用的是这套 harness 的工具、沙箱、预设与会话历史——而在宿主里它仍然是一个带实时进度的原生子代理。
干活的是 DSH agent,不是一次裸的模型调用。档位(flash / pro)决定这个 agent 从 harness 已配置的模型阵容里拿到多强的能力(目前是 DeepSeek V4 Flash 与 V4 Pro)——DSH 那边换模型,这边不用改。
<table>
<tr>
<td width="50%">
🧵 原生进度 UI
worker 在 Claude Code / Codex / Antigravity / Grok 里就是普通子代理——派了几个、跑到第几步、调了多少工具、花了多少 token,都显示在宿主自己的任务面板里;claude-hud 还有一行状态栏段:⚙dsh 1▶pro 2m14s 21.7k/606 ✓3。
</td>
<td width="50%">
🎚️ 档位策略与失败升档
机械活走 flash,要推理走 pro,effort 从 off 到 max。tier_policy 可在工具层把所有派发收敛到某一档;escalate_on_failure 让失败的 flash 任务自动用 pro 重试一次——依据结果,而不是事前猜难度。
</td>
</tr>
<tr>
<td width="50%">
🏛️ DSH 会话跑在宿主里
把 bundle 装进 DSH profile 后,每个 worker 都是一等公民的 DSH 会话:出现在 Web UI 列表、按工作目录归组、按档位挂上你指定的 Agent 预设。DSH 没在跑时,派发自动回落到独立的 DSH runtime,CI 与无界面环境照样可用。
</td>
<td width="50%">
👁️ 视觉与生图
DSH 用的模型是纯文本的。describe_image 现在只要有 key 就优先用 DeepSeek 自己的视觉模型(deepseek-v4-flash-vision-exp),失败再回落到你本机已登录的 CLI——Claude、Codex、Grok、Antigravity——或你自己配置的任意 OpenAI 兼容 API。generate_image 借用同样这些 CLI 的画笔。会话里贴的图会留在原地正常显示,模型读到的是转写文本。
</td>
</tr>
<tr>
<td width="50%">
🛡️ 派发护栏
每次派发在真正拉起任何东西之前都会先过检查。worker→worker 嵌套被限制在 origin chain 深度 3,环会被拒绝;workspace 已被运行中的任务持有时,第二个 worker 会被拒绝并附上持有者信息——从不静默排队。拒绝是可读的错误:等待或重新圈定范围,而不是绕过。
</td>
<td width="50%">
📋 任务看板
DSH Crew 面板同时是任务看板:每个 worker 任务——运行中或已结束——都带着档位、effort、实时进度与 token 列在板上,被持有的 workspace 会显示持有者;中途消失的任务(比如 hub 重启)会作为孤儿 ghost 浮出,而不是无声消失。
</td>
</tr>
<tr>
<td width="50%">
🔌 自定义 Provider
接自己的端点(Base URL + API Key + 模型),或写一条本地命令模板。每个 provider 都有连通测试:查可达性与鉴权,再真发一次视觉请求——现在就知道通不通,而不是任务跑到一半才发现。
</td>
<td width="50%">
📦 一键安装
设置页替你安装和更新 Claude Code 插件、Codex 角色文件与 Antigravity / Grok 的 agent、skill 和命令——marketplace 注册、权限白名单、HUD 接线、按本机渲染绝对路径——也同样一键还原。所有配置文件改动前都会先备份。
</td>
</tr>
</table>
工作方式
Claude Code / Codex / Antigravity / Grok(orchestrator,模型不变)
└─ ds-flash / ds-pro ← 原生子代理壳(进度出现在宿主任务 UI)
└─ MCP: dsh_run_worker(tier, effort, cwd, worker=)
├─ worker="agy"/"grok" → 由该外部 CLI 干活(显式 opt-in)
├─ hub 可达 → DSH 内的会话(Web UI 可见,按 cwd 归组)
└─ 否则 → dsh-jsonrpc-agent 独立 runtime(worker.cordis.yml)
└─ DeepSeek V4 Flash / Pro(DSH SDK,事件流 → 进度与 token 统计)
一次派发,两个视角
派发是可以铺开的。下面这次,18 个 worker 并行翻译这份 README:宿主把它们算作自己的子代理,harness 则把它们当作真实会话来跑。
<p align="center">
<img src="./docs/images/dsh-crew-host.png" alt="Claude Code" width="100%" />
</p>
<p align="center"><sub>Claude Code 里,dsh-crew worker 就是原生子代理;状态栏段实时显示在跑的档位、耗时与 token。</sub></p>
<p align="center">
<img src="./docs/images/dsh-crew-jobs.png" alt="DSH Crew" width="100%" />
</p>
<p align="center"><sub>DSH Crew 面板从 harness 一侧看同一次运行:每个任务由哪个宿主派出、档位与推理强度、实时进度与 token 消耗。</sub></p>
<p align="center"><sub>面板同时是任务看板:运行中与已结束的任务都带着档位、进度与 token 留在板上,被持有的 workspace 会标出持有者,中途消失的任务(hub 重启)会作为孤儿 ghost 浮出,而不是无声消失。</sub></p>
安装
从 npm 装进 DSH profile:
dsh plugin --profile web add @zseven-w/dsh-crew@latest dsh web
或者从源码树本地开发:
dsh plugin --profile web add link:/path/to/dsh-crew dsh web
link: 协议把 profile 依赖软链到本仓库,改完重新构建即时可见。
配置 DeepSeek 凭据(standalone 模式专用)
在 hub 模式下 — 即上面的安装方式 — worker 运行在 DSH 实例内部,使用 DSH 实例已配置的 DeepSeek 凭据。无需额外设置。
仅 standalone 回落方案需要自己的 key:从宿主派发任务而没有 DSH 实例运行时,会启动一个独立的 worker runtime 进程。从 platform.deepseek.com 取 API key,写入 ~/.config/dsh-crew/.env:
DEEPSEEK_API_KEY=sk-...
自检
node scripts/smoke.mjs
smoke 测试会挑一条可用的路径派一个廉价任务——DSH 实例在跑就走 hub,否则走 standalone——并打印实际用的是哪条。十几秒内看到 smoke test passed — configuration OK 即配置成功。失败会打印具体原因,且只针对实际测的那条路径。
然后打开 设置 → DSH Crew,一键装好宿主集成——Claude Code、Codex、Antigravity、Grok,或用命令行驱动同一个安装器:
node src/install/cli.mjs claude # Claude Code 插件:marketplace + 权限白名单 + HUD 状态段 node src/install/cli.mjs codex # Codex agent + prompt node src/install/cli.mjs agy # Antigravity MCP 配置 + agent + skill node src/install/cli.mjs grok # Grok MCP 配置 + agent + 命令 node src/install/cli.mjs all # 四个宿主一次装齐 # 对称卸载(uninstall-claude | uninstall-codex | uninstall-agy | uninstall-grok): node src/install/cli. …(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::14,最后更新 2026-10-08