Review of "Provider Limits" version 1

Details Page Preview

Monitor session and weekly rate limits of AI coding CLIs (Codex, Claude, OpenCode) directly in the GNOME top bar: no extra commands, no dashboards, no breaking flow. * Multi-provider: Codex, Claude, and OpenCode in a single indicator * Two display zones: compact status bar for at-a-glance fields; expanded panel on click for full detail * Per-provider field configuration: choose which fields appear in each zone and in what order * Adaptive polling: refreshes every 10 seconds while readings change, slows to 120 seconds once stable * Resilient readers: each provider tries its OAuth API first, falls back to disk or CLI, and returns partial data rather than failing silently The extension only reads local state each provider already persists on disk (auth tokens, SQLite databases, credentials files). Tokens are read fresh on every refresh and discarded immediately, nothing is stored or sent to third parties. Network calls go only to the provider APIs.

Extension Homepage
https://github.com/FranciscoKnebel/gnome-provider-limits

No comments.

FAQ

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 2

Shexli found 2 issues that may need reviewer attention.

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

EGO-L-006 warning

preferences classes should not retain window-scoped objects on instance fields without close-request cleanup

Preferences code stores window-scoped objects on the exported prefs class without `close-request` cleanup.

Destroy all objects

  • prefs.js:84
            this._languageChangedId = settings.connect("changed::language", () => {
                this._rebuildWindow(window, settings);
            })
  • prefs.js:71
    this._pages = this._pages.filter((p) => p !== existing)

All Versions

Version Status
1 Unreviewed