Releases: kevinsslin/BrrrnBar
Release list
brrrn v0.1.4
The menu bar app now talks to the hub far less. It submits only when your
numbers actually change (and at most once every 10 minutes), fetches the
leaderboard only when you open the Pits tab, and backs off after a failure
instead of retrying every minute. Together with the 0.1.3 hub change this keeps
a friend group well inside Cloudflare's free-tier limits. The menu bar's own
number stays local and updates every 60 seconds as before.
There are no engine changes; the version bump keeps the app, engine, and hub in
step. All the new pacing is in memory, so nothing extra is written to disk.
Install
- Download
BrrrnBar.app.zipbelow and unzip it. - Move
BrrrnBar.appto /Applications. - The bundle is unsigned, so the first launch needs a right-click (or
Control-click) then Open.
Verify
shasum -a 256 BrrrnBar.app.zip
e9cefe8a0170bcbbf622cf841da45f8b8e417abab764dd7d11411221e12af9b9
Privacy
brrrn reads and prices your logs locally. The only data that leaves your
machine is what you share to a pit (your per-day cost, token totals, and model
breakdown), sent to the hub you configured.
Upgrading
Nothing to migrate. This pairs with the 0.1.3 hub deploy; existing pits keep
working, and boards stay correct while the new per-member summaries build.
brrrn v0.1.3
Hub-only release. It is deployed to the Cloudflare Worker and needs no app or
engine update; existing installs keep working unchanged.
This removes the main source of Workers KV load. The pit board used to read
every stored machine-day for every member on each request, so a board view
generated KV reads that grew with a member's whole history rather than with
what anyone actually did. On an account near the KV daily read limit, that is
what pushed usage over the edge.
Changed
- The pit board is served from a per-member, per-machine summary kept in the
Coordinator's Durable Object storage instead of scanning every stored
machine-day on each request. A board read no longer grows with a member's
history. Board requests now route through the Coordinator so they can read
that storage. The board response is unchanged. - Submit maintains that summary in step with the day records: cost per UTC day
(for the today, week, and month windows and for streaks) and the current
week's model breakdown, tracked per machine. Cost is set per machine and
date, so a re-submit overwrites its own value instead of double-counting.
The summary lives in strongly consistent storage, so a KV write limit can
never leave it stale.
Added
- Submit rejects records dated after the current UTC day, matching the v2
routes.
Notes
- Summaries build lazily. The first submit from each member after this deploy
rebuilds theirs from existing day records; until then the board falls back to
the old scan for that member. A machine the migration cannot see yet rebuilds
from its own records on its next submit. No data migration or backfill is
required. - Audited end to end with headless Codex before merge.
brrrn v0.1.2
The numbers got audited. This release is the result of an end-to-end audit of brrrn's cost and token accounting (headless Codex at x-high reasoning, then adversarially reviewed commit by commit before merge). Every fix carries a test that fails without it, and the corrected totals were reconciled against real logs.
On the audited corpus, brrrn had been undercounting by about $2,028 all-time. If your numbers jump after updating: they were always yours, we just weren't counting them all.
Fixed
- ⚖️ Priority/flex tiers priced correctly: Codex priority processing now uses LiteLLM's tier-specific rates (about 2x standard) instead of standard rates. This was the bulk of the undercount.
- 🧾 Claude fallback/compaction iterations are billed per iteration; free pre-output refusals excluded; finalized usage beats partial streaming copies from resumed sessions.
- 🔥 Streak math is stable at microdollar precision everywhere: fifty $0.10 entries can no longer sum to $4.999999... and break your streak.
- 🧮 Hub rounding preserves decimal half-ties; app model-merge keys can no longer collide.
Faster
- App refresh: one engine scan instead of four (warm 0.22s → 0.13s, cold CPU 26.3s → 6.0s).
Notes
- Cache format bumped to v7: the first scan after updating does a one-time full rescan (~8s on large histories), then returns to ~0.1s.
- Unsigned bundle: first launch needs right-click → Open.
shasum -a 256 BrrrnBar.app.zip
b63f15c95565370e9ec6ba5dd212470be037d1d6c19d3ae35a3d44c81c2255d1
Full details in the CHANGELOG.
brrrn v0.1.1
Names, not handles. This release removes the last sharp edge in joining a crew.
What's new
- 🪪 Collision-proof IDs: your permanent identity is now an auto-generated ID; you just pick a display name. Joining a pit can no longer fail because someone took "kevin" first. (
pit join --asstill exists if you want to choose your own ID.) - ✏️ Rename your pit: any member can retitle a pit from the pencil next to its name, or
brrrn pit title <code> <name>. Pits deliberately have no admin tier; the trust model is your friends. - 🥇🥈🥉 Podium medals for today's top three on every board.
- 🏷️ Display names everywhere: set at join, change any time from the Pits tab (or
brrrn pit rename "Your Name"); renames apply in about a second. - 🧭 Simpler join: paste the one-string invite (
code@hub) your friend copied; the field explains exactly what it wants.
Install
Download BrrrnBar.app.zip below, unzip, move to Applications. Still unsigned: first launch needs right-click → Open.
shasum -a 256 BrrrnBar.app.zip
b047b57eb141be4adf78eaff6ad04ffe289ba7a7ac0cf404d1ac9c444f997923
Existing users: nothing to migrate. Your current handle keeps working; set a display name whenever you like.
Full details in the CHANGELOG.
brrrn v0.1.0 🔥
WHOOP for token burn. See the API-value cost of every token you burn in Claude Code and Codex, then compare today, this week, and this month with a private crew of friends. No accounts, no global leaderboard, no prompts ever leave your Mac.
Highlights
- 🔥 Menu bar app (macOS 14+, ~1.3 MB): today's burn in the bar; burn calendar, 14/30/90-day trend, hour-of-day rhythm in your timezone, and gym-style personal records
- 📊 By-model costs for today / week / month, with hover token detail and a fast/standard split
- 👥 Private pits: invite-code crews on a self-hosted Cloudflare Worker (free tier), emoji avatars, weekly-king crown, editable display names on permanent handles
- ⚡ Fast engine: 8.9 GB of history scans in ~8s once, ~0.1s warm
Install
Download BrrrnBar.app.zip below, unzip, move to Applications. The bundle is not yet code-signed: first launch needs right-click → Open. Or build from source, see the README.
shasum -a 256 BrrrnBar.app.zip
8eed5778dbb00cc7675b7f1a00cfd459d57c3befb409f1d01f2c3878ee5a4910
Privacy, exhaustively
What leaves your machine when you join a pit: pit code, handle, display name, a random machine ID, UTC date, token count, USD cost, Claude/Codex cost split, and per-model token/cost aggregates. Never: prompts, file paths, repo names, session content, or timestamps finer than a day. Nothing at all leaves if you never join a pit.
Full details in the CHANGELOG.