Period bug:
_refresh() returned early when a previous fetch was still in flight, so
clicking a new period tab while the initial load was running silently
dropped the second click. Swap the loading-guard for a generation counter:
every refresh increments a counter, and only the callback whose generation
matches the latest value applies the result. Older responses are dropped,
newer ones win.
Currency bug:
codeburn status --format menubar-json is a raw USD payload; the CLI does
not convert it. The popup was only changing the symbol prefix, not the
values. Fetch the USD->target rate from Frankfurter via Soup and apply it
in formatCost(). Rate is cached per-session so tab switches don't hit the
network; on currency change we kick off a fresh fetch (or reuse the cached
rate) and re-render with the new multiplier.
Other small fixes:
* Show a single-provider tab row (when exactly one provider is installed)
instead of hiding it, so the user still sees which agent the numbers
are for.
* Activity bar chart track is now a BoxLayout so the fill width takes
effect; previously every bar rendered as 100% because the St.Widget
track stretched its only child.
* Findings CTA no longer runs labels together ("findingssave"). Adds
8px spacing between count and savings.
|
||
|---|---|---|
| .. | ||
| codeburn@agentseal.org | ||
| README.md | ||
CodeBurn GNOME Shell extension
Native GNOME panel button that shows today's AI coding spend with a click-to-open popover, matching the feel of Ubuntu's Quick Settings menu.
This is an alternative to the cross-platform Tauri tray app in ../desktop/. Use this on GNOME for the most native UX. The Tauri app stays the right choice for KDE, Unity, wlroots compositors, Windows, and headless systems.
Requirements
- GNOME Shell 45, 46, 47, or 48 (Ubuntu 22.04 LTS, 24.04 LTS, and Fedora 39+)
codeburnCLI on PATH (npm install -g codeburn)
Install (from source, local user)
cp -r extensions/gnome-shell/codeburn@agentseal.org ~/.local/share/gnome-shell/extensions/
gnome-extensions enable codeburn@agentseal.org
Then restart GNOME Shell so the extension loads:
- X11: press
Alt + F2, typer, press Enter. - Wayland: log out and log back in (GNOME on Wayland has no in-session shell restart).
What it shows
Panel button:
- 🔥 icon
- Today's cost (e.g.
$24.73)
Popup menu:
- Header: period + cost + call count + session count
- Top 5 activities (Coding, Debugging, Testing, etc.) with per-activity cost and turn count
- Optimize findings count with potential savings (if any)
- Refresh and Open Full Report actions
Data refreshes every 60 seconds. Right-click the panel button to open the default panel context menu.
Uninstall
gnome-extensions disable codeburn@agentseal.org
rm -rf ~/.local/share/gnome-shell/extensions/codeburn@agentseal.org
Development
Run a nested shell to iterate without restarting your session (X11 only):
dbus-run-session -- gnome-shell --nested --wayland
Tail the extension log:
journalctl -f -o cat /usr/bin/gnome-shell
The extension uses the GNOME 45+ ESM-based extension API (import + Extension class). It will not load on GNOME 44 or earlier.