Go Usage
OpenCode TUI plugin: OpenCode Go plan usage (5h/weekly/monthly) from the official usage API
0
446
24 in 7 days
36.2
Multi-signal model
8 days ago
2026-09-27
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@davidaayers/opencode-go-usage-plugin@0.1.4"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@davidaayers/opencode-go-usage-plugin@0.1.4"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D @davidaayers/opencode-go-usage-pluginOpenCode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
An OpenCode TUI sidebar plugin that shows your OpenCode Go plan usage (5h / weekly / monthly) from the official usage API — no dashboard scraping.
Go Usage
5h █▏░░░░░ wk ████▏░░ mo ███████
22% · 2h 81% · 7d 100% · 28d
Features
- Plan gauges — three eighth-block gauges (5h / wk / mo) sized to the sidebar, with percent and reset countdown beneath each
- Proximity colors — gauge and percent ramp through theme tokens as limits approach:
success<50% →accent50–74% →warning75–89% →error≥90% orrate-limited - Compact prompt line —
Go month 100%in the prompt bar when the sidebar is hidden, showing the binding constraint - Official API — polls
GET https://opencode.ai/zen/go/v1/usagewith your existing Go key; zero config, no page scraping - Live updates — 60s polling plus refresh on message/session events
- Silent by design — hidden entirely when no
opencode-gokey is present or the session is not using Go
Install
opencode plugin --global @davidaayers/opencode-go-usage-plugin
Or from inside OpenCode: press ctrl+p → "Install Plugin" → @davidaayers/opencode-go-usage-plugin. Restart OpenCode and the block appears in the sidebar once the session uses an opencode-go model.
From source
OpenCode TUI plugins load from the plugin array in ~/.config/opencode/tui.json (or a project-level tui.json) — not from opencode.jsonc, whose plugin array is server-side only. Adding a TUI-only module to opencode.jsonc will make the server fail to load it.
// ~/.config/opencode/tui.json
{
"plugin": [
"file:///absolute/path/to/opencode-go-usage-plugin/src/go-usage.tsx"
]
}
How It Works
- Usage windows: polls the official endpoint (Bearer auth with the
opencode-gokey from~/.local/share/opencode/auth.json) every 60s and on message/session events. Each window reportspercent(0–100),status(ok/rate-limited), andresetsAt. - Rendering: SolidJS JSX via
@opentui/solid, registered into thesidebar_contentandsession_prompt_rightslots through@opencode-ai/plugin/tui. Colors come from the active OpenCode theme. - Sidebar geometry: the session sidebar is a fixed 42 columns (37 usable after padding); the gauge columns are sized so the widest possible row (
100% · 28d) fits exactly.
Development
bun install
bun run build # compile src/go-usage.tsx -> dist/tui.js (run by prepack)
bun run typecheck
bun scratch-repro.tsx # headless render capture
Source lives in src/go-usage.tsx; the published entrypoint is the compiled dist/tui.js, built by build.mjs. The build runs @opentui/solid's Solid transform so JSX compiles to reactive bindings (not eager jsx() calls), leaves the host imports (@opentui/core, @opentui/solid, solid-js) external, and stays unminified so OpenCode's loader can rewrite them to its own copies.
Roadmap
Cross-repository follow-up work is tracked in the OpenCode Plugins project.
Changelog
See CHANGELOG.md for release history.
License
MIT © 2026 David Ayers
Similar plugins
Tui Quota Usage
opencode-tui-quota-usage
OpenCode quota usage sidebar tracker for OpenCode V2 CLI/TUI
Quota Sidebar
opencode-quota-sidebar
OpenCode V2 sidebar: month-to-date token/cost usage, OpenCode Go quota windows, and Zen credit balance.
Go Statusline
opencode-go-statusline
OpenCode TUI plugin: display OpenCode Go subscription quota (rolling 5h / weekly / monthly) in the footer statusline. V2-native, zero-config, no cookies.