BurnRate Documentation

BurnRate is an AI usage analytics tool that tracks costs, tokens, and usage patterns across 7 AI coding providers. It runs locally on your machine, reads your existing session data, and serves a real-time analytics dashboard. Your data never leaves your machine.

Installation

macOS (Homebrew)

The fastest way to install BurnRate on macOS:

brew install burnrate-dev/tap/burnrate

Linux

Download the latest release for your architecture:

# AMD64
curl -L https://github.com/burnrate-dev/burnrate/releases/latest/download/burnrate_linux_amd64.tar.gz | tar xz
sudo mv burnrate /usr/local/bin/

# ARM64
curl -L https://github.com/burnrate-dev/burnrate/releases/latest/download/burnrate_linux_arm64.tar.gz | tar xz
sudo mv burnrate /usr/local/bin/

Windows

Download the latest .exe from the releases page and add it to your PATH. Or use scoop:

scoop install burnrate

From Source

Requires Go 1.24+:

git clone https://github.com/burnrate-dev/burnrate.git
cd burnrate
make build
./burnrate
i

BurnRate is a single binary with zero dependencies. It uses a pure-Go SQLite implementation (no CGO required), so it works on any platform without additional libraries.

First Run

After installing, simply run:

burnrate

BurnRate will automatically:

  1. Detect which AI coding tools you have installed
  2. Parse your local session data from each provider
  3. Launch an analytics dashboard at http://localhost:8089
  4. Open the dashboard in your default browser
*

BurnRate automatically detects providers based on standard data directories. No API keys needed. No external connections. Everything runs locally.

Setup Wizard

For a guided setup with plan configuration and license activation:

burnrate setup

The wizard walks you through:

Configuration

BurnRate stores its configuration at ~/.burnrate/config.json. You can edit this file directly or use burnrate config to view the current settings.

~/.burnrate/config.json
{
  "plan": "max20x",
  "planCost": 240,
  "providers": "auto",
  "port": 8089,
  "licenseKey": "",
  "providerPlans": {
    "cursor": "cursor-pro"
  },
  "notifications": {
    "enabled": true,
    "budgetAlerts": true,
    "dailySummary": true
  },
  "projectBudgets": {},
  "teamSync": false,
  "teamCode": ""
}
FieldTypeDescription
planstringYour AI subscription plan. Options: max, max5x, max20x, pro, team, plus, chatgpt-pro, cursor-pro, cursor-business, api, free, enterprise
planCostnumberMonthly cost in USD of your plan. Used to calculate value multiplier.
providersstring"auto" (detect installed), "all", or comma-separated list: "claude,cursor,codex"
portnumberDashboard port. Default: 8089
licenseKeystringPro or Team license key (format: tt_xxxx...)
providerPlansobjectPer-provider plan overrides for accurate cost calculation
notificationsobjectDesktop notification preferences
projectBudgetsobjectPer-project spending caps. See Budget Alerts
teamSyncbooleanEnable background metrics sync to team dashboard
teamCodestringTeam invite code for team membership

Supported Providers

BurnRate reads session data from 7 AI coding tools. No API keys or credentials are needed — it reads the local files each tool already creates on your machine.

ProviderData SourceTokensCacheToolsLimits
Claude CodeJSONL session filesFullFullFullReal-time
Cursor IDESQLite databaseHash-basedNoSource typeActivity
GitHub CopilotVS Code state DBPartialNoRolesNo
WindsurfVS Code state DBFullFullFullNo
AiderJSONL analyticsFullNoEventsNo
Cline / Roo CodeJSON task filesFullFullFullNo
OpenAI Codex CLIJSONL session filesPartialNoMessagesNo

Claude Code

BurnRate reads Claude Code's JSONL session files, which provide the richest data of any provider: full token counts (input, output, cache read, cache create), tool call names, model identification, and subagent tracking.

Data directory
~/.claude/projects/
File format
JSONL — one event per line per session
Subagent support
Full — reads subagents/agent-{id}.jsonl files and links to parent sessions
Rate limits
Real-time via Anthropic OAuth API (5-hour, 7-day, per-model windows)
Platforms
macOS, Linux, Windows

Cursor IDE

BurnRate reads Cursor's local SQLite tracking database. Cursor tracks code generation events as hashed entries rather than full token counts.

Data file
~/.cursor/ai-tracking/ai-code-tracking.db
macOS path
~/Library/Application Support/Cursor/
Linux path
~/.config/Cursor/
Windows path
%APPDATA%\Cursor\
Limitation
No direct token counts — uses code hash count as proxy for API usage

