Install
curl -fsSL https://get.cotal.ai | shCotal is an open-source publish/subscribe (pub/sub) standard for AI agents, letting agents and services across different applications and machines share a single collaboration space. Its TypeScript implementation runs on top of NATS + JetStream and includes a CLI, connectors, a process manager, persistent workflows, and observability tooling.
Who It's For
- Developers or teams who want multiple AI agents to work together locally across applications and machines, especially scenarios where you want to compose agent capabilities through a unified service contract (describe and invoke).
- Suitable for users who are willing to run a set of background processes locally (mesh, delivery daemon, manager).
- Not suitable if: your need is purely one-off scripts, you can't accept locally resident background processes, or your environment lacks Node 22.10+ (and the official curl installer isn't convenient) — in that case, verify feasibility first. For Windows users, the officially recommended path is the npm installation method.
First Try in 3 Minutes
The recommended main path is the official curl installer (writes to your home directory, no sudo needed, and opens a guided setup):
curl -fsSL https://get.cotal.ai | sh
Once installed, start the local environment:
cotal up
cotal up starts the local mesh, delivery daemon, and manager in the background. You can then:
cotal spawn: open an agent in the terminal.cotal console: view the status of the team (agents).
A low-risk first observation step is to run cotal console and check the local team status; it performs no remote write operations. To stop the local stack, the official command is cotal down.
Secondary method (explicitly given by the official docs, not an equally primary entry point): if you already have Node 22.10+ or are on Windows, you can use npm install -g cotal-ai, then run cotal setup. The setup process prepares a space, configures the applications you select, and seeds a default persona; if you only want the preparation without applying the configuration, use cotal setup --configure-only.
Note: the guided setup writes local configuration (space, application configuration, persona) — this is a local state write, not a read-only action.
Use Cases
Case 1: Check local team status. Scenario: you've just installed Cotal and want to confirm the local mesh is running. How: first run cotal up to start the background processes, then run cotal console. Expected result: you see a display of the team members in the current space; this is an observation step that can be directly confirmed within the evidence scope.
Case 2: Have an agent request help from teammates. Scenario: after opening an agent in the terminal with cotal spawn, you want it to bring in new teammates. How: the tools Cotal exposes to agents include cotal_spawn (request teammates) as well as cotal_describe and cotal_invoke (command contracts for discovering and invoking services within the scope its connectors and authorizations allow). Expected result: the agent uses these tools to initiate teammate requests or invoke service contracts; the official documentation doesn't list the specific output details one by one — what can be confirmed is the existence of these tools and how they are triggered.
Boundaries of Use
- Read/write nature:
cotal up/downmanages local background processes,cotal setupwrites local configuration (space, application configuration, persona);cotal consoleis an observational operation. Don't treat local writes as "read-only." - Side effects and confirmation points: the CLI sends usage telemetry by default; this is a side effect explicitly stated by the official docs, and you can turn it off before starting with
cotal telemetry off. - Credentials and permissions: an agent's invocation capabilities are limited by its connectors and grants; the official docs don't state the default scope of grants, so confirm this in your own environment before use.
- Unconfirmed information: the specific telemetry data content, the network exposure scope of the mesh, and the exact return formats of
cotal_describe/cotal_invokeare not explained on the official pages, so privacy and network boundaries cannot be judged on your behalf. - The above does not constitute an independent security conclusion; whether it fits your environment is for you to judge based on the knowns and unknowns listed above.