Reach out
Models & web search
Brigade is model-agnostic. Connect several providers at once, switch with /model, and Brigade carries your context across the switch. Web search is pluggable and auto-selected by what you have configured.
Providers out of the box#
Anthropic, OpenAI, Google Gemini, OpenRouter, Groq, Cerebras, xAI, DeepSeek, Mistral, Ollama (local), and Custom OpenAI-compatible endpoints — Together, Fireworks, vLLM, LM Studio, on-prem gateways, anything that speaks /v1/chat/completions.
$ brigade onboard # add a provider interactively$ brigade config set agents.defaults.provider openrouter# in-chat: /provider to add one mid-session, /model to switchSign in with a subscription — no API key#
Don't want to manage API keys, consoles, and billing? Use the subscription you already pay for. Brigade signs in to Claude Pro / Max, ChatGPT Plus / Pro, or GitHub Copilot over OAuth — no key, no quota juggling.
- Browser sign-in.
brigade loginopens the OAuth flow for Claude Pro/Max, ChatGPT Plus/Pro, or Copilot and seals the credential locally (also offered insidebrigade onboard). - Reuse a CLI login you already have. Already signed into the Claude Code or Codex CLI on this machine?
brigade onboardoffers “Reuse this machine's login” — one keystroke, no browser, no re-auth.
$ brigade login # browser sign-in: Claude / ChatGPT / Copilot$ brigade login claude-code # straight to Claude Pro / Max$ brigade onboard # full wizard — also reuses your Claude Code / Codex loginPrefer keys? They still work. Either way the credential is sealed on your own machine, never leaves it, and is auto-refreshed when the provider supports it — see Security.
The claude-cli backend — your login, Brigade's tools#
Pick claude-cli as your provider and Brigade drives the installed Claude Code binary as its engine, on the subscription you already pay for. No API key, no per-token bill.
Most tools that wrap a CLI hand the model whatever that CLI already had. Brigade does the opposite. It denies the binary's own filesystem, shell, network and sub-agent tools, then serves it Brigade's entire guarded surface — every native tool plus read, write, edit, bash, grep and ls — over a loopback MCP endpoint scoped to a single turn.
The consequence is the whole point. Each call the binary makes runs through the same objects an ordinary turn uses: the same ownership gate, the same exec-approval prompt, the same path-write and config-write guards, the same memory origin, bound to your real working directory. It cannot reach anything an ordinary turn could not, because it is holding the same tools. Calls stream into the TUI as they happen, land in the session transcript, and are still remembered on the next turn.
$ [mcp/tool-plane] tool-plane connected agentId=main tools=39$ [mcp/tool-plane] tool call tool=bash ms=63The per-turn credential is a 256-bit token, is never written to a log, and dies with the turn. The endpoint is loopback-only and refuses any caller that is not the child it spawned. See Security.
🩸 B³ — Brigade Bloody Benchmark#
Three B's. One bloody command. Your whole crew — live to the world.
B³ · Brigade · Bloody · Benchmark
Why the name? The three B's are the pitch. Brigade — your crew of agents. Bloody — you shove it out into the open with no safety net: a blood-red tunnel straight to the wild. Benchmark — because the real measure of a crew was never a lab. It's the open world, with strangers hammering it for real. Survive that, and it works.
Mechanically: brigade bloody benchmark drags your localhost gateway into daylight — HTTPS at the edge, no account, no setup. It defaults to an anonymous Cloudflare quick-tunnel, but the providers are pluggable and fully open-source: bore, frp, sish, or your own self-hosted relay — no proprietary cloud required. A private access key is minted and handled for you: you never see it, and strangers just bleed out on a 401. Too squeamish for the name? It also answers to the polite brigade expose.
$ brigade bloody benchmark # 🩸 your gateway, public, in one command$ brigade expose # ...the same thing, politely named$ brigade expose --provider bore # self-hostable OSS tunnel (your own relay)$ brigade expose --open # no key — wide open to anyone with the URL$ brigade expose status # is it live? (the key stays hidden)$ brigade expose stop # patch the wound🩸 It's a real, open door
brigade expose stop(or Ctrl-C) when you're done. New in v1.9.0.Switching mid-conversation#
Switching models keeps the thread. When you change model or provider, Brigade carries the full transcript onto the new model — it is the same session — and:
- Re-anchors your thinking level to what the target supports: preserved when it can reason, forced off for a non-reasoning model, bumped for a reasoning-only one.
- Sanitizes provider-specific reasoning blocks the next provider would otherwise reject.
- Works mid-turn (abort the in-flight run and replay your last message on the new model) or next-turn.
This is what makes /model and /provider switches seamless.
Web search#
The web_search tool is pluggable and auto-selects a provider based on what you have configured:
- Keyed — Tavily, Brave, Exa, Perplexity, Firecrawl, SearXNG.
- Keyless — DuckDuckGo, Wikipedia, Hacker News, arXiv, GitHub, npm, and local Ollama.
Web tools (web_search, fetch_url, browser) are open to any caller — see Tools.
Local-only is a first-class option