通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Q00/ouroboros#path:/integrations/dsh-plugin
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
该插件的 README 只有英文版本。
Mount Ouroboros — a spec-first AI dev
workflow engine (Socratic interview → Seed spec → execute → evaluate → evolve)
— into DeepSeek Harness as
native tools. Once installed, type ooo interview <goal> or ooo auto <goal>
directly in the dsh chat — the model finds and calls the matching
mcp__ouroboros__* tool on its own.
This is a config-only bundle: it contains no custom plugin code, just one
row that mounts dsh's existing @deepseek-ai/dsh-mcp-client against
ouroboros mcp serve.
Requirements
uvonPATH. Nothing else —uvxfetches and runs Ouroboros in an isolated environment on first launch, nopip installstep.- Python >= 3.12 (whatever
uvresolves). - Nothing else for execution: this bundle defaults
OUROBOROS_AGENT_RUNTIMEtohost, so dsh's own model doesooo run/ooo auto's execution step — no CLI to install. SetOUROBOROS_AGENT_RUNTIME(see below) to an executable runtime (claude-cli,codex,opencode, ...) if you'd rather have that CLI do the work instead.
Install
This bundle lives inside the main Ouroboros
repository as a subdirectory (it has no independent release cadence or code of
its own), so install it straight from GitHub with pnpm's subdirectory syntax.
--profile is required by dsh plugin and names the profile to install into:
dsh plugin --profile <your-profile> add "github:Q00/ouroboros#main&path:integrations/dsh-plugin"
Then boot as usual (dsh --profile <your-profile>, or dsh web if your
profile is named web). dsh --profile <your-profile> --dump-config shows
the # == dsh-ouroboros layer once it's composed.
Configuration
Set these as environment variables before launching dsh. They are read from
the dsh host environment and passed through to the spawned
ouroboros mcp serve process:
| Variable | Purpose |
|---|---|
OUROBOROS_AGENT_RUNTIME |
Agent runtime for ooo run/ooo auto's execution step. Defaults to host (dsh's own model does the work — see below); set to claude-cli, codex, opencode, ... to use that CLI instead. |
OUROBOROS_LLM_BACKEND |
LLM backend for interview/Seed/QA. Leave unset to keep your ouroboros setup default. dsh routes those calls through DeepSeek Harness — read the next section first, it needs two more variables. |
OUROBOROS_DSH_CONFIG_PATH |
Absolute path to the trusted Cordis composition the dsh LLM backend loads. Required whenever OUROBOROS_LLM_BACKEND=dsh. |
OUROBOROS_DSH_CLI_PATH |
Path to the dsh-acp-demo bin, when it isn't on PATH. |
Override any field — timeout, args, a pinned Ouroboros version — from your own
profile's cordis.patch.yml by targeting the mcp-ouroboros row id; see
"Package and install a plugin"
for the override mechanics.
Routing interview/Seed/QA back through DeepSeek Harness
OUROBOROS_LLM_BACKEND=dsh is not a one-variable switch, and it does not reuse
the dsh process you're already running. Ouroboros spawns its own
dsh-acp-demo ACP child, and that child fails closed with invalid_config
unless it is given a composition to load. To use it:
- Build DeepSeek Harness from source (
pnpm install && pnpm run build, Node.js >= 22) and make itsdsh-acp-demobin reachable — onPATH, or named byOUROBOROS_DSH_CLI_PATH. A source build is the working path today: installing the published@deepseek-ai/dsh-acp-demostill fails on a peer-dependency conflict inside its owndsh-tool-bashchain. - Point
OUROBOROS_DSH_CONFIG_PATHat an absolute composition file. Relative paths are rejected on purpose (they would resolve against the untrusted project cwd). The file must sit where dsh'snode_modules(or workspace) is reachable: plugin package names in a composition resolve relative to the composition file's own directory. - Provide whatever credential that composition names —
DEEPSEEK_API_KEYfor DeepSeek's own models. See the credentials note below: it must be present in the dsh host environment, and this bundle forwards it explicitly.
Without steps 1–2 the Ouroboros tools still register and list fine; the first
interview/Seed/QA call is what fails. Everything except the dsh backend works
without them.
Credentials
dsh does not hand child processes the harness environment wholesale. Its
subprocess seam scrubs every credential-shaped name — anything matching
/KEY|PASSWORD|SECRET|TOKEN/i — plus every DSH_* name, so harness
credentials never leak into a spawned process implicitly. A plugin's explicit
env layer merges after that scrub.
So this bundle names a short allowlist rather than passing everything through:
ANTHROPIC_API_KEY— Ouroboros' default LLM backend.DEEPSEEK_API_KEY— thedshbackend loopback above.
To forward another (OPENAI_API_KEY, OPENROUTER_API_KEY, GOOGLE_API_KEY,
...), override the mcp-ouroboros row in your own profile's
cordis.patch.yml with that one extra name in env. A later layer replaces a
row's entire config rather than deep-merging it, so copy this bundle's
config block and add your line to it. Everything non-credential-shaped —
PATH, HOME, the OUROBOROS_* selectors — passes through untouched and
needs no row at all.
Startup failures and recovery
Connection failures are non-fatal (failOnStartupError: false): a machine
without uv on PATH yet still boots dsh normally, just without the Ouroboros
tools, and every other plugin keeps working.
Recovery is not automatic in general. Whether mcp-client retries at all
depends on your dsh build — the published 0.0.1-rc.1 has no reconnect loop,
current main has one with bounded exponential backoff that gives up after a
capped number of consecutive failures. Either way, after fixing the cause
(installing uv, setting a runtime), reload the plugin or restart dsh rather
than waiting for a reconnect.
What you get
36 tools under the ouroboros namespace — mcp__ouroboros__ouroboros_interview,
mcp__ouroboros__ouroboros_auto, mcp__ouroboros__ouroboros_evaluate,
mcp__ouroboros__ouroboros_ralph, and more. Each carries its own description,
so a plain ooo interview: <vague idea> or ooo auto: <goal> in chat is
enough — no extra prompting required.
License
MIT
链接
同类插件
loopx-project/loopx#dsh-loopx-plugin★ 6121
LoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
chuspeeism/dashi-taskboard#deepseek-harness★ 3269
把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述文件连接,而不是使用固定端口。
NanmiCoder/dsh-agent-teams★ 1864
AgentTeams 多智能体团队。
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 1224
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。
tong-io/tongflow#dsh-tongflow★ 1032
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。
LiPu-jpg/Openwrite★ 770
面向 DSH 的小说创作工作台,提供创作预设、大纲与人物管理、正文批注、审稿流程和受管理的本地 Python 后端。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。