Albatross
Open source, terminal-first AI coding agent with fully transparent multi-model routing. Local (Ollama, LM Studio, MLX, llama.cpp) or cloud, your keys, one TUI. No black box.
Install / Use
npx skills add morganlinton/AlbatrossInstalls into whichever agent you are using.
Other
Other agent config
Quality Score
Category
AI & Machine LearningSupported Platforms
Tags
Skill content
View source on GitHubWhat it is
A coding agent that lives in your terminal. Bring your own API key (OpenAI or OpenRouter) or point it at a local model (Ollama, LM Studio, MLX, llama.cpp) — same tools, same commands, same session log either way. It ships with the usual tool kit — read, edit, grep, shell, run tests — plus a few that aren't usual:
- Local or cloud, one TUI. Switch providers mid-session with
/provider <name>— the tools, commands, and session log don't change. - Per-turn cost on the status line.
$0.003 this turn · $0.41 sessionwhen pricing is known or reported by the provider. Local turns just show tokens. - OpenRouter Fusion, one command away.
/fusion onswitches to theopenrouter/fusionalias for deliberative work;/fusion toolattaches Fusion to a chosen OpenRouter coding model for hard reviews, architecture tradeoffs, and high-stakes debugging. - Transparent multi-model routing.
/route select <task>scores every configured coder candidate, estimates cost, applies explicit policy limits, and shows the chosen model, effort, confidence, alternatives, and reasons. - Routed plans.
/plan route <goal>asks a configured planner model to break work into a low/medium/high task graph, saves it to.albatross/plan.json, and/plan executeruns ready tasks through the configured coder tiers. - Real undo.
/undoreverts the last agent turn's file mutations, including files the agent created or files that weren't tracked when the turn started. - Session paths.
/path forkbranches the conversation and workspace so you can try two fixes, diff them, and/path pickthe winner — no worktree required. - Plan, then grade the work.
/planexpands a one-line intent into a spec;/iterateruns a generate→evaluate loop where a separate critic agent scores each pass against a rubric and feeds back until it clears the bar — the generator never grades itself. - Reset over compaction.
/resetwrites a handoff artifact and starts a clean session seeded with it — better coherence on long tasks than summarizing in place. - MCP-native. Drop servers into
mcpServersin your config; their tools show up asmcp__<server>__<tool>to the model on next launch. /authinstead of.env. Paste API keys once into a0600file under~/.config/albatross/. Env vars still win when set.- Approval gates you can live with. Every mutating call shows you the
diff first, with
allow once / allow session / always allowcaching.
Install
Homebrew (macOS):
brew install morganlinton/tap/albatross
Cargo (any platform with Rust 1.86+):
cargo install albatross-cli # installs the `albatross` binary
From source (Rust 1.86+):
git clone https://github.com/morganlinton/Albatross.git
cd Albatross
cargo build --release # binary at target/release/albatross
Run it
Launch the interactive session:
albatross
From a source checkout without installing, use
cargo run --releaseinstead.
The first launch runs a short setup wizard (it writes agent.config.json —
provider, model, approval policy). Skip it with ALBATROSS_NO_WIZARD=true.
Every launch after that opens straight into a session.
Albatross talks to one provider at a time — pick the path that fits.
Path A — Cloud API key
Fastest to start, frontier-model quality, nothing to install locally.
-
Set your key — Anthropic, OpenAI, or OpenRouter:
export ANTHROPIC_API_KEY=sk-ant-... # or export OPENAI_API_KEY=sk-... # or export OPENROUTER_API_KEY=sk-or-... -
Launch, then select the provider in the first-run wizard (or any time with
/provider anthropic):albatross
Prefer not to put the key in your environment? Launch first, then run
/auth set anthropic inside the app and paste it once — it's stored in a 0600
file under ~/.config/albatross/. Cost per turn and per session shows
live on the status line.
The Anthropic provider uses the documented Claude API and your
ANTHROPIC_API_KEY. It does not offer Claude.ai OAuth or use a Pro, Max,
Team, or Enterprise subscription allowance; Anthropic's
Agent SDK guidance requires
prior approval before third-party products can offer subscription login or rate
limits.
Path A2 — ChatGPT / Codex subscription login
If you want to use a ChatGPT/Codex subscription instead of OpenAI API billing, log in with OAuth inside the TUI:
/login openai-codex
/provider openai-codex
This is intentionally separate from /auth set openai: openai uses an
OPENAI_API_KEY and the public OpenAI API, while openai-codex stores a
refreshable ChatGPT OAuth token in auth.json and talks to the Codex Responses
backend.
Path A3 — Grok / SuperGrok subscription login
Use a SuperGrok or X Premium+ subscription through browser or headless
device-code OAuth, with no XAI_API_KEY:
/login grok
/provider grok
Pick 1) Browser login (opens the system browser + local callback) or
2) Device-code login for SSH/headless. Tokens land in auth.json under
grok and refresh automatically. Default model is grok-4.5. /model exposes
the static agent-ready catalog (grok-4.5, grok-4.3, grok-build-0.1), same
as pi — it does not scrape xAI's full /models list.
Path B — Local model
Private, free, offline — runs entirely on your machine.
-
Install Ollama, start it, and pull a coding model:
brew install ollama brew services start ollama ollama pull qwen2.5-coder:7b -
Launch — Ollama is the default provider, so there's nothing else to set:
albatross
LM Studio, MLX, and llama.cpp work the same way — see Providers for their ports and start commands.
Tip: switch providers mid-session with
/provider <name>, and run/doctorif a provider won't connect./backendremains an alias.
First session
> what files are in src/?
Listed src/ (24 files)
src/ has 24 Rust files: main.rs is the entry point (input loop, banner,
warmup); agent.rs runs the chat-completions loop; backends.rs handles the
providers; tools/ contains the tool implementations…
1.2k in · 87 out · $0.0003 this turn · $0.0003 session
> 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
A handful of moves worth knowing right away:
/mode explore | edit | ship | reviewtoggles tool + approval + step-budget presets./undoreverts the last turn's file mutations./path forkbranches the session to try an alternate approach;/path switch,/path diff, and/path pickcompare and merge paths./shipchecksummarizes git state;/handoffdrafts a commit message, changelog bullets, and a release post from local context./shipturns that into a last-mile preflight, local commit, and push path: readiness verdict, blockers, commit-message draft, guardedgit commit, and guardedgit push;/ship propens a draft pull request through GitHub CLI when available, and/ship statussummarizes open PR checks/review state./scorecardshows global quality PRs shipped;/ship prcloses a PR unit with readiness/test evidence./scorecard close <label>scores manual closes from shipcheck (not the separate/play scorefixture report)./plan <intent>drafts a spec;/iterate <goal>runs a generate→evaluate loop where a separate critic grades each pass against a rubric./play fix-failing-testruns a bundled demo in an isolated sandbox so you can try a real agent loop without touching your repo.Ctrl-Jfor newline;Entersubmits.albatross --continueresumes the most recent session in the cwd.
Providers
| Provider | Default URL | Notes |
|---------|-------------|-------|
| ollama | http://localhost:11434/v1 | Easiest setup; mature tool-call templates |
| lm-studio | http://localhost:1234/v1 | GUI model browser; explicit load / unload |
| mlx | http://localhost:8080/v1 | Fastest inference on Apple Silicon (via mlx_lm.server) |
| llamacpp | http://localhost:8080/v1 | Direct GGUF serving (via llama-server) |
| openrouter | https://openrouter.ai/api/v1 | Cloud A/B with /compare; access to frontier models and Fusion |
| openai | https://api.openai.com/v1 | Direct provider access with your own key |
| anthropic | https://api.anthropic.com/v1 | Native Messages API with your own Anthropic API key |
| openai-codex | https://chatgpt.com/backend-api/codex/responses | ChatGPT/Codex subscription OAuth via /login openai-codex |
| grok | https://cli-chat-proxy.grok.com/v1 | SuperGrok / X Premium+ OAuth via /login grok (browser or device-code) |
Switch at runtime with /provider <name>. Endpoint overrides:
OLLAMA_BASE_URL, LM_STUDIO_BASE_URL, MLX_BASE_URL, LLAMACPP_BASE_URL,
OPENAI_BASE_URL, ANTHROPIC_BASE_URL, OPENAI_CODEX_BASE_URL. The Grok OAuth proxy is fixed to
xAI's first-party host so subscription tokens cannot be redirected elsewhere.
API providers require an API key (set via /auth or
env var); openai-codex requires /login openai-codex; grok requires
/login grok.
Default model per provider
Each provider has one sensible default; local providers default to a 7B coder
that runs on modest hardware. Override any time with /model, AGENT_MODEL,
or modelOverride in your config. Append --default to /model or /provider
to write the choice into agent.config.json (surgical merge: only backend and
modelOverride). /model --default pins the active model; /provider --default
pins the active provider and clears modelOverride so the ne
Truncated for display — read the full file on GitHub.
Related Skills
caveman
107.1k🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.
claude-mem
94.4kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Understand-Anything
83.5kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
73.4kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
