Repository navigation
[FEATURE]: Plugin Status Bar / Widget Area for Real-Time Plugin State #10400
Description
Feature hasn't been suggested before.
- I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
Summary
Add a dedicated UI area in the TUI where plugins can display real-time status information. This would enable plugins to show persistent state (like rate limits, connection status, account info) without requiring the user to ask the agent or check logs.
Problem Statement
Current Behavior
Plugins can:
- Hook into events (
event,stop,tool.execute.*) - Transform system prompts
- Add custom tools
- Log to console/files
Plugins CANNOT:
- Display persistent status in the TUI
- Show real-time updates (rate limits, connection state, etc.)
- Provide at-a-glance information to users
Use Case: Multi-Account OAuth Plugin
I maintain opencode-anthropic-multi-auth, a plugin that provides multi-account OAuth with automatic failover on rate limits.
What users need to see:
- Current active account
- Which accounts are rate-limited (and time remaining)
- Total accounts available
- Request count / session stats
Current workarounds (all suboptimal):
MULTI_AUTH_DEBUG=1+ tail log file in separate terminal- Custom tool that agent can call (adds latency, uses context)
- Inject into system prompt (invisible to user)
Proposed Solution
Option A: Status Bar Area
A dedicated line/area at the bottom or top of the TUI where plugins can register status widgets:
┌─────────────────────────────────────────────────────────────┐
│ [multi-auth] Account: "work" │ Rate Limited: 1/3 │ ⏱ 4m 32s │
└─────────────────────────────────────────────────────────────┘
Option B: Plugin Status Panel
A collapsible panel (like the file tree) showing plugin states:
▼ Plugin Status
multi-auth: ✓ work (2 rate limited)
my-plugin: ● connected
Option C: Status Hook with Periodic Updates
return {
"status.provide": async (input, output) => {
output.items.push({
plugin: "multi-auth",
icon: "🔐",
text: `${currentAccount.label} (${rateLimitedCount} limited)`,
tooltip: "Click for details",
priority: 10,
})
}
}API Design Proposal
interface StatusItem {
id: string // Unique identifier
text: string // Short display text
icon?: string // Emoji or icon
tooltip?: string // Hover/expand text
priority?: number // Sort order (higher = more prominent)
color?: "default" | "success" | "warning" | "error"
}
interface Hooks {
"status.provide"?: (
input: { timestamp: number },
output: { items: StatusItem[] }
) => Promise<void>
}The TUI would call this hook periodically (e.g., every 5 seconds) or on specific events.
Benefits
- Better UX - Users see plugin state at a glance
- Debugging - No need for separate terminal/log tailing
- Professional feel - Status bars are standard in IDEs/terminals
- Plugin ecosystem - Enables richer plugin experiences
Related Issues
- [FEATURE]: Plugin-Provided Autocomplete #5558 - Plugin-Provided Autocomplete (similar extensibility pattern)
- [FEATURE]: Plugin Hook for Instant TUI Commands #5305 - Plugin Hook for Instant TUI Commands
Implementation Notes
- Could reuse the existing hook pattern from other plugin APIs
- Status area could be toggled with a keybind (like
Ctrl+S) - Consider rate-limiting status updates to prevent performance issues
Happy to help implement this if the design direction is approved!
Activity
github-actions commentedon Jan 24, 2026
This issue might be a duplicate of existing issues. Please check:
Feel free to ignore if none of these address your specific case.
github-actions commentedon Mar 27, 2026
To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.