codeburn/extensions/gnome-shell
AgentSeal 291c376f06 feat(extensions): add GNOME Shell extension for native panel feel
Ship a GJS extension in extensions/gnome-shell/codeburn@agentseal.org so
GNOME users get the same panel-anchored popover Ubuntu's Quick Settings
uses, rather than the floating window the Tauri tray is limited to through
StatusNotifierItem.

The extension lives inside gnome-shell as a PanelMenu.Button, so it has
direct access to its own icon coordinates and can open a PopupMenu docked
under it without any IPC or DBus plumbing. The tradeoff is it only works
on GNOME 45+; the Tauri app in desktop/ stays the cross-platform option
for KDE, Unity, wlroots, and Windows users.

Data flow: the extension shells out to codeburn status --format menubar-json
every 60 seconds, parses the payload, and renders a header, top 5 activities,
and optimize findings count. Refresh and Open Full Report actions live in
the popup menu; the Open Full Report action spawns gnome-terminal with the
codeburn report TUI.
2026-04-18 04:06:44 -07:00
..
codeburn@agentseal.org feat(extensions): add GNOME Shell extension for native panel feel 2026-04-18 04:06:44 -07:00
README.md feat(extensions): add GNOME Shell extension for native panel feel 2026-04-18 04:06:44 -07:00

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+)
  • codeburn CLI 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, type r, 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.