Multi-agent, no interception
Claude Code, Codex CLI, Copilot CLI, and Cursor — all attributed by the same daemon. Reads the transcript files those tools already write to disk. Nothing in your network path.
Reads transcripts from disk — no proxy
After brew install, three things run on your machine: a small daemon that tails the transcripts your agents
already write to disk, a status bar in your editor, and a CLI for repo / branch / ticket
attribution. Nothing in your network path.
brew install siropkin/budi/budi && budi init curl -fsSL https://raw.githubusercontent.com/siropkin/budi/main/scripts/install-standalone.sh | bash && budi init irm https://raw.githubusercontent.com/siropkin/budi/main/scripts/install-standalone.ps1 | iex; budi init Installs v8.4.2.
One command. macOS / Linux / Windows. No account needed.
Editor wiring →
Today 7d 30d
─────────────────────────────────────────────────────────────────
$ 4.92 session 🟢 healthy $ 38.10 $ 162.44
Top repos (last 7d) cost msgs
─────────────────────────────────────────────────────────────────
siropkin/budi $ 18.40 21,402
acme/web $ 11.05 9,118
acme/infra $ 6.32 2,845
personal/notes $ 2.33 661
Top models (last 7d) cost share
─────────────────────────────────────────────────────────────────
claude-opus-4-7 $ 22.18 58.2 %
claude-sonnet-4-6 $ 9.41 24.7 %
claude-haiku-4-5 $ 4.02 10.6 %
gpt-5-codex $ 2.49 6.5 %
Branch hot list cost ticket
─────────────────────────────────────────────────────────────────
budi/feat/cloud-ingest $ 6.91 BUD-214
acme/web/fix/checkout-retry $ 4.38 WEB-1180
acme/web/feat/analytics-v3 $ 3.12 WEB-1199 What it does
Claude Code, Codex CLI, Copilot CLI, and Cursor — tracked by tailing the transcripts each agent already writes to disk. No proxy, no gateway, nothing in your network path.
Claude Code, Codex CLI, Copilot CLI, and Cursor — all attributed by the same daemon. Reads the transcript files those tools already write to disk. Nothing in your network path.
Reads transcripts from disk — no proxy Cost attributed to the repo and branch you were on, with ticket IDs lifted from branch names. Filter by ticket, activity, file, model, or custom tag.
budi stats branch · ticket · file Rolling 1d / 7d / 30d cost in Claude Code, Cursor, VS Code, and JetBrains IDEs — scoped per host. The Cursor line shows Cursor spend only; the VS Code and JetBrains lines show their own Copilot Chat spend only.
_projects/budi · main · budi · $3.47 session · $0.06 message budi sessions <id> shows context growth, cache reuse, cost acceleration, and retry loops in plain English. Not a wall of emoji by default — quiet unless you ask.
budi sessions <id> // src/lib/payments.ts
export async function refundCharge ( id : string ) {
return stripe.refunds. create({ charge: id });
}
cursor. Each editor shows only its own host's
spend.
// src/lib/payments.ts
export async function refundCharge ( id : string ) {
return stripe.refunds. create({ charge: id });
}
copilot_chat. Each editor shows only its own host's
spend.
Session 2968337c-1e4
──────────────────────────────────────────────────
Agent claude_code
Models claude-opus-4-7
Started 2026-05-06T02:22:27.194+00:00
Duration 2m22s
Repos github.com/siropkin/budi-cloud
Branches 151-repos-companion-tables, main
Outcome no_commit
…explanation…
Messages 22
Input 32
Output 10.8K
Est. cost $1.70
Tags
file_path: src/lib/dal.ts
…
🟢 Vitals: GREEN budi sessions <id> — session health in plain English. No dashboard required.
What budi tracks
Local-log parsing is the primary path for every provider. APIs (Cursor Usage, GitHub Billing) are supplementary truth-up, never the only signal — so attribution keeps working offline, without auth tokens, and when an upstream API breaks.
cursorDiskKV ) primary; Cursor Usage API supplementary Cost accuracy by sub-state — see breakdown below the matrix.
Three sub-states determine how close the dollar number gets to the actual bill.
Individual licence + GitHub Billing API PAT
exactGitHub-side dollar truth-up — the authoritative number per (date, model) bucket.
Individual licence, no PAT
estimated · output-onlyLocal-tail tokens × manifest pricing. May-2026+ VS Code builds persist response tokens but drop prompt-token counts client-side, so the dollar number is output-only — meaningful as a relative trend, but a fraction of the actual bill.
Org-managed licence
estimated · output-onlySame output-only manifest pricing, with no Billing API truth-up — the user-level Billing API endpoint returns empty for org-managed Copilot licences.
Org-managed Copilot licences see local-tail tokens × pricing-manifest dollars only — the GitHub-side reconciliation that individually-licensed users get is unavailable because the user-level Billing API endpoint is empty for org-managed seats. Local-tail still produces real tokens; the truth-up is the missing piece for that subset.
Why not just use X?
If one of these already fits your workflow, use it. Budi exists for the case where you run more than one agent, care about per-repo attribution, and are not willing to upload prompts.
Anthropic Console · OpenAI usage · Cursor usage
ccusage · codeburn · claude-usage
Generic observability vendors that ingest LLM payloads
Local daemon · transcript tailing · multi-agent · opt-in cloud
Privacy contract
A small Rust daemon on your machine watches the transcript files your agents already write to disk. Nothing sits in your network path. Three things in plain English:
Prompts, code, AI responses, file paths, email addresses, raw payloads, and tag values. There is no "full upload" mode in the code.
Pre-aggregated daily numbers — tokens, cost, model name, hashed repo ID, branch name, ticket ID. Push-only, HTTPS-only. Off by default.
Sign up at app.getbudi.dev, drop your API key into ~/.config/budi/cloud.toml, set
enabled = true, restart the daemon.
Analytics.
This site (getbudi.dev) counts anonymous page views via Vercel
Web Analytics: cookieless, IP hashed daily, no session replay, no cross-site tracking. It only
runs on this site — not part of the product.
Install
The command below installs budi and runs budi init — the daemon is up and the autostart
service is wired. Editor statusline + extension wiring is the second step in the checklist below.
brew install siropkin/budi/budi && budi init curl -fsSL https://raw.githubusercontent.com/siropkin/budi/main/scripts/install-standalone.sh | bash && budi init irm https://raw.githubusercontent.com/siropkin/budi/main/scripts/install-standalone.ps1 | iex; budi init
Installs v8.4.2. Latest release
on GitHub. Prefer to install the editor extension on its own?
Pick VS Code or Cursor below.
If anything looks wrong, budi doctor is the source of truth. For
a live session health read, run budi sessions <id>.
budi init Starts the daemon on port 7878 and installs the platform-native autostart service. The hero install runs this for you — listed here so you know what just happened.
budi integrations install Wires the Claude Code statusline and offers the VS Code / Cursor extension if either editor is detected. Restart Claude Code afterwards so it picks up the new statusLine command.
budi doctor End-to-end verifier: daemon, tailers, schema, transcript visibility, and attribution health. When "All checks passed." you are done.
budi status Today-cost snapshot: daemon state and today's spend. For the full breakdown, use budi stats projects / branches / tickets.
Adds the budi status bar to VS Code, Cursor, or a JetBrains IDE. budi init offers VS Code / Cursor automatically; the JetBrains plugin ships on the JetBrains Marketplace
and is installed from inside the IDE. Pick your editor:
code --install-extension siropkin.budi cursor --install-extension siropkin.budi Settings → Plugins → Marketplace → search for budi
Same path budi init uses. Picks the right editor automatically.
budi integrations install --with cursor-extension Download cursor-budi.vsix from the budi-cursor releases page first.
code --install-extension cursor-budi.vsix --force Same VSIX file works in Cursor — Open VSX is just a discovery surface.
cursor --install-extension cursor-budi.vsix --force git clone https://github.com/siropkin/budi.git && cd budi && ./scripts/install.sh For teams (opt-in)
Daily cost per user, repo, model, branch, and ticket at app.getbudi.dev. Privacy contract spells out exactly what does and doesn't leave your machine.
FAQ
Editor coverage, Copilot, JetBrains, and why budi reads local logs instead of going through a proxy. If yours isn't here, open an issue.
By default, nothing. Optionally, only pre-aggregated daily numbers (tokens, cost, model, hashed repo ID, branch, ticket ID). Never prompts, code, responses, file paths, or emails. Budi itself is open source (MIT) and free — the optional cloud dashboard at app.getbudi.dev is the only piece you ever pay for.
Yes. One extension covers Cursor and VS Code (v8.4.0+, May 2026); a sibling Kotlin plugin covers JetBrains IDEs via the JetBrains Marketplace. Use whichever editor you use day-to-day — a user with multiple installed sees each host's own data in its status bar.
Copilot Chat is supported in 8.4.0 — real per-message tokens parsed from VS Code's local session files. GitHub-side dollar reconciliation works for individually-licensed users via the GitHub Billing API; org-managed users see local-tail tokens priced through budi's pricing manifest.
Optional, but recommended for accuracy. Without a PAT, on May-2026+ VS Code builds you get output-only token dollars — useful as a relative trend, but typically a fraction of the actual bill. With a PAT scoped to billing, budi reconciles to GitHub's exact dollar number per (date, model) bucket. Org-managed licences see output-only forever (the user-level Billing API endpoint is empty for them).
Planned for 8.5.0 (the breadth round). Same provider-plugin pattern as Cursor and Copilot Chat — local logs primary, no proxy.