MCP

Cotal: An Open-Source Pub/Sub Standard That Lets AI Agents Share a Collaboration Space Across Apps and Machines

For teams who want multiple AI agents to collaborate locally across applications and machines: install the CLI, then run cotal up to bring up the local mesh and try it out. Before you start, know that the CLI sends telemetry by default — turn it off with cotal telemetry off if needed.

Official source · Cotal-AI/Cotal GitHub

Install

curl -fsSL https://get.cotal.ai | sh

Cotal 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/down manages local background processes, cotal setup writes local configuration (space, application configuration, persona); cotal console is 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_invoke are 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.