GitHub Copilot

BurnRate reads Copilot's chat session data stored in VS Code's extension state database.

Data file
state.vscdb in github.copilot or github.copilot-chat extension storage
macOS path
~/Library/Application Support/Code/User/globalStorage/github.copilot*/
Linux path
~/.config/Code/User/globalStorage/github.copilot*/
Windows path
%APPDATA%\Code\User\globalStorage\github.copilot*\
Default model
gpt-4o (when model field is empty)

Windsurf

Windsurf stores chat data similarly to VS Code extensions, with rich token and tool call data.

Data file
state.vscdb in workspace and global storage directories
macOS path
~/Library/Application Support/Windsurf/User/
Linux path
~/.config/Windsurf/User/
Windows path
%APPDATA%\Windsurf\User\
Features
Full cache metrics (read + create), tool call tracking per message

Aider

Aider writes structured analytics to a JSONL log file. BurnRate also supports a fallback parser for older Markdown chat history files.

Primary data
~/.aider/analytics.jsonl — structured events with token counts and costs
Fallback data
.aider.chat.history.md files in project directories (limited: no token data)
Note
Aider uses API keys directly, so cost tracking is especially valuable here

Cline / Roo Code

BurnRate reads task-level conversation history from Cline and its forks (Roo Code). Supports three extension IDs.

Data file
api_conversation_history.json per task
Location
VS Code globalStorage/{extensionId}/tasks/{taskId}/
Extension IDs
saoudrizwan.claude-dev, rooveterinaryinc.roo-cline, rooveterinaryinc.roo-code
Features
Full token counts including cache metrics, tool call tracking, per-API-request breakdown

OpenAI Codex CLI

BurnRate reads Codex CLI session logs from the standard sessions directory.

