zhiyuchen1101/codewhale-dsh
DSH says everything is a plugin — so DSH itself can be one too. Run DeepSeek Harness as a codewhale sub-agent / 把 DeepSeek Harness 作为 codewhale 的子 agent(MCP bridge + 黑板 + headless → ACP)
项目介绍Project Overview
codewhale-dsh 是把 DSH 作为独立智能体接入 codewhale 的 MCP 桥接插件。它通过 FastMCP 暴露 dsh_init、dsh_status、dsh_read、dsh_respond、dsh_cancel,可在 codewhale 会话中派发任务、轮询进度、读取结果、响应权限请求并取消;任务板为单一事实源,DSH 进程独立运行并使用自身插件生态。适合需要在 codewhale 内并行调用完整 DSH 引擎时使用。注意桥接层只做协议转换,不含智能体决策,且忙碌时拒绝新任务。
codewhale-dsh is an MCP bridge plugin that runs DSH as a standalone agent inside codewhale. It exposes dsh_init, dsh_status, dsh_read, dsh_respond, and dsh_cancel for dispatching tasks, polling progress, collecting results, answering permission requests, and canceling work. The task board is the single source of truth, while the DSH process runs with its own engine and plugin ecosystem. Use it when codewhale needs a full DSH agent alongside it. The bridge only translates protocols and rejects new tasks while busy.
请帮我了解并安装插件:【codewhale-dsh】【https://github.com/zhiyuchen1101/codewhale-dsh】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add github:zhiyuchen1101/codewhale-dsh
把 zhiyuchen1101/codewhale-dsh 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
English · 简体中文
codewhale-dsh
DeepSeek Harness says: everything is a plugin. So DSH itself can be one too.
It doesn't leave its own waters. Inside codewhale, DSH swims in as another whale — its own engine, its own plugin ecosystem (358+ community plugins), its own temperament, sharing the same terminal and the same ledger.
Dispatch work, watch progress, collect results, answer its calls for help — one ledger, all inside your codewhale session.
Why
DSH ecosystem bridges all point one way (tool → DSH). This project points the other way:
DSH → codewhale. Not a guest UI, not a borrowed toolset — a full agent with its own plugin tree, running alongside yours.
How it works
┌────────────────────────────────────────────────────┐
│ codewhale TUI your daily · your ledger │
│ │ MCP (mcp.json) │
│ ▼ │
│ dsh-bridge FastMCP thin shell │
│ tools: dsh_init · dsh_status │
│ dsh_read · dsh_cancel │
│ board: task_board.json (single-writer machine) │
│ │ spawn │
│ ▼ │
│ DSH headless its own engine & plugins │
└────────────────────────────────────────────────────┘
The bridge translates protocols only — no agent logic, no decisions. The board is the single source of truth; the DSH process is the only worker.
Tools
| Tool | What it does |
|---|---|
dsh_init(task, workspace) |
Dispatch a task. Rejects while busy; resets after done/error |
dsh_status() |
Poll status; auto-settles done/error when the process exits |
dsh_read() |
Read the full result |
dsh_respond(allow) |
Answer a permission/help request (blocked state) |
dsh_cancel() |
Graceful ACP cancel; kill fallback |
Quick start
git clone https://github.com/zhiyuchen1101/codewhale-dsh && cd codewhale-dsh
make install
Register in ~/.codewhale/mcp.json:
{
"mcpServers": {
"dsh": {
"command": "/Users/<you>/codewhale-dsh/.venv/bin/python",
"args": ["/Users/<you>/codewhale-dsh/src/dsh_bridge.py"]
}
}
}
Then in a codewhale session: "use dsh_init to dispatch a task: ..."
Roadmap
| Status | Item |
|---|---|
| ✅ | Minimal loop — dsh_init → headless works → dsh_read collects |
| ✅ | ACP streaming — official ACP server (packages/acp): live chunks, permission relay (blocked + dsh_respond), graceful cancel |
| 🚧 | Help requests L2/L3 — richer blocking reasons and escalation tiers (L1 done: permission relay) |
| ✅ | Token accounting — per-task usage from DSH session log (input/output/cache/reasoning) |
| ⬜ | Task queue — multiple tasks, isolated workspace/session each |
| ⬜ | npm package — ship dsh-bridge as an installable binary |
Design rules
- Thin shell — the bridge translates protocols only: no agent logic, no decisions
- Single writer — the board has exactly one writer
- TDD — RED before GREEN (
make test) - Task isolation — fresh workspace and DSH session per task
- Summaries out, judgment stays — with you, or codewhale's verifier role
Contributing
Pick an open Roadmap item, open an issue first, then send a PR. Tests must pass (make test). First contributions welcome — the maintainers harvest what works and credit every author.
Architecture decisions
ADR-001 · ADR-002 · ADR-003 · ADR-004 · ADR-005 · ADR-006
License
MIT — an independent community project, not affiliated with DeepSeek or any model provider.
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS