Repository navigation
v0.1.0 - First public release
First public release - v0.1.0
Live running-session badges on every OpenCode model name - right inside the model picker.
What it shows
| Badge | Meaning |
|---|---|
| (none) | no session currently running on the model |
| ? green tick | exactly 1 chat session running |
| ?? [N] blue tick + count | N (2+) sessions running on the same model in parallel |
How it works
- Consumes the server SSE stream (GET /api/event) with plain etch() - no child processes, no terminal flash, zero RAM-resident state.
- Liveness = 3 layers: authoritative session.status events, 15s activity TTL on generation-stream events, and explicit oolCallID tracking so long builds never lose their badge.
- Badges are always rebuilt from the bare name (suffix stripped first) - no double-badge or stuck-badge possible.
- Deleted sessions have all state cleaned; a 10-min safety refresh catches missed events.
Install
Copy index.ts + package.json into ~/.config/opencode/plugins/model-badges/ and touch opencode.jsonc to reload. See the README for details.
Tuning
Top of index.ts: ACTIVITY_TTL_MS, STATUS_DEBOUNCE_MS, TOOL_MAX_MS, MIN_MULTI.
MIT License - (c) engrtarun