Data directory
~/.codex/sessions/*.jsonl
Features
Input/output tokens, model identification, git branch tracking
Limitation
No cache metrics (Codex doesn't expose them)

Dashboard

The BurnRate dashboard is a single-page web application served locally at http://localhost:8089. It auto-refreshes every 60 seconds and re-fetches data when you switch back to the tab after any absence.

Header Controls

KPI Cards

Five key metric cards at the top of the dashboard, always visible:

Plan Value

Shows your value multiplier — how much more you get compared to API pricing. A 20x multiplier means your $200/mo plan delivers $4,000 worth of API calls.

Plan

Your current subscription plan and monthly cost. Change via burnrate setup or the plan selector dropdown.

Total Tokens

Combined input and output tokens across all sessions. Tokens are units of text (~4 characters each).

Sessions

Total number of AI conversations with a message count subtitle.

Cache Hit Rate

Percentage of tokens served from cache at 90% discount. Higher = cheaper. Increase by keeping sessions focused on related files.

Overview Tab

The default view showing a high-level summary of your AI usage:

Sessions Tab

Detailed log of every AI conversation with powerful filtering:

Filter controls:

Sortable columns: Session ID, Date, Duration, Messages, Input Tokens, Output Tokens, API Equivalent, Cache Hit Rate, Session Type, Agent Count, Project.

Click any row to expand a detailed breakdown showing all session metadata, token counts, tool calls, and project information.

Costs Tab

Comprehensive cost analysis with forecasting:

Projects Tab

Usage grouped by project directory:

Usage Tab PRO

Deep analysis of how you use AI tools:

Optimize Tab PRO

The optimization engine analyzes your usage and generates actionable recommendations. See Optimization Engine for details.

Comparison Tab

Side-by-side cost efficiency analysis across all your AI tools:

ROI Tab PRO

Return on investment analysis using your git history:

i

ROI analysis requires git history. BurnRate scans your project directories for git repos and correlates commits with AI session timestamps.

Limits Tab

Real-time rate limit tracking for providers that expose usage data:

Claude Code limits (via Anthropic OAuth API):

Cursor activity: Requests today, requests this week, sessions, tokens.

Codex activity: Requests and session counts.

Set custom alert thresholds (e.g., notify at 75% utilization) with the inline controls.

Budgets Tab

Set spending caps per project and receive alerts when approaching limits:

Agents Tab

Sub-agent observability for Claude Code's Agent tool:

Wrapped Tab

Your AI usage highlights in a shareable card format:

Optimization Engine PRO

BurnRate's optimization engine includes 46 rules across 7 categories that analyze your usage patterns and generate actionable cost-saving recommendations.

Rule Categories

CategoryRulesFocus
Context Efficiency5Session length, context bloat, session depth, token accumulation
Caching4Cache hit rates, prompt caching, duplicate work detection
Model Selection6Model downgrades, multi-model strategies, thinking token analysis
Workflow5Session planning, batch vs interactive, idle sessions
Cost Optimization4Cost per outcome, provider arbitrage, peak hours analysis
Tool Usage3Tool overuse, tool selection, error retry loops
Provider-Specific23Targeted optimizations for Claude Code, Cursor, Copilot, Codex, Windsurf, Cline, and Aider

How It Works

  1. BurnRate analyzes your session data against each rule's threshold conditions
  2. Triggered rules generate optimization cards ranked by impact (High, Medium, Low)
  3. Each card includes: estimated monthly savings, educational explanation, an analogy to make the concept intuitive, and a config snippet you can apply
  4. The Auto-Apply feature can automatically patch your config files (e.g., CLAUDE.md, .cursorrules) with the recommended changes

Provider-Specific Examples

Budget Alerts

Set spending caps per project to prevent runaway costs:

Example budget configuration
{
  "projectBudgets": {
    "my-project": {
      "monthlyCapUSD": 100,
      "dailyCapUSD": 10,
      "burnRateCapUSD": 5,
      "alertThresholds": [75, 90, 100]
    }
  }
}

Budget status is shown in the Budgets tab with visual progress bars and color-coded alerts (green = OK, yellow = warning, red = exceeded).

Notifications

BurnRate supports cross-platform desktop notifications:

Notification types:

A background monitor checks every 5 minutes with deduplication to prevent notification spam.

PDF Reports PRO

Generate a multi-page PDF report of your AI usage analytics. The report includes:

Click the download button in the dashboard header, or call the API directly:

curl http://localhost:8089/api/export/pdf -o burnrate-report.pdf

Sharing & Snapshots

Generate a shareable summary of your AI usage. The snapshot includes aggregate metrics only — never raw session content, code, or file paths.

Rate Limit Tracking

BurnRate tracks real-time rate limit utilization for providers that expose this data:

Claude Code

Reads OAuth credentials from your system keychain and queries the Anthropic usage API for:

Each window shows utilization percentage, reset countdown, and you can set custom alert thresholds.

Cursor & Codex

Activity-level monitoring (requests and sessions per day/week) — these providers don't expose hard rate limits locally.

Spend Forecasting

BurnRate's forecasting engine predicts your future spending based on historical patterns:

Team Setup TEAM

BurnRate Teams gives engineering leaders visibility into AI spending across their team. Each team member runs the local CLI as usual; aggregated (privacy-safe) metrics are synced to a shared team dashboard.

Create a Team Account

Sign up at getburnrate.io/signup and subscribe to the Team plan ($29/seat/month).

Generate License Keys

In the cloud dashboard, go to the Account tab and generate license keys for each team member. Each key is unique and tied to a machine.

Members Install & Configure

Each member installs BurnRate and runs the setup wizard with their license key:

brew install burnrate-dev/tap/burnrate
burnrate setup

Join the Team

Members join using an invite code or invite link:

burnrate join <invite-code>

Or click the invite link sent by the team admin.

Metrics Sync Automatically

With teamSync: true in the config, BurnRate syncs aggregated metrics to the team dashboard every 15 minutes. All dashboards update in real time.

Team Dashboard

The team dashboard at getburnrate.io/team/{id} provides aggregated analytics across all members:

Team KPIs

Team Tabs

Inviting Members

Team admins can invite members in two ways:

  1. Email invite — Enter the member's email in the Members tab. They receive an email with a join link.
  2. Invite link — Generate a shareable invite link. Anyone with the link can join the team (subject to max uses if configured).

Members join by visiting the link or using the CLI:

burnrate join abc123def456

Privacy & Data

*

BurnRate takes privacy seriously. Team metrics sync only sends aggregated summaries, never raw data.

What IS synced:

What is NEVER synced:

The device identifier is a SHA-256 hash of your hostname and home directory — it cannot be reversed to identify you.

Plan Comparison

FeatureFREEPRO $12/moTEAM $29/seat/mo
Providers3All 7All 7
Session history30 daysUnlimitedUnlimited
Dashboard tabs3 (Overview, Sessions, Costs)All 12All 12
Optimization engine (46 rules)FullFull
Auto-apply optimizationsFullFull
PDF report exportFullFull
Provider comparisonFullFull
ROI analysis (git-based)FullFull
Budget alertsBasicFullFull
Rate limit trackingFullFullFull
Spend forecastingFullFullFull
Team dashboardFull
Member managementFull
Team budgets & alertsFull
Aggregated team analyticsFull

License Keys

License keys unlock Pro or Team features on the local CLI. Each key is a 64-character hex string prefixed with tt_.

Activating a Key

Three ways to activate:

  1. Setup wizard: burnrate setup and enter when prompted
  2. Dashboard: Click the shield icon in the header and enter in the License modal
  3. Config file: Add "licenseKey": "tt_your_key_here" to ~/.burnrate/config.json
  4. Environment variable: BURNRATE_LICENSE=tt_your_key_here burnrate

Validation

Billing & Checkout

Billing is handled through Stripe. From the cloud dashboard at getburnrate.io/app:

CLI Commands

CommandDescription
burnrateLaunch the analytics dashboard on localhost:8089
burnrate setupInteractive setup wizard — plan selection, license key, provider detection
burnrate join <code>Join a team using an invite code
burnrate digestPrint a weekly AI spend summary to the terminal
burnrate digest --sendSend the weekly digest to Slack via configured webhook
burnrate configDisplay current configuration file and settings
burnrate versionPrint the installed version
burnrate helpShow usage information

Config File Reference

Full configuration reference for ~/.burnrate/config.json:

Complete config with all options
{
  "licenseKey": "tt_abc123...",
  "licenseServer": "https://getburnrate.io",
  "port": 8089,
  "plan": "max20x",
  "planCost": 240,
  "providers": "auto",
  "providerPlans": {
    "cursor": "cursor-pro",
    "copilot": "copilot-business"
  },
  "teamSync": true,
  "teamCode": "abc123def456",
  "projectBudgets": {
    "my-app": {
      "monthlyCapUSD": 150,
      "dailyCapUSD": 15,
      "burnRateCapUSD": 5,
      "alertThresholds": [75, 90, 100]
    }
  },
  "notifications": {
    "enabled": true,
    "budgetAlerts": true,
    "optimizationAlerts": false,
    "dailySummary": true
  }
}

Model Pricing

BurnRate calculates API-equivalent costs using current model pricing (per million tokens):

Anthropic (Claude)

ModelInputOutputCache ReadCache Create
Claude Opus 4.6$5.00$25.00$0.50$6.25
Claude Sonnet 4.5/4.6$3.00$15.00$0.30$3.75
Claude Haiku 4.5$1.00$5.00$0.10$1.25

OpenAI

ModelInputOutput
GPT-4o$2.50$10.00
GPT-4o mini$0.15$0.60
o1$15.00$60.00
o3$10.00$40.00

Google

ModelInputOutput
Gemini 2.0 Flash$0.10$0.40
Gemini 2.0 Pro$1.25$10.00
Gemini 1.5 Pro$1.25$5.00
i

BurnRate also supports DeepSeek, Mistral, xAI (Grok), and Amazon Nova models. Pricing is updated regularly in the analyzer package.

Environment Variables

VariableDescription
PORTOverride dashboard port (default: 8089)
BURNRATE_LICENSELicense key (overrides config file)
BURNRATE_DEVEnable dev mode (local + cloud features in one process)
DATABASE_URLPostgreSQL connection string (enables cloud mode)
JWT_SECRETJWT signing key (required with DATABASE_URL)
STRIPE_API_KEYStripe API key (enables billing)
STRIPE_WEBHOOK_SECRETStripe webhook signature secret
STRIPE_PRICE_PROStripe price ID for Pro plan
STRIPE_PRICE_TEAMStripe price ID for Team plan
CLOUD_URLCloud server URL (default: https://getburnrate.io)
BURNRATE_MIGRATERun DB migrations on startup (cloud mode)
DD_API_KEYDatadog agent API key (production monitoring)

Troubleshooting

No data showing up

Dashboard goes blank after being idle

If the browser tab has been in the background for an extended period (e.g., overnight), the auto-refresh timer may have been throttled by the browser. Simply click anywhere on the page or switch to the tab — BurnRate automatically re-fetches data when the tab becomes visible.

Rate limits not showing

License key not activating

High memory usage

If you have thousands of sessions, BurnRate's initial parse may use more memory. It parses files in parallel using a worker pool. After the initial parse, data is cached for 5 minutes before the next refresh.

Port already in use

If port 8089 is occupied, set a different port:

# Via environment variable
PORT=8090 burnrate

# Or in config file
# Set "port": 8090 in ~/.burnrate/config.json

Getting help

If you're still stuck: