bitrouter

App Listed

elastic inference for your agentic workloads, on your terms

Checked · Sources

Downloads
145
Dependents
Not applicable
Stars
239
Forks
23
Contributors
7
Commits
1,016
Latest release
0.33.0 ·

About

From the project README ·

The minimal interpretable model router that learns & adapts to your agent workflows.

Point an OpenAI-compatible agent at your local BitRouter instance and choose bitrouter/auto after configuring an auto router and policy. See the routing guide for setup.

- OPENAI_BASE_URL=https://api.openai.com/v1
+ OPENAI_BASE_URL=http://localhost:4356/v1

Then set the request model to:

bitrouter/auto

BitRouter runs locally and exposes an OpenAI-compatible API, so existing agents and tools can switch over with minimal changes.

You can also give your coding agent the /bitrouter skill to install, configure, migrate to, and troubleshoot BitRouter for you:

npx skills add bitrouter/bitrouter

Try BitRouter Cloud →: Use https://api.bitrouter.ai/v1 with a Cloud credential and a catalog model ID. Hosted routing presets use @<name>; the local bitrouter/auto selector requires a local router.

Core features

Minimal core. Lightweight & extensible.

One Rust router sits between your agents and every model provider. Extend it with providers, routing policies, tools, skills, and sub-agents without rebuilding your workflow around a new agent runtime.

Read the full README
Interpretable decisions. Under your control.

Routing policy lives in files you own. Routes are inspectable, changes are diffable, and a live policy changes only when you explicitly publish it.

A customizable router. Adapt it to your workflow.

Start with bitrouter/auto, then shape the models, rules, guardrails, and evaluation objective around your own loop. BitRouter learns from the outcomes you admit and proposes a new policy you can review, publish, or revert.

Integrates with your agent stack

Keep the clients and workflows you already use:

  • Model APIs — OpenAI Chat Completions and Responses, and Anthropic Messages, with cross-protocol routing. Metered Gemini uses Google’s OpenAI-compatible Chat endpoint.
  • Coding agents — built-in Codex and Claude support through native launchers, headless commands, and ACP adapters.
  • Tools & skills — manage upstream MCP configuration with bro mcp and existing local skill directories with bro skills. Install skills with npx skills; native tasks and supported ACP runs use explicitly selected skills. MCP content retains independent source permission and per-skill consent. See the CLI reference for supported hosts, commands and delivery limits.

Benchmarks

On Terminal-Bench 2.1, BitRouter cut API cost by 40.9% while achieving nearly the same reward as using gpt-5.6-sol alone.

ConfigurationRewardCost / trialCost savings
gpt-5.6-sol only81.56%$0.830—
BitRouter81.25%$0.49040.9%
Random model mix76.50%$0.55333.4%

BitRouter dynamically routed between GPT-5.6, Kimi K3, and DeepSeek V4 Flash, retaining nearly all of GPT-5.6’s task performance while substantially reducing model cost.

The random baseline used the same model mix, showing that the savings come from routing decisions—not simply using cheaper models.

Results use the strict 80-task common-valid set and frozen API prices. This is a research benchmark, not an official Terminal-Bench submission.

See the full study and limitations and the BitRouterAI/benchmarks dataset for reproducible results.

Install

Official macOS distributions support Apple Silicon (arm64) only.

# macOS (Apple Silicon) / Linux
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/bitrouter/bitrouter/releases/download/v1.0.0-alpha.33/bitrouter-installer.sh | sh

# Homebrew
brew install bitrouter/tap/bitrouter

# Windows
powershell -ExecutionPolicy Bypass -Command "irm https://github.com/bitrouter/bitrouter/releases/download/v1.0.0-alpha.33/bitrouter-installer.ps1 | iex"

# npm
npm install -g bitrouter

# From source (Cargo)
cargo install bitrouter

These installers select the full product. Gateway-only release archives keep the same bro executable and run as an independent model service. See distribution profiles for archive verification, configuration and profile-preserving updates.

Quick start

Run bro for line-based first-run setup. It ensures the background daemon is ready and returns to the shell; subsequent calls reuse that daemon. Native harness interfaces remain available through bro claude, bro codex and bro launch <agent>.

bro threads manages native history, FIFO inputs, approvals and explicit recovery. bro agents lists current connections; its single-operation commands manage supervised ACP runs, settings, routes and native sessions. The existing ThreadService, Core and controller retain execution and permission ownership.

