@sreetej510/pi-usage

Pi extension that reports provider usage/rate-limit budgets (Codex, Anthropic OAuth, etc.) via /usage, with an optional statusline widget.

Packages

Package details

extension

Install @sreetej510/pi-usage from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@sreetej510/pi-usage
Package
@sreetej510/pi-usage
Version
0.1.16
Published
Jul 16, 2026
Downloads
480/mo · 480/wk
Author
sreetej510
License
MIT
Types
extension
Size
38.2 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "./dist/index.js"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@sreetej510/pi-usage

A pi coding agent extension that reports provider usage / rate-limit budgets — OpenAI Codex, Anthropic OAuth, and pi-auth-backed providers — via /usage, with an optional live statusline widget.

What it does

  • Queries the active model's provider usage endpoint (Codex app-server usage/rate-limit-reset APIs, or Anthropic's OAuth usage API) and renders remaining budget/reset windows.
  • Caches results on disk (~/.pi/agent/usage-cache.json) for a few minutes so multiple concurrent pi sessions don't hammer the provider APIs.
  • Can push a compact usage summary into the statusline, refreshed automatically with retry/backoff on rate limits (429).
  • Supports listing and consuming Codex "banked" rate-limit resets.

Commands

Command Effect
/usage Show cached usage (fetches fresh data if the cache is stale)
/usage --refresh Force a fresh fetch, bypassing the cache
/usage --no-statusline Don't update the statusline widget
/usage --clear-statusline Clear the usage statusline widget
/usage --timeout <seconds> Set the query timeout
/usage --raw Show raw usage API responses (debugging)
/usage --list-banked-resets List available Codex banked resets and expiry dates
/usage --consume-banked-reset <id> Consume a specific Codex banked reset

Install

npm install -g @sreetej510/pi-usage

Then add it to your pi settings.json:

{
  "packages": ["npm:@sreetej510/pi-usage"]
}

Or, for local development, point at the file directly:

{
  "extensions": ["/absolute/path/to/pi-extensions/extensions/pi-usage/src/index.ts"]
}

File layout

File Responsibility
src/index.ts Extension entry point + session event wiring
src/command.ts /usage command handler
src/statusline.ts Statusline state, timers, background refresh
src/footer.ts Custom footer with right-aligned usage status
src/query.ts Top-level usage query orchestration
src/codex-query.ts Codex pi-auth + app-server fallback queries
src/anthropic-query.ts Anthropic OAuth usage queries
src/codex-auth.ts Codex auth header resolution
src/anthropic-auth.ts Anthropic auth header resolution
src/codex-app-server.ts codex app-server RPC client
src/codex-reset-credits.ts Banked reset list/consume/format
src/normalize-codex.ts Codex backend + app-server payload normalization
src/normalize-anthropic.ts Anthropic usage payload normalization
src/format.ts Report/statusline formatting and display
src/shared-cache.ts On-disk shared usage cache
src/models.ts Provider/model matching helpers
src/args.ts /usage argument parsing and completions
src/constants.ts Shared constants
src/types.ts Shared TypeScript types
src/utils.ts Small parsing/formatting helpers
src/errors.ts HTTP/rate-limit error helpers
src/http.ts fetchWithTimeout wrapper

Development

npm install
npm run --workspace @sreetej510/pi-usage check     # biome + typecheck
npm run --workspace @sreetej510/pi-usage format