Open-source terminal AI agent. Bring 180+ providers or log in with the Claude/ChatGPT/Gemini subscriptions you already pay for. One 85 MB binary. No accounts. No lock-in.
Speaks to all of them, natively:
pty-captured recordings of the real TUI — real renderer, real agent loop, never a mock-up.
Mid-turn failover
GoatCode retries the provider, walks your fallback chain live — switches, says so, and finishes the answer. No crash, no lost context.
The switch is sticky: the next launch starts on the provider that worked.
goat config set fallback-models \ '["openrouter/claude-sonnet","groq/llama-3.3-70b", "deepseek/deepseek-chat"]'
Background work gets its own budget too: set small_model and compaction + explore-subagents route to the cheap model while your main turn stays on the frontier one.
Why GoatCode
Your terminal, your keys, your existing plans. Not a comparison chart trick — every cell is a feature you can test in sixty seconds.
| ▄███▄ GoatCode | Claude Code | Codex CLI | OpenCode | |
|---|---|---|---|---|
| Cost to start | $0, MIT | subscription | subscription/API | $0, provider keys |
| Providers | 180+ + any compatible endpoint | Anthropic only | OpenAI only | many |
| Use your existing subscriptions | ✓ OAuth → credentials | only Anthropic's | only OpenAI's | partial |
| Failover when quota dies | ✓ built-in, mid-turn | — | — | manual |
| Desktop control (click/type/launch) | ✓ built-in | — | — | — |
| MCP / skills / plugins | ✓ ✓ ✓ | ✓ · plugins ✗ | — | ✓ |
| Single static binary | ✓ Bun-compiled, 5 platforms | Node | Node | various |
| Prompt caching + live cost in USD | ✓ automatic, /cost | silent | — | varies |
| /rewind — transcript + files restored | ✓ | ✓ | — | — |
| Parallel subagents (3 at once) | ✓ | serial only | — | — |
| Session search across all history | ✓ /search | — | — | — |
Features differ by vendor version — spot-check anytime: goat --help lists everything.
Log in, don't sign up
Browser / device OAuth — one command each. No new accounts, no extra invoices.
goat auth claude --oauthgoat auth codex --oauthgoat auth gemini --oauthgoat auth kimi --oauthgoat auth grok --oauthgoat auth github-copilot --oauthAPI-key providers too — OpenAI, DeepSeek, Groq, Mistral, Together, Fireworks, xAI, OpenRouter, Moonshot, Cerebras, Ollama, LM Studio, llama.cpp… set the usual env var or goat auth <id> --key. Any endpoint speaking OpenAI / Anthropic / Gemini wire formats slots in with goat addp. Check what resolves: goat providers --check.
Computer use
The computer tool clicks, types, scrolls, launches apps, and reads what's on screen — vision included, screenshots go straight into the model.
Permission-gated by default: every destructive action asks — or plan/bypass modes decide per-session.
And reads are parallelized — a five-file exploration costs one round-trip, not five.
Extensible
Add any stdio / http / sse server — their tools land beside the built-ins.
goat mcp add context7 npx -y @upstash/context7-mcpDrop a folder into ~/.goatcode/skills/. Progressive disclosure keeps context lean. /skills lists everything loaded.
One config line points at a directory of commands + skills. /plugin reload picks up edits live.
Claude-Code-compatible PreToolUse / PostToolUse / Stop shell hooks. Guardrails as code, not vibes.
Project memory loaded into every session. /init drafts it from a real read of your codebase — commands, architecture, gotchas with file:line examples.
goat self-update swaps the running binary for the latest release atomically. The TUI hints the moment a release lands.
Toolbox
System prompt + tools cached between turns — repeated context bills at 10% of input price. Savings shown live in /cost.
Every edit prints its colored diff the moment it lands. /rewind 4 restores transcript and files to turn 4.
Bypass permissions that actually bypasses — every tool auto-approves, mid-turn, no prompts.
3 research agents, dispatched in one message.
Full-text search across every saved session.
@file completion and /model sonnet shortcuts.
Slash commands
shift+tab cycles ask → accept-edits → plan → 🐐 GOAT MODE · ctrl+t task panel · ctrl+v attach image · esc interrupt
CI & scripts
Print mode reads stdin, writes JSON, and its sessions stay resumable — goat -c picks up where CI left off.
Unknown models show honest zeros and a no price known note instead of a made-up number.
$ cat error.log | goat -p "why did this fail?" --output-format json { "type": "result", "is_error": false, "session_id": "…", "model": "…", "usage": { input_tokens: 512, output_tokens: 42 }, "cost_usd": 0.002166 } $ goat /usage all all time · 41 sessions · 1,284,113 in / 204,992 out · $4.31
Quick start
Any OS with Node ≥16 — fetches the right binary. No Python, no node_modules black hole.
Pick a subscription OAuth flow or paste an API key.
You're in. Alias any model with /model sonnet, chain fallbacks, start shipping.
windows powershell -c "irm …/install.ps1 | iex"
unix curl -fsSL …/install.sh | bashFAQ
goat auth claude --oauth → browser login → credentials, done. Same for ChatGPT, Gemini, Kimi, Grok, and Copilot.irm | iex install, native computer-use, ConPTY-tested TUI. CI runs on ubuntu, windows and macos on every push.If GoatCode saved your quota an evening, a ★ is the cheapest thank-you.