The most committed coding agent.
carlos is a single static binary around 30 MB. No CGO, cross-compiled for darwin and linux on amd64 and arm64. Multi-provider (Anthropic, OpenAI, OpenRouter, Ollama, Gemini), with autonomous skill induction, first-class sub-agent supervision, and an event log that survives crashes.
Why carlos.
Four bets baked into the architecture.
Frames are the envelope
Personal plus N user-defined. Each frame carries its own provider override, vault subtree, MCP gating, glyph, accent, and orchestrator mode. Ctrl+F opens the switcher.
Propose, don't publish
Skills induced from your transcripts land in the approval queue. Cross-provider judge, replay-eval, human gate. Nothing auto-publishes.
Supervisor as marquee surface
Eleven-state lifecycle, structured contracts, steer / interrupt / stop verbs. The event log is the source of truth; the TUI is a projection.
Delegation on by default
Out of the box, orchestrator mode (spawn cap 5). The model is told to delegate by default for anything beyond a trivial single-line edit, split across parallel sub-agents when the parts are independent, and never pauses for per-turn confirmation. /mode solo shifts to single-agent discretion; tight caps at one child at a time.
Have a look around.
Six front doors into the docs.
Quickstart
Onboarding, your first chat, keys worth knowing, the headless CLI verbs.
envelopeFrames + modes
Per-frame provider override, vault subtree, MCP gating. Solo / tight / orchestrator modes.
marqueeSub-agents
Ten-state machine, four-part contracts, steer / interrupt / stop verbs, safety rails.
6 phasesResearch mode
decompose, search, fetch, read, synthesize, verify. Cited reports with stable IDs.
3-upAgent loop comparison
Claude Code, carlos, and Codex side-by-side. Where they converge and where they diverge.
SKILL.mdSkills
SKILL.md packaging, where they live, propose-don't-publish induction.
Under the hood.
State persists to ~/.carlos/. The event log is SQLite with WAL; memory is FTS5 over markdown summaries. Trusted-workspace store, schedules, and user prefs are flat files. Tool-use shape is Anthropic's canonical; adapters normalize OpenAI, OpenRouter, Ollama, and Gemini against the same internal event. The MCP client ships built-in; stdio servers register their tools under <server>__<tool>, gated per-frame.
Releases are signed tarballs from a v* tag via goreleaser; the Homebrew formula bumps automatically. GPL-3.0. Read the source.
If you're an LLM trying to learn about carlos in one shot, fetch llms.txt. It's the canonical condensed reference: every tool, slash command, file path, and architectural commitment in 250 lines of plain text.