Cotal CLI
An open standard and CLI for a shared space where Claude Code, Codex and OpenCode exchange messages and tasks
- 369 ★ on the repository
- Last commit
- Apache-2.0
Broad access
Why this level
- Starts agents and a background broker that read and write files in the project
- An agent can spawn other agents on the mesh with cotal_spawn
- The installer is downloaded from the internet and run in a shell
Install
- Works in
Manual install
npm install -g cotal-ai && cotal setupWorks on Windows and on systems with Node 22 or newer. The cotal setup command starts nothing and installs skills and the default persona.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Starts agents and a background broker that read and write files in the project
- An agent can spawn other agents on the mesh with cotal_spawn
- The installer is downloaded from the internet and run in a shell
This is third-party code. Review the repository files before installing.
What it does
Cotal is a publish-subscribe protocol for AI agents with a reference implementation in TypeScript on top of NATS and JetStream. Agents in one space see each other and address messages three ways: to a channel for all subscribers, to one agent through a queue with guaranteed delivery, or by role, where exactly one free worker takes the task. Every agent has a presence status and a card in the A2A format. You set the team structure: equal peers, a manager with workers or a chain of command, and you can mix them. A cotal.yaml manifest describes the team, and spaces run in parallel without seeing each other. Claude Code, OpenCode, Codex and three more agents can join, and each gets the same cotal_* tools. Workflows are written in the Cotal Lang language. Every action goes into a step journal, so a stopped run resumes on any host. You can watch the network in a terminal with cotal watch and cotal console, or in a read-only web dashboard.
Who it is for. For developers who run several agents at once and want them to coordinate with each other without a single dispatcher.
Good fit when
- You need a reviewer and a builder on different agents handing tasks to each other by message
- A task should go to any free agent with the right role
- The work lasts hours and a run must survive a restart and continue from its step journal
- Agents on different machines have to join one shared space
Not a fit when
- There is one agent: the overhead of a broker and a space will not pay off
- You need a built-in scheduler with a single manager: Cotal leaves the structure to you
- You cannot install a NATS broker and run background processes on the machine
Example request
Bring up a two-agent team with cotal: a builder writes code, a reviewer checks it and replies in the channelLimitations
Node.js 22 or newer is required. The install script puts Cotal into your home folder without sudo, and you can read it first or run it with --dry-run. The script targets POSIX systems, so on Windows Cotal is installed through npm. The cotal setup command starts nothing but places skills into agent folders. By default the broker admits agents by JWT, and the --open mode without checks is valid only on a loopback address. The web dashboard is configured separately with an explicit credential and is read-only.
How to disable. Stop the mesh with cotal down. Remove the skills and the cotal-skills plugin from agent folders by hand. Remove the home-folder install the way you installed it, for example npm uninstall -g cotal-ai.
FAQ
How do I install Cotal?
On macOS and Linux run curl -fsSL https://get.cotal.ai | sh; on Windows, or with Node 22 installed, run npm install -g cotal-ai and then cotal setup. You can also hand the agent the link https://docs.cotal.ai/prompt.md.
Which agents are supported?
Claude Code, OpenCode, Codex, Hermes, Jcode and pi. Cotal skills are also installed for Cursor, Gemini CLI and Windsurf into ~/.agents/skills.
How are messages addressed?
Three ways: to a channel for all subscribers, to one agent through a guaranteed-delivery queue, and by role, where one free worker claims the message.
How is Cotal different from MCP and A2A?
MCP connects an agent to its tools and A2A links two agents with request-response. Cotal adds publish-subscribe for many agents in one space, with presence and channels. From A2A it takes only the data shapes and uses its own transport.
What is cotal up --open?
A broker without authentication, reachable on a loopback address only and without message persistence. A regular cotal up uses JWT and per-agent permissions.
Discussion
No questions or reviews yet.
Related
CLI toolsA terminal workspace where several CLI agents like Codex, Claude and Gemini exchange messages and work on one task under human oversight
A local dashboard for many Claude Code sessions: each job gets its own context and todo, agents spawn child agents and message each other
A CLI that lets agents in different terminals message, watch and spawn each other
CLI Agent Orchestrator
CLI Agent Orchestrator (CAO)
A CLI that coordinates several coding agents: a supervisor delegates tasks to specialists in parallel or in sequence across isolated tmux sessions
A memory and coordination layer for coding agents: specs and issues live in git while agents work in parallel
Multi-agent orchestration for Claude Code: teams, roles, autopilot and task routing across skills and subagents
README in short
The author explains the idea of a shared space for agents and compares Cotal with MCP and A2A. A separate section lists what Cotal adds on top of NATS: sender identity, permissions and message replay.