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
CLI

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
All reasons and checks

getbusbar/busbar

Install

Works in

Manual install

docker run --rm -p 8080:8080 -e ANTHROPIC_KEY -e BUSBAR_ADMIN_TOKEN getbusbar/busbar

The container ships a bootable default config; a binary through install.sh and a Helm chart are also available.

Access and checks

How we review

Broad 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 it

Limitations

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.

CLI tools

Agentgateway

agentgateway

Official

A proxy for agentic traffic: routes and secures connections to MCP servers, LLMs, and other agents over A2A

MCP serverBroad access6.1KRepository stars
Official

The GoModel gateway puts MCP servers behind one protected address and keeps their tokens out of the agent's reach.

MCP serverBroad access1.3KRepository stars

A self-hosted gateway for multiple LLM keys and providers: rotation, failover, request logs and usage accounting

CLIBroad access7.2KRepository stars
Official

A self-hosted MCP and A2A gateway with identity provider integration, access control and observability for enterprise agents

MCP serverBroad access3.9KRepository stars

AIHelms is an organizational MCP gateway that attributes calls to employee keys and tracks configured per-tool costs.

MCP serverBroad access1KRepository stars

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.

README badge

Report a problem