Busbar CLI
A self-hosted gateway between AI apps and models, MCP tools and A2A agents: policy, budgets, routing and an audit trail
- 217 ★ on the repository
- Last commit
Broad access
Why this level
- The gateway holds provider keys and passes all model and tool traffic through itself
- Policy and budget setup decides which models and tools agents may reach
Install
- Works in
Manual install
docker run --rm -p 8080:8080 -e ANTHROPIC_KEY -e BUSBAR_ADMIN_TOKEN getbusbar/busbarThe container ships a bootable default config; a binary through install.sh and a Helm chart are also available.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The gateway holds provider keys and passes all model and tool traffic through itself
- Policy and budget setup decides which models and tools agents may reach
This is third-party code. Review the repository files before installing.
What it does
Busbar is an execution boundary for AI: a single static Rust binary that sits between applications or agents and what they can reach: models, MCP tools and A2A agents. For traffic routed through it, an operator verifies, governs, routes and records model calls, tool use and agent delegation before they reach approved destinations. Model protocols: OpenAI, OpenAI Responses, Anthropic, Gemini, Cohere and Bedrock Converse. All 36 ingress-and-upstream protocol pairs are served, and a same-protocol request is forwarded byte for byte. Provider keys stay at the boundary in the operator's environment, and the config stores the variable name. The model execution plane has virtual keys, group budgets and spend tracking, weighted pools with failover, concurrency caps, circuit breakers, TLS and mTLS, Prometheus and OTLP metrics and audit webhooks. MCP tool governance and A2A agent trust use the same model: caller grants, approved schemas, budgets, pinning and re-verification.
Who it is for. Platform teams and administrators who run agents and apps on models from several vendors and want keys, budgets and audit in one place.
Good fit when
- Provider keys must stay in your infrastructure while teams receive virtual keys
- Groups need spend budgets and cost tracking across model calls
- Different client SDKs reach other vendors' models through one gateway address
- You need an audit trail of model and tool calls with webhooks
Not a fit when
- You need a catalog of hundreds of providers: the authors say the LiteLLM catalog is far larger
- You want a hosted service with no self-operation: Busbar is self-hosted only
- You need only personal use by one agent without pools and budgets: a gateway is overkill
Example request
Start Busbar locally with a fast pool of Claude and route my Anthropic SDK through itLimitations
Busbar is operated by you: you install the binary or container, write config.yaml and keep provider keys in the environment. Its provider catalog is smaller than LiteLLM's, which the authors name as a reason to pick that product, and the README comparison table was written by the authors. The README mostly demonstrates the model execution plane, with MCP governance and A2A trust described as the same model. Read the curl install script before running it. The config format is outside the SemVer compatibility guarantee.
How to disable. Stop the busbar process or the getbusbar/busbar container and delete the binary and config.yaml. For Kubernetes run helm uninstall busbar.
FAQ
What is a pool in the config?
A weighted group of models you name in config.yaml. For example a fast pool: 80% Claude and 20% GPT with Bedrock on failover. The client calls the pool name as a model.
Which model protocols are supported?
OpenAI, OpenAI Responses, Anthropic, Gemini, Cohere and Bedrock Converse in every ingress and upstream combination (36 pairs). A same-protocol request is forwarded byte for byte.
Does Busbar send data out?
No, it is a self-hosted gateway with no hosted service and no signup, and it sends no telemetry. Data goes only to the providers and destinations you configured.
How do I check the config quickly?
With busbar --validate: it parses config.yaml and every provider reference and exits non-zero on any error, with no server, network or state. It fits CI.
How do I run it on Kubernetes?
With helm repo add busbar https://getbusbar.github.io/helm-charts and helm install busbar busbar/busbar -f my-values.yaml. One container with no sidecar, an image of about 5.7 MiB.
Discussion
No questions or reviews yet.
Related
CLI toolsAgentgateway
agentgateway
A proxy for agentic traffic: routes and secures connections to MCP servers, LLMs, and other agents over A2A
The GoModel gateway puts MCP servers behind one protected address and keeps their tokens out of the agent's reach.
A self-hosted gateway for multiple LLM keys and providers: rotation, failover, request logs and usage accounting
A self-hosted MCP and A2A gateway with identity provider integration, access control and observability for enterprise agents
A Rust gateway that puts MCP servers and LLM providers behind one address and adds authorization, rate limits and tool search
AIHelms is an organizational MCP gateway that attributes calls to employee keys and tracks configured per-tool costs.
README in short
The README describes Busbar as an execution boundary between applications and resources, gives latency and memory figures, a comparison with gateways, a quick launch via script or container, Kubernetes deployment, what is governed (models, tools, agents) and version compatibility terms.