Skip to content

[FEATURE]: add tui.footer.items plugin hook for persistent status display #18969

@andrewdunndev

Description

@andrewdunndev

Currently the only TUI-facing plugin hook for displaying information is tui.toast.show, which creates ephemeral notifications. Several plugins (token-tracker, tps-meter) use toasts to show persistent status, which creates a stream of popups that's disruptive during focused work.

I'd like to propose a tui.footer.items hook that lets plugins inject persistent status items into the session footer:

"tui.footer.items"?: (input: {
  sessionID: string;
}, output: {
  items: Array<{
    key: string;        // unique identifier for dedup
    text: string;       // display text
    fg?: string;        // foreground color (theme token or hex)
    priority?: number;  // ordering hint (lower = further left)
  }>;
}) => Promise<void>;

The footer component would call this hook on each render cycle (or on a timer) and merge plugin items with the built-in items (LSP, MCP, permissions). Plugin items would appear between the directory path and the built-in status items.

This would let the token-tracker plugin show $0.42 · 4.5M tok persistently in the footer instead of firing toasts. It would also enable other plugins to surface persistent status (build status, test results, deployment state) without notification spam.

I understand this is an API surface change and would want maintainer input on the design before implementing. Happy to iterate on the hook shape.

Metadata

Metadata

Assignees

Labels

coreAnything pertaining to core functionality of the application (opencode server stuff)

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions