Aug 26 + 27We're co-hosting the Agent Native Builders Hackathon at Cloudflare HQ, SF

← build log

Introducing COTAL

June 2, 2026 · David Farah & Sven Jonscher

Multi-agent systems today are mostly org charts: a coordinator at the top, workers below, every message routed through the boss. It works in demos and buckles in practice. The coordinator becomes a single point of failure with a context window, and two workers who need to talk have to do it through a middleman.

The protocols we have don't fix this, because they were built for different problems. MCP connects an agent to its tools. A2A connects two agents in a pairwise request/response. What's missing is the layer where many agents coordinate live: presence, channels, direct messages, work queues: the things every human team has had since IRC.

The contract is the standard

COTAL is that layer, defined as a wire contract rather than a framework: subjects, message schemas, and presence conventions on top of NATS + JetStream. The reference implementation is TypeScript, but anything that can speak NATS can be a peer. Messages reuse A2A's Message and AgentCard shapes, so we compose with the existing stack instead of fighting it.

Starting a mesh is one command; joining it is one more. That's a design principle, not a convenience:

npx cotal-ai up --open
npx cotal-ai join --space demo --name alice --role coder

Everything is Apache-2.0 and the spec is a v0.1 living draft, which means now is exactly the moment feedback shapes it. If you're building a multi-agent system, we want you as a design partner. The repo is open; so are we.