opencode-ratelimits
v1.1.4
Published
Display provider rate limits (x-ratelimit-* headers) in the OpenCode TUI footer
Maintainers
Readme
opencode-ratelimits
An OpenCode plugin that displays your provider's rate limits (x-ratelimit-* headers) in the TUI footer. Published on npm.
⚡ 599/600 req · 858K/1M tok · reset 8.5sInstall
Install from npm (the plugin is published there):
opencode plugin add opencode-ratelimitsOr add it to your config — global (~/.config/opencode/opencode.json) or per-project (opencode.json):
{
"plugins": ["opencode-ratelimits"]
}Or install from GitHub:
opencode plugin add github:reda-maizate/opencode-ratelimitsRestart the TUI after installing (the TUI client loads plugins on startup):
# quit the TUI, then reopen it
opencodeUpdate later with opencode plugin update.
How it works
The plugin has two entrypoints that communicate over OpenCode's plugin RPC:
- Server (
index.ts) — hookshttp.response, extracts thex-ratelimit-*headers from primary responses, and publishes them as typed RPC events. - TUI (
tui.tsx) — calls the plugin'sratelimitsRPC for the current state, subscribes toupdatedevents, and renders the limits for the session's active provider in theprompt.footer.statusslot.
Limits are tracked per provider, so switching models — or subagents running on another provider — each show their own numbers. The footer hides itself after ten minutes without a response.
If the footer never appears, your provider likely doesn't send rate-limit headers (see below), or the server plugin failed to load — check the OpenCode server log.
Requirements
- OpenCode v2 or later — the plugin uses the v2 plugin system (separate server and TUI entrypoints communicating over RPC).
- Your provider must return OpenAI-compatible rate-limit headers:
| Header | Example |
|---|---|
| x-ratelimit-limit-requests | 600 |
| x-ratelimit-remaining-requests | 599 |
| x-ratelimit-reset-requests | 100ms |
| x-ratelimit-limit-tokens | 1000000 |
| x-ratelimit-remaining-tokens | 999999 |
| x-ratelimit-reset-tokens | 8s522ms |
These are returned by Scaleway's Generative APIs and other OpenAI-compatible providers.
Development
bun install # dev dependencies (types and tests only — the plugin itself has none)
bun run typecheck
bun testLicense
MIT
