BitRouter

Build status Crates.io License: Apache-2.0 Twitter Discord Hugging Face Docs LinkedIn Book a call

The self-improving LLM router that optimize your agentic workflows with every runs, works with any harnesses, any models, any loops.

You're tokenmaxxing in production. Every step of every loop bills at frontier prices — file reads, tool calls, sub-agent hops, retries. Most don't need it. BitRouter routes each call, tool, and agent to the cheapest path that still reaches the goal, and tightens that routing as the loop runs.

Cost is live today — latency and accuracy are next.

Three primitives, one gateway

An agentic loop consumes three things. Other routers govern only the first. BitRouter makes all three routable, observable, and governed:

  • Models — route LLM calls across providers, accounts, and wire protocols: OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, and Google Gemini. (the classic router, cross-protocol — any request format to any upstream, and back)
  • Capabilities — an MCP gateway and an AgentSkills gateway: tools and skills become governed, routable resources instead of hardcoded endpoints. (The skills gateway folds into the MCP gateway once the MCP skills extension reaches production.)
  • Agents — an ACP gateway: sub-agents become first-class routable primitives, so a task can go to the sub-agent that best fits the loop's objective — just as a call routes to the best-fit model. (Local sub-agents over stdio today; remote gateways arrive with ACP v2.)

Optimizing a loop isn't just model selection — it's choosing the model, the tool, and the sub-agent that best serve the loop's objective at every step that gets it to its goal.

The self-improving loop

BitRouter wraps your agentic loop in a second loop. Each loop gets its own policy spec — a config file that declares how its calls, tools, and agents should route. Against that spec BitRouter runs a continuous act → observe → evaluate → learn cycle, and every step is a component it already ships:

  • Act — the router. Each model, tool, and agent call is rewritten to a chosen route: policy-table routing, cross-protocol translation, multi-account failover.
  • Observe — telemetry. Every hop is attributed with cost, tokens, latency, and outcome, and exported to Prometheus or any OTLP backend.
  • Evaluate — the eval engine. Each run and routing decision is scored against your chosen objective — did the route it picked still reach the goal?
  • Learn — the policy engine. The eval signal folds back into the policy spec: an agent self-tunes it, or you edit it by hand. The next turn of the loop acts on the improved spec.

You choose what the loop optimizes for — cost, latency, or accuracy — and it improves the longer it runs in production.

Benchmarks

Today cost is the validated objective: on Terminal-Bench 2.1, gpt-5.5 with BitRouter cut cost 32.8% at near-parity accuracy (−1.1 pp), by offloading routine steps to a cheaper model. Latency and accuracy objectives — and more base models — are landing next.

Base model Cost vs baseline Latency vs baseline Accuracy vs baseline
gpt-5.5 **−32.8%**¹ coming soon coming soon
gpt-5.6 coming soon coming soon coming soon
claude-opus-4.8 coming soon coming soon coming soon
claude-sonnet-5 coming soon coming soon coming soon
claude-fable-5 coming soon coming soon coming soon

¹ Cost-optimization run on Terminal-Bench 2.1: −32.8% zero-cache imputed cost (audited range 28.6–32.8% by cache share) at near-parity accuracy, −1.1 pp (76.1% vs 77.3%, within single-attempt noise).

This is a mechanism study under a modified protocol, not a Terminal-Bench leaderboard submission — read the experiment limitations before citing the numbers. Full reports live in benchmarks/; complete traces, tool calls, usage, policy decisions, configs, and checksums are in the BitRouterAI/benchmarks dataset.

Comparison

Every gateway below routes model calls. BitRouter is the only one that also makes tools and agents routable, and optimizes the whole loop rather than a single call.

BitRouter OpenRouter LiteLLM TensorZero Portkey Bifrost
Routable primitives Models + tools + agents (MCP + ACP) Models Models + tools (MCP) Models Models + tools (MCP) Models + tools (MCP)
Optimizes The loop, multi-objective (cost today) Static routing Static routing The model Static routing Static routing

All but OpenRouter are open-source and self-hostable; BitRouter and TensorZero are Rust.

What BitRouter is not

  • Not a static gateway — it doesn't just forward calls to a fixed route; it runs an act → observe → evaluate → learn loop that keeps tightening the route as it runs.
  • Not an orchestration framework — it doesn't define your agent's control flow, steps, or state; it routes the calls, tools, and sub-agents your loop already makes.
  • Not an agent harness — it runs under Claude Code, Codex, and the rest, not instead of them.

Install

# macOS / Linux
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/bitrouter/bitrouter/releases/latest/download/bitrouter-installer.sh | sh

# Homebrew
brew install bitrouter/tap/bitrouter

# npm
npm install -g bitrouter
cargo install bitrouter

Quick Start

BitRouter is a local proxy between your agent and every LLM provider. One env-var swap — no harness changes required:

- OPENAI_BASE_URL=https://api.openai.com/v1   # hardwired to one provider, no fallback
+ OPENAI_BASE_URL=http://localhost:4356/v1    # all providers, automatic failover

CLI

BitRouter runs as a local daemon — start it with your own keys or a Cloud sign-in.

