Ratelimits
Display provider rate limits (x-ratelimit-* headers) in the OpenCode TUI footer
0
580
580 in 7 days
37.0
Multi-signal model
4 days ago
2026-10-16
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": ["opencode-ratelimits@1.1.4"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-ratelimits@1.1.4"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D opencode-ratelimitsOpenCode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
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.5s
Install
Install from npm (the plugin is published there):
opencode plugin add opencode-ratelimits
Or 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-ratelimits
Restart the TUI after installing (the TUI client loads plugins on startup):
# quit the TUI, then reopen it
opencode
Update 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 test
License
MIT
Similar plugins
Cache Compact
opencode-cache-compact
Cache-friendly context compaction for OpenCode (V1 and V2): append a summary in place, then cut what the model sees down to it.
Plugboard
opencode-plugboard
Use the ChatGPT, Claude, Copilot and OpenCode Go logins in your OpenCode server from any app: an OpenCode V2 plugin serving OpenAI, Anthropic and Gemini compatible APIs.
Kimi Code Statusline
opencode-kimi-code-statusline
OpenCode TUI plugin: display Kimi For Coding (Kimi Code) subscription quota (rolling 5h / weekly) in the footer statusline. V2-native, zero-config, no cookies.