Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 25 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,40 +36,42 @@ OACP solves this with a filesystem-based protocol that requires no server, no da

## Where OACP Fits

Three protocols are shaping multi-agent development. They solve different problems at different layers:
Four protocols are shaping multi-agent development. They solve different problems at different layers:

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ A2A β€” Agent discovery & remote messaging β”‚ internet-scale
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ OACP β€” Agent coordination & workflows β”‚ local filesystem
β”‚ OACP β€” Async workflow messaging β”‚ local filesystem
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ ACP β€” Client ↔ agent sessions β”‚ IDE / editor
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ MCP β€” Agent-to-tool integration β”‚ tool access
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

**[MCP](https://modelcontextprotocol.io/)** gives agents access to tools and data sources β€” databases, APIs, file systems. It defines how an agent *calls a tool*.

**[A2A](https://github.com/a2aproject/A2A)** lets agents discover and communicate with each other across the internet. HTTP-based, enterprise-grade, backed by 150+ organizations under the Linux Foundation.
**[ACP](https://github.com/agentclientprotocol/agent-client-protocol)** (Agent Client Protocol, by Zed Industries) connects clients to coding agents. JSON-RPC, primarily over stdio today. Adopted by Zed, JetBrains, Neovim, and 28+ agents in its registry.

**OACP** coordinates agents working together on the same machine. File-based, zero-infra, designed for dev teams and CI pipelines.
**[A2A](https://github.com/a2aproject/A2A)** lets agents discover and communicate with each other across the internet. HTTP-based, enterprise-grade, backed by 150+ organizations under the Linux Foundation.

### OACP vs A2A
**OACP** is the async messaging layer for multi-agent workflows β€” typed workflow messages (task dispatch, code review, handoff, brainstorm) over persistent transport that survives crashes. Zero infrastructure required.

Both coordinate agents β€” but for different topologies:
### How they compare

| | A2A | OACP |
|---|---|---|
| **Transport** | HTTP/HTTPS β€” always-on servers | Filesystem β€” read/write files |
| **Best for** | Cross-org, internet-routable agents | Local teams, dev machines, CI |
| **Infrastructure** | TLS, auth, HTTP endpoints | A shared directory |
| **Offline support** | Agent must be reachable | Native β€” messages wait in inbox |
| **Audit trail** | Requires log infrastructure | The inbox directory *is* the log |
| **Setup** | Deploy servers + configure networking | `oacp init my-project` |
| | MCP | ACP | A2A | OACP |
|---|---|---|---|---|
| **Solves** | Tool access | Client ↔ agent sessions | Agent discovery + networking | Async workflow coordination |
| **Transport** | JSON-RPC (stdio/HTTP) | JSON-RPC (stdio; HTTP draft) | HTTP/HTTPS | Filesystem (YAML) |
| **Best for** | Connecting agents to APIs, DBs, files | IDE ↔ coding agent interaction | Cross-org, internet-routable agents | Local teams, dev machines, CI |
| **Infrastructure** | MCP server per tool | ACP-capable client + agent | TLS, auth, HTTP endpoints | A shared directory |
| **Offline support** | N/A (synchronous) | N/A (session-based) | Agent must be reachable | Native β€” messages wait in inbox |
| **Setup** | Install MCP server | Use ACP-capable client + agent | Deploy servers + networking | `oacp init my-project` |

They complement each other. A2A connects agents across the internet. OACP coordinates agents on your machine. A gateway between OACP inboxes and A2A endpoints is a natural bridge β€” and A2A's own community is [exploring inbox patterns](https://github.com/a2aproject/A2A/discussions/792) that validate this design.
These protocols are **complementary, not competing**. An agent can use MCP to access tools, speak ACP for IDE integration, and check OACP inboxes for multi-agent coordination β€” different layers, no conflict.

**OACP + MCP work together.** An agent can use MCP to access tools (databases, APIs) while using OACP to coordinate with other agents (review loops, task dispatch, shared memory). Different layers, no conflict.
A2A connects agents across the internet. OACP coordinates agents on your machine. A gateway between OACP inboxes and A2A endpoints is a natural bridge β€” and A2A's own community is [exploring inbox patterns](https://github.com/a2aproject/A2A/discussions/792) that validate this design.

## Install

Expand Down Expand Up @@ -158,12 +160,14 @@ See [QUICKSTART.md](QUICKSTART.md) for a complete 5-minute walkthrough.

## Scripts

OACP ships 13 scripts β€” the key ones you'll use most:
OACP ships kernel scripts β€” the key CLI commands you'll use most:

- **`init_project_workspace.sh`** β€” create a new project workspace (the first script you run)
- **`send_inbox_message.py`** β€” send protocol-compliant messages between agents
- **`preflight.py`** β€” unified quality checks (CI runs this on every PR)
- **`oacp_doctor.py`** β€” environment and workspace health check
- **`oacp init`** β€” create a new project workspace (the first command you run)
- **`oacp add-agent`** β€” add an agent to an existing project workspace
- **`oacp setup`** β€” generate runtime-specific config files (Claude, Codex, Gemini)
- **`oacp send`** β€” send protocol-compliant messages between agents
- **`oacp doctor`** β€” environment and workspace health check
- **`oacp validate`** β€” validate inbox/outbox YAML messages

Run `make help` to see all available Makefile targets, or see [SPEC.md](SPEC.md) for the full script inventory.

Expand Down