← Discover MCPs and Agents
b
MCPAI & MLGitHub

baro

A CLI that turns a goal into a pull request - and a sandbox for testing concurrent AI coding agents on the Mozaik runtime.

Links

README

From the repo.

baro

Type a goal in your repo. Walk away. Come back to a verified pull request.

npm version npm downloads

baro is an autonomous software factory. It compiles your goal into a machine-checkable contract, splits it into a DAG of stories, builds them in parallel across isolated git worktrees, and blocks every merge behind fail-closed gates — declared tests, build, an evidence critic, write-surface ownership. You review a PR the gates already accepted.

One prompt → a 33-story plan → 808 passing tests → a PR, in 71 minutes. See a real run.

Install

npm install -g baro-ai

Needs Node 20+, git, and at least one backend: the claude CLI (default), codex, or any OpenAI-compatible endpoint. baro --doctor checks your setup.

Use

cd your-repo
baro "Add JWT authentication with role-based access control"

That opens the TUI: intake asks only what matters, you confirm the plan, the fleet runs.

For automation, detach and follow from anywhere:

baro --headless --detach --goal-file goal.txt   # prints a run id, returns immediately
baro watch <run-id>                             # follow milestone events
baro logs <run-id> --follow                     # tail the raw log
baro runs                                       # list live runs
baro stop <run-id>                              # stop one

Commands

CommandWhat it does
baro "<goal>"run a goal in the current repo (TUI)
baro --goal-file <path>read the goal from a file
baro --headless --detach ...background run for CI/automation; prints the run id
baro watch <run-id>follow a live run's milestones
baro logs <run-id> [--follow]print or tail a run's log
baro runs / baro stop <id>list / stop live runs
baro --resumeresume an interrupted run from prd.jsonnever re-plans
baro --continuefollow-up on the current branch — always re-plans
baro --doctorself-diagnostic: backends, auth, gh, permissions
baro loginbrowser sign-in for baro cloud
baro connect [--install-service]attach this machine as a cloud runner

The flags that matter

--llm claude|codex|openai|opencode|pi|hybrid|jigjoy   # backend for all phases
-m opus|sonnet|haiku          # model override (verbatim pass-through on other backends)
--effort low..max             # thinking per turn (default: high)
--parallel N                  # max parallel story agents (0 = unlimited)
--mode focused|sequential|parallel   # force an execution mode (default: intake proposes)
--quick                       # trivial goals: one story, no architect/critic/surgeon
--local-only                  # no pushes, no PRs — hard isolation
--shell-budget <seconds>      # per-command budget for story shell tools
--openai-base-url <url>       # any OpenAI-compatible provider (OpenRouter, vLLM, Ollama…)
--tier-map "light=openai:MiniMax-M3,heavy=claude:opus"   # mix backends per story tier

Per-phase overrides (--architect-llm, --story-model, …), .barorc, and everything else: docs.baro.rs

How it works

baro architecture — a Rust TUI host, a TypeScript orchestrator whose bounded contexts meet on the mozaik event bus, and machine gates in front of every merge

  • Contract first. An architect turns the goal into invariants and obligations that are machine-checkable — before any code is written.
  • A collective, not a coordinator. Story agents are peers on an event bus: they see the events that concern them, exchange notes, and suspend/resume on each other's work. There is no single context window everything must squeeze through.
  • Gates, not vibes. Declared tests, build-before-commit, an evidence critic that judges captured command output, and write-surface ownership — fail-closed, blocking every merge. The human reviews a PR the gates already accepted.
  • A live plan. The plan is a DAG the run negotiates with: runtime replanning adds and rewires stories mid-run, and a failed gate can spawn its own remediation story.

Drive it with Claude Code

baro pairs well with a coding agent in the driver's seat. Paste this into Claude Code inside your repo:

Install baro (npm install -g baro-ai) and run `baro --doctor` to verify the setup.
Then drive it for me:

1. Write my task as an evidence-rich goal file: name the exact files and line numbers
   the change touches, state the constraints, and say which tests must prove it.
2. Launch it detached: `baro --headless --detach --goal-file goal.txt`, note the run id.
3. Follow it with `baro watch <run-id>`; if it stalls, read `baro logs <run-id>`.
4. When the pull request opens, review the diff against the goal, run the project's
   test suite yourself, and report back: what shipped, what the gates proved, and
   anything that needs my eyes. Merge only if everything is green.

Keep goals narrow — one concern per run. If the run fails, read why, tighten the goal
with the new evidence, and launch again.

Cloud

No machine, or no Claude/Codex subscription? Run the same fleet on app.baro.jigjoy.ai — nothing to install, isolated sandboxes, our keys. Or keep your own hardware in the pool: baro login, then baro connect --install-service.


Docs: docs.baro.rs · Issues: github.com/jigjoy-ai/baro/issues · Twitter: @lotus_sbc

Collected info

  • 112 stars
  • 10 forks
  • Language: TypeScript
  • Source updated: 8/15/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.