Open Agent Coordination Protocol · v0.3.1
Coordinate agents without
the chaos.
A file-based protocol for multi-agent AI workflows. Two pillars — cross-agent communication and persistent shared memory. Across runtimes, projects, and machines. No daemons. No central server. Just files.
~/projects/my-project
bash
01 # Send a structured task to any runtime
02 $ oacp send my-project --to codex \
03 --type task_request --subject "Review PR #42"
04
05 → msg_a8f1c2 queued · codex/inbox
06 → thread #42 opened
07
08 # Watch the conversation
09 $ oacp watch --thread 42
10
11 17:02 claude → codex review_request
12 17:04 codex → claude review_feedback (2 minor)
13 17:06 claude → codex review_addressed
14 17:06 codex → claude review_lgtm
Pillar 1 · Communication
Typed messages, between any agents.
Async messaging between agents on any runtimes — Claude, Codex, Gemini, custom — through a shared filesystem.
[✓]
Multi-runtime inbox
Async inbox/outbox messaging across Claude Code, Codex CLI, Gemini, and any custom agent that can read and write files.
[✓]
Twelve typed messages
task_request, review_feedback, handoff, lgtm — with threading, priority, and conversation IDs.
[✓]
Structured review loops
review_request → review_feedback → review_addressed → review_lgtm with severity-graded findings and a quality gate before merge.
project · my-app
live
C
claude
code
drafting PR #42
X
codex
cli
reviewing
G
gemini
api
idle
claude→ review_request · "auth refactor" codex
codex→ review_feedback · 2 minor, 0 blocking claude
claude→ review_addressed codex
codex→ review_lgtm merge
thread #42 · 4 msgs · 8m quality gate ✓
Pillar 2 · Memory
One memory layer. Three dimensions.
Persistent shared memory across every dimension multi-agent work spans — between agents, between projects, between machines.
[✓]
Cross-agent memory
Every agent in a project reads the same project_facts.md, decision_log.md, open_threads.md, and known_debt.md at session start.
[✓]
Cross-project org-memory
Org-wide decisions, standing rules, and timestamped events at $OACP_HOME/org-memory/, readable from every project.
[✓]
Cross-machine git sync
Opt-in (since v0.3.0) — one plain git repo at $OACP_HOME carries memory across laptops, desktops, and CI runners.
$OACP_HOME / projects / my-app / ● writing
▾agents/
▾claude/
▸inbox/3 msgsin
▸outbox/12 sentout
▸dead_letter/emptydl
▾codex/
▸inbox/+1 newin
▾memory/shared durable
📄project_facts.md2.4 kbmd
📄decision_log.mdedited 3s agomd
📄open_threads.md1.1 kbmd
📄known_debt.md812 bmd
▸artifacts/build · research
▸checkpoints/progress
▸packets/review findings
📄workspace.jsonmetadatajson
▾$OACP_HOME/org-memory/org-wide
📄recent.mdauto-loaded⌘
📄rules.md12 rules⌘
📄decisions.mdorg decisions⌘
How it works
Three primitives. Any number of agents.
→
01
Dispatch
Send structured task requests to any agent runtime via inbox messages.
◇
02
Execute
Agents work in parallel across runtimes — Claude, Codex, Gemini, custom.
✓
03
Synthesize
Review loops with quality gates ensure every change meets the bar before merge.
Fundamentals
Boring infrastructure. On purpose.
⌘
File-based, no daemons
The protocol is plain YAML and markdown on the filesystem. No server to deploy, no database to maintain.
◌
Open and self-hostable
Apache 2.0, runtime-agnostic. Implement it in any language. The full SPEC is on GitHub.
⇋
Runtime-agnostic
Any agent that can read and write files can speak OACP. No SDK lock-in — just the spec.
Get started in seconds
One CLI. Wires every runtime.
Install the CLI, initialize a workspace, and your agents start coordinating through the same file tree.
install.sh
bash
01 # Install + init a project workspace
02 $ pip install oacp-cli
03 $ oacp init my-project
04
05 # Pillar 1 — cross-agent communication
06 $ oacp send my-project --to codex --type task_request \
07 --subject "Review PR #42"
08
09 # Pillar 2 — persistent shared memory (opt-in sync)
10 $ oacp memory init --remote git@github.com:org/oacp-memory.git
11 $ oacp setup claude --project my-project

















