Self-host Cotal
v0.118.0Pub/sub protocol for multi-agent AI coordination
- Stars
- 365
- Port
- 7799 (Web dashboard (default bind))
What is Cotal?
Cotal provides a shared pub/sub space where AI agents from any provider can work together. The system uses NATS and JetStream for durable messaging, presence tracking, and three addressing modes: multicast to channels, unicast to specific peers, and anycast to roles. The reference implementation is in TypeScript with a CLI to start local meshes, spawn agents, and observe activity via a terminal TUI or web dashboard. Connectors exist for Claude Code, OpenCode, Hermes, Codex, Cursor, Jcode, and pi. The protocol reuses A2A data shapes for interoperability but uses its own NATS-based transport. Self-hosting is free under Apache-2.0; a hosted Cotal Cloud is in closed alpha.
Should you self-host Cotal?
Cotal scores 50/100 on selfhost.directory (how scoring works) and ranks #97 of 209 in AI Agents. It has 365 GitHub stars.
It shipped 18 stable releases in the past year. The latest, v0.118.0, came out on 28 October 2026.
Setup is moderate: expect some configuration beyond a single command. It is Apache-2.0-licensed and written mostly in Typescript.
Its closest alternative on selfhost.directory is Orca (91/100, 108 815 stars). It scores higher overall, so compare the two before you pick. See Cotal vs Orca side by side.
Features
- A2A interoperability
- Cross-machine mesh
- Cross-provider agent connectors
- Durable message delivery
- MCP tool integration
- Mesh manifests (cotal.yaml)
- Multi-agent pub/sub coordination
- Multi-space isolation
- Presence and live roster
- Terminal TUI console
- User authentication via OIDC/IdP
- Web Dashboard
- Workflow runs (Cotal Lang)
Cotal README
FAQ
Who is behind Cotal?
Second-time founders Sven Jonscher (CEO, agent research at ETH AI Center) and David Farah (CTO, CS at ETH Zurich and EPFL). Previously built Kayba with 2,500+ GitHub stars.
Can my agent talk to cotal.ai directly?
Yes, the site runs an MCP server at https://cotal.ai/mcp with tools to search, read build log, send feedback, join waitlist, subscribe, or request a call.
Why a shared space instead of an orchestrator?
An orchestrator becomes a single point of failure. In a shared space, handoffs are durable and state is shared, so there's no lost context or silent overwrites.
How is this different from agent teams by Anthropic, OpenAI or xAI?
Those build teams around their own models. Teams already mix Claude Code, Codex, and Cursor. Cotal is where all agents and people work together, on your servers or theirs.
How is this different from MCP or A2A?
MCP connects an agent to its tools. A2A connects one agent to another. Cotal is the space around them: durable handoffs, shared state, verified identity, replayable log, no single vendor in critical path.
Is it open source? What does it cost?
It's Apache-2.0 and self-hosted, so running it on your own machines costs nothing. Cotal Cloud hosted mesh is in closed alpha behind a waitlist.
Will it work with the agents I already have?
Yes, connectors exist for Claude Code, OpenCode, Hermes, and the open wire contract allows any framework to join.
Can an agent impersonate another?
No. The sender identity rides the NATS subject which the server polices against the agent's JWT; a payload claiming a different sender is rejected.
Why NATS underneath, and does it run distributed?
JetStream provides durable delivery, per-reader bookmarks, and late-join history. NATS clustering takes the same subjects, streams, and accounts to a distributed cluster unchanged.
Is Cotal TypeScript-only?
The protocol is language-agnostic; TypeScript is the only implementation today, but any language with a NATS client can implement the contract.
Why not just A2A or MCP?
MCP connects an agent to its tools; A2A connects two agents in a pairwise request/response. Cotal provides a live shared space with presence, channels, durable delivery, and topology-free coordination that neither provides.
More in Distributed Systems
etcdA self-hosted, open-source distributed key-value store using Raft consensus for critical data in clustered systems. CNCF graduated project.
exoSelf-hosted, open-source AI cluster that links your Macs and Linux boxes to run large LLMs locally via MLX, with Thunderbolt 5 RDMA and an OpenAI/Ollama-compatible API.
hadoopOpen-source, self-hosted framework for large-scale data work: HDFS storage, YARN scheduling and MapReduce jobs, scaling from one machine to thousands.
mesosOpen-source Apache Mesos is a self-hosted cluster manager that pools CPU, memory and GPU across your own servers for frameworks like Hadoop, Spark and Jenkins.
minikvA self-hosted, open-source distributed key-value and object store written in Rust that achieves strong consistency through Raft consensus and two-phase commit.
nsqOpen-source self-hosted distributed messaging platform: push-based pub-sub over topics and channels, in-memory queues that spill to disk, plus the nsqadmin web UI.
OpenAFSOpenAFS is a self-hosted, open-source distributed filesystem providing location-independent file sharing across Linux, UNIX, macOS, and Windows with Kerberos auth.
temporalSelf-hosted, open-source workflow engine that keeps application logic durable across crashes and retries, with multi-cluster replication and archival.
xtreemfsXtreemFS is a self-hosted, open-source distributed file system with fault-tolerant replication, POSIX compatibility, and mounts on Linux, Windows, and macOS.
bacalhauOpen-source orchestration framework for running Docker and WebAssembly jobs close to their data; self-hosted via one binary as client, orchestrator or compute node.
CondensationAn open-source distributed data system for app builders: conflict-free sync, end-to-end encryption and self-hosted store servers on a file system or MySQL.
consulSelf-hosted Consul is a service networking tool for service discovery, service mesh with mTLS, API gateway and health checks across multi-datacenter infrastructure.





0 comments