bro code, bro tui, bro chat and bro agents attach have been removed. They return migration guidance and never open an interface or start work.

bro                                  # setup, then background daemon readiness
bro agents                           # live instances; catalog: agents list
bro run claude "summarize this repo"  # one headless ACP turn
bro run codex "inspect tests" --background
bro agents pending <run-id>          # inspect exact pending approvals
bro threads list                     # authorized durable native Threads
bro requests                         # settled requests and spend
bro route <model>                    # explain model resolution

The maintained Codex and Claude ACP adapters require Node.js 22+ and npx; native launchers use each harness's own interface and per-process overrides.

See docs/CLI.md for the complete command reference, session controls, flags, and config resolution.

Workflow recipes

Ready-made policy specs for common agentic workflows start in templates/auto-router/: a predictive bitrouter/auto / bitrouter/auto:cost ladder using GPT-5.6 as the strong tier, Kimi K3 as balanced, and DeepSeek V4 Pro as economy. Treat it as a starting point and evaluate it against your own loop before publishing a live policy.

Models & providers

BitRouter routes to a model, not a provider. Each model below is served by many providers — its own lab, hyperscalers, gateways, and serverless clouds. BitRouter orders eligible routes by configured provider priority and can fall back on retryable failures. The bars are those routes: the more providers serve a model, the more room the router has to move. Current cost and latency sort options use the same deterministic priority order rather than live price or latency scoring.

BitRouter model catalog grouped by lab; bar length is the number of providers routing each model

Bring your own key to any of them, or use one BitRouter Cloud account with no keys at all. Frontier models from OpenAI, Anthropic, Google, and xAI also route over a subscription sign-in (Claude Pro/Max, GitHub Copilot, ChatGPT Codex) instead of a key.

The chart is generated from dist/registry/ on every catalog change — it is never hand-maintained, so it cannot drift from what the router actually resolves. Full catalog in registry/.

Talk to founders

Try BitRouter Cloud → or reach out directly:

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

Development

  • Development guide — documentation policy and engineering guide index
  • 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

License

Licensed under the Apache License 2.0.

Runs on
GPU support unknown
What shows it
  • no dependency or feature matches a backend row
Native code
Required
  • Binds native code: secp256k1-sys, aws-lc-rs (feature payments-tempo)
Python bindings
No Python binding crate found
License
Apache-2.0

Compare with similar projects

Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.

bitrouter beside the projects that share a topic with it
ProjectDownloadsDependentsStarsLatest releaseRuns on (GPU)Native codeLicense
bitrouter This page App Listed

elastic inference for your agentic workloads, on your terms

145 binary downloads per release Not applicable 239 0.33.0 GPU support unknown Binds native code: secp256k1-sys, aws-lc-rs (feature payments-tempo) Apache-2.0
async-openai Featured

Rust library for OpenAI

1,302,033 downloads over 30 days 275 2,031 0.43.0 GPU support unknown No native code found MIT
rust-genai Featured

Multi-AI Providers Library for Rust. (OpenAI, Gemini, Anthropic, DeepSeek, Ollama, OMLX, AWS Bedrock, Vertex, Xai, Groq, Kimi, GLM and many more)

118,643 downloads over 30 days 81 938 0.7.3 GPU support unknown No native code found Apache-2.0 OR MIT
ollama-rs Featured

A Rust library for interacting with the Ollama API

45,579 downloads over 30 days 68 1,061 0.3.6 GPU support unknown No native code found MIT
harmony Listed

OpenAI's response format for its open-weight model series gpt-oss

Python bindings

489,508 downloads over 30 days 9 4,539 0.0.8 GPU support unknown No native code found Apache-2.0
plano App Listed

Plano is an AI-native proxy server and data plane for agentic apps. Smart LLM routing, observability, agent orchestration, and guardrails so you stay focused on your agents core logic.

211 binary downloads per release Not applicable 7,111 Not measured Not measured Apache-2.0
blazr App Listed

Inference server for LLMs, speech and embeddings: OpenAI-compatible routes with streaming, plus speech synthesis (TTS) and transcription (ASR). Serves Llama, Mistral, Qwen, Mamba2, MLA+MoE and hybrid models from SafeTensors, AWQ, GPTQ and GGUF.

