Paseo plugin that shows Claude, Codex, and Antigravity plan usage in the sidebar
Requires Paseo: >=0.8.0 — from this plugin's own paseo-plugin.json.

Manifest JSON
{
"id": "provider-usage",
"requirements": {
"paseo": ">=0.8.0"
}
}paseo plugin add nerveband/paseo-provider-usageFrom the plugin's README
Install directly from Git:
paseo plugin add nerveband/paseo-provider-usage
paseo plugin ls
Check and apply updates:
paseo plugin status provider-usage
paseo plugin update provider-usage
For local development, clone the repository, run npm install and npm run typecheck, then use paseo plugin install "$PWD".
Open the app and pick Usage in the sidebar, or run the Open plan usage action from the
Command Center (Ctrl/Cmd + K).
After editing the source, apply it with paseo plugin reload provider-usage. Do not restart the
daemon; that stops running agents.
README
A Paseo plugin that puts Claude, Codex, and Antigravity plan limits in the sidebar, next to Tasks and any other sidebar contribution. One click, no menu digging, no second window.
Each row is one quota window: the label, when it resets, the share consumed, and a zero-baseline bar. Rows at 90% or above turn red. The account line names the plan, account, and which data source answered.
Internal model-pool lanes such as gpt-reserve are hidden. Those are identifier-named
mirrors of a real window rather than limits you plan around.
Paseo already knows provider usage, but it lives behind a hover tooltip and a settings screen. This plugin turns the same information into a persistent, keyboard-reachable sidebar surface and adds Antigravity, which Paseo does not report.
Usage is fetched with the CodexBar CLI, which reuses credentials you already have instead of asking for new ones.
| Provider | Source |
|---|---|
| Codex | The Codex CLI's own OAuth session. |
| Claude | An OAuth access token borrowed from OMP, else CodexBar's own strategies. |
| Antigravity | The same OMP path, else CodexBar's local Antigravity probes, agy CLI, or Google OAuth. |
Nothing launches a GUI. Antigravity usage is read over Google's OAuth quota endpoints, so neither
the Antigravity desktop app nor an interactive agy session has to be running.
If OMP is not installed, the Claude and Antigravity rows fall back to CodexBar's own provider
strategies (--source auto) rather than failing, so the plugin is still useful on a machine that
authenticates those providers another way.
PATH at ~/.local/bin/codexbar, or CODEXBAR_BIN pointing at it.
Linux and macOS builds are published on
CodexBar releases.anthropic and google-antigravity accounts signed in, for the
token-bridged Claude and Antigravity paths.Install directly from Git:
paseo plugin add nerveband/paseo-provider-usage
paseo plugin ls
Check and apply updates:
paseo plugin status provider-usage
paseo plugin update provider-usage
For local development, clone the repository, run npm install and npm run typecheck, then use paseo plugin install "$PWD".
Open the app and pick Usage in the sidebar, or run the Open plan usage action from the
Command Center (Ctrl/Cmd + K).
After editing the source, apply it with paseo plugin reload provider-usage. Do not restart the
daemon; that stops running agents.
| Variable | Effect |
|---|---|
CODEXBAR_BIN |
Absolute path to the CodexBar CLI. Defaults to ~/.local/bin/codexbar. |
Providers, refresh cadence, and thresholds are code-level constants in usage.server.ts and
main.client.tsx.
Opening the surface never blocks on a fetch. The daemon answers with the last snapshot it has
and revalidates behind it, so you read numbers immediately and see Updating… next to the
timestamp while fresh ones arrive. A spinner appears only on the very first run, when there is
no snapshot yet.
The snapshot is written to $XDG_STATE_HOME/paseo-provider-usage/snapshot.json (default
~/.local/state/...) with mode 0600, so a daemon or plugin reload still paints instantly. It
holds usage numbers, reset times, and the account label — never a token.
Provider quota endpoints are rate limited per account, so fetching stays deliberately quiet:
Claude's OAuth token is read from OMP's cache first. A forced token refresh mints a new access token and invalidates the previous one, so it is used only after the provider rejects the cached token.
0600 config file in a private temporary directory
that is deleted after each fetch.npm run typecheck # required before install or reload
paseo plugin reload provider-usage # apply source edits
paseo plugin logs provider-usage # backend stdout/stderr
| File | Role |
|---|---|
index.ts |
Registers the RPC handler, surface, sidebar item, and Command Center action. |
usage.shared.ts |
Zod contract shared by both runtimes. |
usage.server.ts |
Token bridge, CodexBar invocation, normalization, caching. |
main.client.tsx |
The React Native surface. |
Verified on Linux (x86_64) against Paseo daemon 0.5.2 and CodexBar 0.55.1, in light and dark
themes at desktop and compact widths.
Usage data comes from CodexBar by Peter Steinberger.
Scanned 10 Sep 2026, 16:24 UTC at commit b4e1b65ec6bd6c11b191193df27653d9324d8f3e.
Scanned 10 Sep 2026, 16:26 UTC from nerveband/paseo-provider-usage.