by bitrouter
The context-aware model router that learns & adapts to your long-horizon coding agent workflows. Lightweight & extensible, works with any harnesses, any models, any loops.
# Add to your Claude Code skills
git clone https://github.com/bitrouter/bitrouterLast scanned: 6/5/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-06-05T08:07:54.884Z",
"npmAuditRan": true,
"pipAuditRan": true
}bitrouter is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by bitrouter. The context-aware model router that learns & adapts to your long-horizon coding agent workflows. Lightweight & extensible, works with any harnesses, any models, any loops. It has 223 GitHub stars.
Yes. bitrouter passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/bitrouter/bitrouter" and add it to your Claude Code skills directory (see the Installation section above).
bitrouter is primarily written in Rust. It is open-source under bitrouter on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh bitrouter against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
An open-source, context-aware model router that learns and adapts to your agent workflows.
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.
Works with any harness, any model, any loop. Cost is live today — latency and accuracy are next.
BitRouter routes model calls. But which model a call should get depends on where the loop is — and the loop step is the last tool, skill, or sub-agent it touched. So the same gateway that governs those is what gives the router its context. Other routers see only the first of these three:
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.
BitRouter wraps your agentic loop in a second loop. bitrouter.yaml declares
providers, presets, and whether the process may publish; policy-lock.yaml is
the only live route authority. The routing key is context-aware and lives as
code: it is the step in the loop, not just the model name.
policy:
path: ./policy-lock.yaml
mode: adaptive # authorizes explicit publication only
presets:
auto:
model: openai-codex:gpt-5.6-sol
policy: auto
The v3 lock behind bitrouter/auto contains the tier targets, canonical agent_trace
routes, capability guardrails, and a decision certificate for every explicit
route. A target may be a scalar model or an exact (model, effort) pair;
bitrouter/auto:cost selects the cost variant when one is defined, while
explicit physical model IDs remain passthrough.
Against that spec BitRouter provides the control plane for an act → observe → evaluate → improve cycle:
@preset[:variant] call to its tier's model: policy routing, cross-protocol translation, multi-account failover.policy-lock.yaml candidate (an npm-style manifest/lock split, git-owned). Review and publication are explicit; the evidence database never changes a live route.You choose what the external evaluator measures — cost, latency, quality, or a private objective — while the active lock remains the only authority for live policy routing. BitRouter adapts by proposing a new lock, never by mutating the one in force: the live route never changes implicitly between publications, and every change is a diff you can read and revert.
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-5 |
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.
Automatic model selection is no longer the differentiator — every router below picks a model for you. What separates them is what the decision reads and whose data makes it better. Almost all of them classify the prompt. BitRouter routes on the loop step — where the agent is in its trajectory, keyed by the last tool it called — and improves from evaluations you admit, into a lock file you own.
| BitRouter | OpenRouter Auto | Not Diamond Code | vLLM Semantic Router | LiteLLM Auto | |
|---|---|---|---|---|---|
| Routing signal | The loop step — last tool called, over the agent trace | Prompt classified into ~30 task types | Session state, token counts, task complexity, KV-cache state | Prompt signals: classifiers, embeddings, keyword and metadata rules | Prompt embedding similarity to labeled example routes |
| Improves from | Your admitted evaluation outcomes, per loop | The community's last-7-days spend across all of OpenRouter | Your implicit accept/reject feedback, in a hosted model | Router models you train offline and redeploy | Labeled examples plus one fitted score threshold |
| Optimizes | Any objective you submit (cost validated today) | Cost tier vs. capability | Cost and quality jointly | Quality, cost, latency, privacy, safety | Cost vs. quality at a chosen threshold |
| Policy you own | Git-owned policy-lock.yaml — readable, diffable, explicit publish |
Vendor-side, tunable by knobs | Vendor-side | Config recipes plus trained artifacts | Proxy config plus fitted threshold |
OpenRouter Auto and Not Diamond are hosted services. BitRouter, vLLM Semantic Router, and LiteLLM are open-source and self-hostable; BitRouter is Rust.
# 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
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
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` p