8 binary downloads per release Not applicable 7 0.7.1 CUDA, WebGPU Binds native code: ring (feature distributed) Apache-2.0
Why ListedNo archive, New or Featured rule places it, so it is Listed.

What it lacks for Featured

  • The check holds no value for Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days. A gate that lacks its signal does not pass.

What else the check found

  • The last activity is on 8 Nov 2026, 1 day ago. The rules expect an update within 365 days. Dormancy rule

Not measured: Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days.

Exact rules: Listed, Featured app. The check on applied thresholds version 9.

Every rule outcome, as the check records it
  • expected-interval: app: E = 365 days
  • dormancy: last activity 2026-11-08, 1 days ago, E = 365: active
  • featured: not featured: unknown homebrew_on_request_365d, repology_families, docker_pull_growth_90d
  • listed: listed: no archive, new or featured rule applies
Crates27 crates

Measurements and sources

Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.

Sources6 sources
Adoption145 binary downloads per release4 not measured
Adoption measurements
SignalValueSourceFetchedCounts
Active dependentsNot measuredYes
New dependents (365 days)Not measuredYes
Peak active dependentsNot measuredYes
Active dependents as a share of the peakNot measuredYes
Binary downloads per release145GitHub releasesYes
MaintenanceLatest human commit: 1 day ago4 not measured
Maintenance measurements
SignalValueSourceFetchedCounts
Latest human commit2026-11-08GitHub repositoryYes
Latest release2026-10-29crates.io database dumpYes
First release2026-03-06crates.io database dumpYes
Latest version0.33.0crates.io database dumpNo
Days the oldest outside issue waits for a reply115GitHub repositoryYes
Maintainer replies over 365 days0GitHub repositoryYes
Repository archivedfalseGitHub repositoryYes
Repository gonefalseGitHub repositoryYes
Release commit or manifest in the repotruecrates.io packageNo
Published docsNot measuredYes
Latest release fails cargo checkNot measuredYes
Build check dateNot measuredYes
Build check toolchainNot measuredYes
SecurityNot measured
Security measurements
SignalValueSourceFetchedCounts
Unpatched vulnerabilities past the grace windowNot measuredYes
RustSec unmaintained advisoryNot measuredYes
Deprecation noticeNot measuredYes
Deprecated requirementNot measuredYes
Distribution92 releases, 74 downloads over 30 days6 not measured
Distribution measurements
SignalValueSourceFetchedCounts
Releases92crates.io database dumpNo
Downloads over 30 days74crates.io database dumpNo
Binary downloads over the last 3 releases437GitHub releasesYes
Homebrew installs on request over 365 daysNot measuredYes
Repology repository familiesNot measuredYes
Docker pull growth over 90 daysNot measuredYes
Docker pulls at the growth baselineNot measuredYes
Every version a prereleasefalsecrates.io database dumpYes
Every version 0.0.xfalsecrates.io database dumpYes
Every version yankedNot measuredYes
Crate deleted from crates.ioNot measuredYes
Repository239 stars, 23 forks, 7 contributors, 1,016 commits. Stars alone never qualify a project.
Repository measurements
SignalValueSourceFetchedCounts
GitHub stars239GitHub repositoryYes — one part of the repository route
GitHub forks23GitHub repositoryYes — one part of the repository route
Contributors with a GitHub account7GitHub contributorsYes — one part of the repository route
Commits on the default branch1016GitHub repositoryNo
Repository's main crate left out of the entrynonecrates.io database dumpYes
Facts that never count
Facts that never count measurements
SignalValueSourceFetchedCounts
LicenseApache-2.0crates.io database dumpNo
Runs on, from listed crates and their direct dependenciesGPU support unknowncrates.io database dumpNo
What shows each backendno dependency or feature matches a backend rowcrates.io database dumpNo
Native code, from listed crates and their dependenciesBinds native code: secp256k1-sys, aws-lc-rs (feature payments-tempo)crates.io database dumpNo
Python bindings, from direct dependencies of listed cratesNo Python binding crate foundcrates.io database dumpNo
Crates that depend on a listed crate directlyNot measuredNo

Corrections and review history

Report a correction

No correction applies to this entry.

Judgments

A judgment enters only through an approved issue and a merged pull request.

No judgment applies to this entry.