Open Agent Coordination Protocol · v0.4.3

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.

4 runtimes
12 message types
0 servers required
apache 2.0
~/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, Cursor, 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. Human-approved continuation grants (since v0.4.3) let in-scope follow-up rounds run without a fresh per-round confirmation.

[✓]

Signed messages

Opt-in Ed25519 signing — receivers verify against local key pins before parsing a message, no network at verify time. Under enforce mode (since v0.4.2), unverified messages are rejected at intake and quarantined as evidence.

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.

Read the memory spec
$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

One loop. Any number of agents.

01

Plan

Declare the work before it runs — minutes, files, side effects — in a typed task_profile any runtime can read.

02

Coordinate

Agents work in parallel across runtimes — Claude, Codex, Cursor, Gemini, custom — with review loops and quality gates. When a run drifts from its declaration, the protocol pauses it for a human.

03

Learn

Every autonomy decision writes an audit record, and shared memory carries decisions and outcomes into the next run.

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
12
13 # Optional — sign + verify messages (v0.4)
14 $ pip install 'oacp-cli[crypto]'
15 $ oacp key gen --agent claude