编码 agent 的开放编排层。
operad
$ operad pending
4c1e9a02 dev confirm
Rotate the http token
waiting: ready to merge
actions: dev:merge, dev:reject, dev:rework,
dev:reverify, dev:cancel
$ operad dev:merge T-0022-token-rotate --yes
$ operad history T-0022-token-rotate
- 22:28:40 review pass 58s
- 22:30:02 you chose merge
- 轮换 http tokenT-0022-token-rotate待合并
- 让 serve 干净退出T-0023-serve-stop评审有意见
- 给 Claude Code 的 channelT-0024-mcp-channel开发没有产出
- TUI 的主题文件T-0021-tui-themes运行中
内核只有三个词:flow、pending、history。
其余都是插件。
计划、开发、检查、评审、合并。
谁都能开发,谁都能评审。
仓库里有插件的 worker 是 claude、pi 和 radian。每个都是要你自己启用的插件;按仓库来选,worker 用一个,reviewer 换另一个。
// .operad/dev.json
{
"worker": { "use": "claude/agent",
"args": ["--model", "sonnet"] },
"reviewer": { "use": "pi/agent",
"args": ["--thinking", "medium"] }
}
内核就三个词。
flow
一件事要走的路:若干步骤,等你,等时间,结束。operad flows 列出已加载的 flow。
pending
所有在等你的事,放在一个列表里,每一项带着它能做的操作。
## dev run · started 21:38
**2026-11-08**
- 21:38:41 worktree ready 1s
- 21:38:44 work done 41m
- 22:20:01 review fail 58s
- 22:21:01 work attempt 2 after fail
- 22:22:02 confirm reverify 8m
- 22:30:02 you chose merge
history
3
个词要学。其余的词都归插件,用不到的你根本不会遇到。
- dev 计划、任务、评审、合并
- chat 和 agent 的长对话
- bot 一个目录、一个 agent、一组 skill
- pool 每个 agent 共用的额度
插件是 TypeScript 文件,不用构建就能加载,小到让 agent 当场就能写出来。
插件运行前先做类型检查。
operad plugin check
等你的事,就是一个列表。
下面是示例任务。点一行展开;在等你的可以 merge 或 reject。
-
已合进 main。任务的 worktree 和分支已清理。
- 20:12:09 merge done 4s - 20:12:14 cleanup done 1s -
检查正在 worker 的提交上运行。
- 21:40:31 verify running 2m -
worker 正在任务的 worktree 里提交。
- 21:38:44 work running 11m -
检查通过,reviewer 也没发现要拦住的问题。现在等你。
- 22:20:01 verify pass 8m - 22:28:40 review pass 58s - 22:28:41 waiting: ready to merge -
reviewer 的意见等你定:返工、reject,或者照样 merge。
- 22:01:12 review fail 58s -
worker 没有加任何提交。带上批注退回去,或者取消。
- 22:03:50 work done 3m -
等 T-0022-token-rotate 合并。
终端、Claude Code、iPhone。
终端客户端。
operad tui 会找到 operad serve,找不到就启动它,列出待办和运行中的东西,在列表旁边打开某一项。a 执行主操作,: 打开命令面板,q 退出。
Claude Code,走 MCP。
operad mcp 是一个走 stdio 的 MCP server。主 agent 可以读 pending、running 和 history,运行插件命令,做 config.json 允许的操作。它不会替你做决定:merge 始终归你。
它的工具有 list, show, section, pending, answer, running, history, command and act。
// .mcp.json
{ "mcpServers": {
"operad": { "command": "operad",
"args": ["mcp"] } } }
iPhone app。
运行 operad pair,扫码。app 里能看到 pending、running、每个对象的各个部分和它的 history,merge 之前会再问你一次。server 默认只监听本机,除非你给它一个局域网或 Tailscale 地址。
$ operad pair
url http://192.168.1.20:7480
token <你的 token>
在 operad app 里扫这个:
在你自己的机器上跑。
operad 还在开发中。下面是它自己的仓库怎么用 operad 跑的。
operad init
operad repo add .
operad plan add --slug dogfood --title "Run operad on operad" < request.md
operad task add --plan P-0001-dogfood --slug switch --title "Switch" < task.md
operad dev:confirm P-0001-dogfood
operad serve
operad pending
operad dev:merge T-0001-switch --yes
你需要 git、一个带 remote 的仓库、Bun 运行时,以及 PATH 里有 claude、pi 或 radian 其中之一。命令和 config.json 的各个 key 写在仓库的 docs/manual.md 里。