pi-go-quota

OpenCode Go plan quota for pi: footer status and /model-go picker showing requests-per-5-hours limits for each Go model.

Packages

Package details

extension

Install pi-go-quota from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-go-quota
Package
pi-go-quota
Version
1.2.1
Published
Sep 25, 2026
Downloads
203/mo · 11/wk
Author
cicciocanestro
License
MIT
Types
extension
Size
24 KB
Dependencies
0 dependencies · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./go-quota.ts"
  ]
}

Security note

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

README

go-quota

Pio extension that surfaces OpenCode Go plan quotas: a footer status for the active model and a /model-go picker that lists every Go model with its requests-per-5-hours limit.

Live data: on every startup (and every /model-go) the extension fetches limits from two sources — https://opencode.ai/go (top-10 chart with effective promo values, e.g. DeepSeek V4.1 Flash 4× already multiplied) and https://opencode.ai/docs/go/ ("Estimated requests" + "Usage limits" tables covering all ~27 plan models) — and merges them, so quota numbers stay up to date automatically. A static fallback table (September 2026) is used only when both pages are unreachable.

Features

  • Footer status — for the active OpenCode Go model, e.g. omen-alpha · 11.6k richieste/5h. Hidden for other providers.
  • /model-go [query] — picker of all OpenCode Go models, sorted by quota (most generous first):
    • requests per 5 hours per model
    • monthly budget included in the plan (e.g. max $60/mese)
    • promo/region annotations (e.g. New · 4× usage, regioni limitate)
    • same flow as /model: type to fuzzy-filter, arrows to navigate, Enter to switch, Esc to cancel
    • current model marked with ✓

Install

# from npm (once published)
pi install npm:pi-go-quota

# from a git repo
pi install git:github.com/cicciocanestro/pi-go-quota

# or, to try without installing:
pi -e npm:pi-go-quota

Usage

/model-go              # browse all Go models by quota
/model-go alpha        # fuzzy-filter by id

The footer status key is go-quota. If you use a powerline-style footer you can color it via customItems:

{
  "powerline": {
    "customItems": [
      { "id": "go-quota", "statusKey": "go-quota", "position": "right", "color": "#FFB347" }
    ]
  }
}

How it works

On startup the extension downloads two pages in parallel and merges them:

  1. https://opencode.ai/go — the "Est. requests / 5 hr" chart row by row: each <div data-slot="model-row" data-model="…"> carries the model id, the effective requests value (data-slot="requests"), the monthly budget (data-slot="allowance") and any badges or region notes. When a promo is active the page shows the base value struck through (<s>) followed by the effective one: the extension always takes the last <bdi>, so multipliers are already applied by the page itself. The landing page only renders the initial top-10, so these values take precedence but don't cover everything.
  2. https://opencode.ai/docs/go/ — the "Estimated requests" table (requests per 5 hours for every model) and the "Usage limits" table (monthly dollar budget per model), which cover the full lineup (~27 models). Docs display names are slugified to canonical ids (Kimi K3 → kimi-k3, parenthetical variants like (≤ 256K tokens) or (Off-Peak) stripped).

Docs values form the base layer; Go-page values are overlaid on top (they include active promos). A legacy-id map (deepseek-flash → deepseek-v4.1-flash, whose row on the Go page still uses the old data-model) keeps lookups working against the canonical ids from the docs and /zen/go/v1/models. If both fetches fail (offline, pages changed) the extension falls back to the last successful parse, then to the built-in table.

License

MIT