Albatross is an open source, terminal-first coding agent that routes every task across multiple models at the execution layer. A selector picks the right orchestrator, coder, and reviewer tier per task, and every decision lands in an auditable ledger you can replay. Local or cloud, your models, your keys, one TUI.
Albatross v2.1.0 · a small, terminal-first coding harness backend ollama · model qwen2.5-coder:7b · approval dangerous-only › add a function in src/util.rs that lowercases a string and trims it Read src/util.rs Edited src/util.rs --- src/util.rs +++ src/util.rs +pub fn normalize(input: &str) -> String { + input.trim().to_lowercase() +} Apply? [y/n/a]: y ✓ checkpoint saved (1 file), /undo to revert 3.4k in · 412 out · $0.001 this turn · $0.0013 session
Describe a model stack that blends local and frontier models. A selector routes each task to the right tier. Unlike a black box, every decision lands in a durable, auditable ledger: which model, why, what it cost.
› /route select add OAuth login with token refresh and tests selector openrouter/fusion "multi-file auth change, high blast radius" ├─ orchestrator high → anthropic/claude-sonnet-4.5 ├─ coder high → anthropic/claude-sonnet-4.5 effort: high ├─ review production → openrouter/fusion └─ security openrouter/fusion receipt → .albatross/routes.jsonl · explain with /route explain · totals with /route spend
Read, edit, grep, shell, run tests. Then the parts other harnesses don't have.
Switch providers mid-session. Ollama, LM Studio, MLX, llama.cpp, Anthropic, OpenRouter, OpenAI, Grok: the tools, commands, and session log don't change.
A selector model picks low/medium/high orchestrator and coder tiers per task, plus review and security models, then switches the active coding model for you.
Revert the last agent turn's file mutations, including files the agent created or files that weren't tracked when the turn started.
Branch the conversation and workspace to try two fixes, diff them, and /path pick the winner. No worktree required.
A generate→evaluate loop where a separate critic agent scores each pass against a rubric until it clears the bar. The generator never grades itself.
Every cloud turn prints its own cost plus the running session total on the status line. Local turns just show tokens. No surprises at the end of the month.
Unattended generate→evaluate rounds with auto-reset when context fills, bounded by budget and deadline. Wake up to a morning report.
Switch to multi-model deliberation for hard reviews, architecture tradeoffs, and high-stakes debugging, then switch back.
Drop servers into mcpServers in your config; their tools show up to the model on next launch. Trust is explicit, per-config-hash.
Paste API keys once into a 0600 file, or OAuth into a ChatGPT/Codex or SuperGrok subscription with /login. Env vars still win when set.
Every mutating call shows you the diff first, with allow-once / allow-session / always-allow caching.
Writes a structured handoff artifact and starts a clean session seeded with it, with better coherence on long tasks than summarizing in place.
Albatross talks to one backend at a time. Pick the path that fits, and switch whenever you like.
Private, free, offline. Runs entirely on your machine.
Frontier-model quality with your own key, or your subscription.
Switch mid-session with /backend <name>. Same tools, same session log either way.
No account. No sign-up. Just a binary and whatever model you already have.
Homebrew on macOS, Cargo on any platform, or build from source with Rust 1.86+.
# Homebrew (macOS) brew install morganlinton/tap/albatross # Cargo (any platform) — installs the `albatross` binary cargo install albatross-cli
Local and free with Ollama, or cloud with your own API key. Albatross works the same either way.
# Path A: local, private, free brew install ollama && brew services start ollama ollama pull qwen2.5-coder:7b # Path B: cloud, frontier quality export OPENROUTER_API_KEY=sk-or-...
A short first-run wizard sets backend, model, and approval policy. Every launch after that opens straight into a session.
albatross
Runs a real agent loop on a tiny crate with a failing test, in an isolated sandbox, without touching your repo.
/play fix-failing-test
Yes. Albatross runs entirely on your machine with Ollama, LM Studio, MLX, or llama.cpp as the backend. Local turns are private and free, and nothing is sent to the cloud unless you switch to a cloud backend or explicitly allow it.
Local: any model served by Ollama, LM Studio, MLX, or llama.cpp. Cloud: Anthropic Claude with your ANTHROPIC_API_KEY, OpenRouter (including frontier models and Fusion), OpenAI with your own API key, ChatGPT/Codex subscriptions via OAuth, and Grok via SuperGrok or X Premium+ OAuth. Switch any time with /backend.
You describe a model stack that blends local and frontier models, and a selector model picks the right orchestrator, coder, and reviewer tier for each task. Every decision, with its rationale, tokens, and cost, is recorded in an auditable ledger at .albatross/routes.jsonl that you can replay with /route explain.
Yes. Albatross is open source under the MIT license. You only pay for what your own API keys spend, and per-turn cost is shown live on the status line. With local backends there is nothing to pay at all.
Transparency and control: per-turn cost on the status line, a real /undo for agent file mutations, session paths to fork and compare fixes, a separate critic model that grades work against a rubric, and a routing ledger that shows exactly which model did what and why. No black box.
On macOS: brew install morganlinton/tap/albatross. On any platform with Rust 1.86+: cargo install albatross-cli, which installs the albatross binary. Or build from source by cloning the GitHub repo and running cargo build --release.

Open source under MIT. Star it, fork it, or file an issue.