FinOps · Open Source · Multi-Provider

The open-source FinOps proxy for AI spend

Track every dollar by feature, team, and customer across OpenAI, Anthropic, and Google today — with Azure, AWS Bedrock, Groq, Mistral, and Together on the roadmap. Hard-cap budgets before the API call, not after the bill arrives.

OpenAIAnthropicGoogleAzure · AWS Bedrock · Groq · Mistral · Together — coming in v0.2 / v0.3
Terminal
The bill

Bills tell you the model, not the why.

Your invoice says gpt-4o: $4,287. It doesn't say which feature, team, or customer burned it. By the time you trace the spike, it's already on next month's card.

The damage

Alerts arrive after the damage.

A bad deploy, a runaway agent, or one abusive customer can trigger thousands of API calls before any dashboard turns red. You find out when you open the bill.

The silos

Every provider is a different silo.

OpenAI's usage page. Anthropic's console. Azure Cost Management. Bedrock CloudWatch. No unified view, no way to ask which feature is your biggest AI spend across all providers.

01 · Drop-in proxy

Set one env var. Done.

BurnLens runs a local proxy on :8420. Set OPENAI_BASE_URL or ANTHROPIC_BASE_URL and your existing SDK code routes through automatically. Less than 20ms overhead. Full streaming passthrough.

02 · Tag what matters

Attribute any call to any dimension.

Three request headers — X-BurnLens-Tag-Feature, -Team, -Customer — attribute cost to any dimension you care about. Tags are stripped before reaching the AI provider. They never leave your machine.

03 · Cap before you call

429 before the upstream request, not after the bill.

Register an API key with a daily dollar limit. At 100%, BurnLens returns 429 before the call is forwarded upstream. 50% and 80% thresholds fire Slack or email alerts.

04 · One dashboard

Every provider, unified.

OpenAI, Anthropic, and Google spend in one view today. Azure, AWS Bedrock, Groq, Mistral, and Together are on the v0.2 / v0.3 roadmap. Model breakdowns, waste detection, and budget tracking — all reconciled to the provider bill.

Built for every AI use case

Coding agents

Per-PR, per-dev attribution

Cursor, Claude Code, Cline, Windsurf — see cost per repo, developer, or PR. Hard daily caps per API key stop one runaway agent from burning the team's monthly budget overnight.

Scan retroactive history with one command →

Customer-facing AI

Per-customer spend with 429 enforcement

Tag each request with a customer ID. See which customers drive the most cost. Enforce per-customer monthly spend limits — BurnLens returns 429 before the call is forwarded.

RAG and agents

See what justifies the cost

Tag retrieval calls, tool calls, and generation separately. See whether your vector search or synthesis step is the cost driver — and whether it justifies the output quality.

Internal tools

Per-team budgets that reconcile to the bill

Set per-team monthly budgets, get Slack alerts at 80% and 100%, and export monthly reports that reconcile line-by-line to the actual provider invoice.

Why BurnLens

BurnLensHelicone / LangfuseVantage / CloudZero
Open sourcePartial
Local-first (prompts stay local)
Hard caps before API call
Per-customer attribution
Multi-cloud (Azure / AWS / GCP)Roadmap (v0.2 / v0.3)Partial

Simple pricing

Free forever for individual developers. Pay only when your team needs cloud sync.

Free
$0/mo
  • Local proxy + dashboard
  • All 3 providers
  • 5 waste detection rules
  • Budget alerts
  • 7-day history
Install free
Teams
$99/mo
  • Everything in Cloud
  • Up to 10 seats
  • RBAC (owner/admin/viewer)
  • 365-day history
  • Audit log
Talk to sales
Enterprise
Custom
  • Everything in Teams
  • Unlimited seats
  • OTEL export
  • Custom pricing rules
  • 10-year retention
Contact Us

What's new in v1.2.0

Newburnlens scan — reads Claude Code, Cursor, Codex, and Gemini CLI local logs; imports cost history without a proxy
NewClaude Code reader — parses ~/.claude/projects/ JSONL, deduplicates turns, attributes cost per session
NewCursor reader — imports spend from Cursor's local bubble DB with provider/model cost routing
NewCodex reader — parses 700+ session SQLite DB; handles event_msg wrapper and turn_context model fields
NewGemini CLI reader — supports both JSON and JSONL chat formats from ~/.gemini/tmp/
NewPer-API-key daily hard cap — 50/80/100% alerts, HTTP 429 kill-switch at 100%, TZ-aware reset
NewGit-aware auto-tagging — burnlens run -- <cmd> attributes every call to repo / dev / PR / branch
FixedGoogle & Anthropic streaming responses now log accurate token counts (no more 0-token rows)

Up in 3 commands

$pip install burnlens
$burnlens start
#Dashboard at localhost:8420/ui