Bring your own keys (BYOK) — auto-detected from the environment, no config file needed:

export OPENAI_API_KEY=sk-...    # ANTHROPIC_API_KEY / GEMINI_API_KEY also work
bitrouter start                 # proxy running at http://localhost:4356

Or sign in to BitRouter Cloud — use browser OAuth interactively or store an existing API key in CI:

bitrouter cloud login           # RFC 8628 device flow against api.bitrouter.ai
bitrouter cloud login --api-key "$BITROUTER_API_KEY"  # non-interactive CI login
bitrouter start                 # `bitrouter` provider auto-enables once signed in

The same credential also drives a gh api-style raw client—no daemon required:

bitrouter cloud api /v1/models
bitrouter cloud api /v1/chat/completions --input request.json

Point your agent runtime at http://localhost:4356 and any available provider is live. For advanced routing rules, guardrails, or multi-account failover, scaffold a config with bitrouter init (writes ./bitrouter.yaml).

bitrouter start / stop / restart        # daemon lifecycle
bitrouter route <model>                 # trace how a model name resolves
bitrouter key sign --user <id>          # mint a scoped brvk_ API key
bitrouter cloud keys / usage / billing  # manage your cloud account
bitrouter cloud api /v1/models          # call Cloud APIs directly

See docs/CLI.md for the full command reference, flags, and config resolution.

Agent Skill

BitRouter ships an Agent Skill/bitrouter — so AI coding agents can install, configure, migrate to, and troubleshoot BitRouter on their own. It lives in this repo at skills/bitrouter/, kept in sync with the code.

bitrouter skills add bitrouter        # via BitRouter's own installer
npx skills add bitrouter/bitrouter    # via the generic skills CLI

MCP

Use BitRouter from any MCP client — it exposes complete, list_models, and status as MCP tools (the origin server, distinct from the MCP gateway that proxies your own MCP servers):

bitrouter mcp serve                    # stdio → local daemon at 127.0.0.1:4356
bitrouter mcp install --client claude  # print the Claude/Cursor mcpServers config block

Add --transport http to target the multi-tenant cloud backend.

API

BitRouter exposes an OpenAI- and Anthropic-compatible HTTP API on http://localhost:4356, so any SDK or client works unchanged. The full endpoint reference and OpenAPI spec live in bitrouter/bitrouter-docs (rendered at bitrouter.ai).

Workflow templates

Ready-made policy specs for common agentic workflows — a starting point that routes well out of the box, before you tune it for your own loop. Coming soon in templates/.

Models & providers

BitRouter routes to a model, not a provider. Each family below is served by many providers — its own lab, hyperscalers (AWS Bedrock, Alibaba Cloud), gateways (OpenRouter, OpenCode), and serverless clouds — and BitRouter picks the cheapest route per call. Bring your own key to any of them, or use one BitRouter Cloud account with no keys at all.

Lab Latest models
DeepSeek DeepSeek V4 Pro / Flash
Alibaba Qwen3.7 Max / Plus
Moonshot Kimi K2.7 Code / K2.6
Z.ai GLM-5.2 / 5.1
MiniMax MiniMax M3 / M2.7
Xiaomi MiMo V2.5 Pro / V2.5
StepFun Step 3.7 Flash / 3.5 Flash

Plus every frontier model from OpenAI, Anthropic, Google, and xAI — over your own keys, a subscription sign-in (Claude Pro/Max, GitHub Copilot, ChatGPT Codex), or BitRouter Cloud. Full catalog in the registry/.

Harness integrations

Any agent runtime that speaks OpenAI or Anthropic APIs works with BitRouter out of the box — set OPENAI_BASE_URL=http://localhost:4356/v1 and you're done. The following harnesses are tested and supported:

Harness Status Notes
Claude Code LLM gateway guide
OpenAI Codex bitrouter launch --agent codex or custom model providers
OpenCode Via models.dev
Hermes Agent Native plugin — hermes-bitrouter-plugin
OpenClaw Native plugin — bitrouter-openclaw
Pi-Agent Model configuration guide

The full provider and harness catalog lives in github.com/bitrouter/bitrouter/registry.

Features

Beyond the gateways above, the production controls for running agents unattended:

  • Multi-account failover + load-balancing — reroute mid-run; a rate-limit at file 140 never re-pays for files 1–139
  • Virtual keys (brvk_) scoped per agent or user — no agent holds an upstream key
  • Per-agent spend caps + loop guards to contain runaway cost
  • Injection + output guardrails at the router, before requests leave your network
  • Zero-config auto-detection + custom OpenAI-/Anthropic-compatible providers

Talk to founders

Try BitRouter Cloud → or reach out directly:

Want a first-party provider integration, or building an open-source agent/harness? Email [email protected] or book a meeting — open-source builders get up to 50% off for you and your community.

Development

  • docs/DEVELOPMENT.md — workspace architecture and SDK internals
  • CONTRIBUTING.md — contribution workflow, issue reporting, and provider updates
  • CLAUDE.md — guidance for AI coding agents working in this repository
  • skills/ — the /bitrouter Agent Skill (source of truth)

Star History

Star History Chart

License

Licensed under the Apache License 2.0.