Repository navigation
Description
Summary
In the OpenCode desktop app there is no persistent, glanceable indication of an agent's state between turns. While a turn streams, tool activity is visible; once the turn yields — including when the agent is waiting on a long external job such as CI — the transcript is static and looks identical to "stopped". Users cannot tell working, waiting on a background job, needs my input, or done without reading the last message. A small persistent status indicator at the bottom of the chat/composer would remove that ambiguity.
Environment
- opencode version: 2.0.16 (desktop app; bundled CLI 2.0.16,
opencode-cli serve) - OS: macOS 27.0.0, arm64 (Darwin 27.0.0)
- Terminal: Not applicable — desktop app (Electron,
ai.opencode.desktop) - Shell: /bin/zsh
- Install/channel: release (desktop app)
- Active plugins: none configured server-side; one CLI-only local plugin (
~/.config/opencode/plugins/activity) implementing aprompt.footer.statuschip in the TUI, which has no effect in the desktop app
Reproduction
- Open a session in the desktop app.
- Ask the agent to perform work that pauses on an external job (for example a CI wait run as a foreground streaming command), or let a turn end with background work still pending.
- Observe the chat window: after the turn's message is written, nothing persists that distinguishes waiting, working, or done.
Expected Behavior
A persistent, small status indicator at the bottom of the chat/composer, updating automatically, for example:
working— session is streaming or tools are running (animated)waiting on background task— e.g.1 background task • CI run 1234…needs input— pending permission/question or the agent awaiting the useridle/done— nothing running
It should be driven by real session state (streaming, pending permissions/forms, background shells) and ideally be settable by the agent (a session status field) so agent-side external waits are visible.
Actual Behavior
No such indicator exists. Between turns the UI is static; background shell tasks started by the agent may not be visible, and the session is indistinguishable from one where the agent has stopped. The documented plugin slots that could host such a chip (prompt.footer.status) apply only to the TUI; the desktop app exposes no plugin surface for adding UI, so a local plugin cannot solve it.
Additional Context
- Documentation checked:
/v2/docs/cli/config,/v2/docs/build/plugins/cli(TUI slots),/v2/docs/cli/web. No desktop UI extension point is documented. - Workarounds in use (both limited): the agent updates the session title with a status prefix — intrusive, overwrites user renames; and keeps a foreground streaming command running during external waits — blocks other work.
- The TUI already supports
prompt.footer.status; the equivalent slot in the desktop chat footer would be the ideal fix. - Requested by a user running long multi-agent CI-heavy workflows where multi-minute between-turn waits are common.
Activity
github-actions commentedon Sep 25, 2026
This issue doesn't fully meet our contributing guidelines.
What needs to be fixed:
[FEATURE]:.Please edit this issue to address the above within 2 hours, or it will be automatically closed.
This issue might be a duplicate of existing issues. Please check:
If you believe this was flagged incorrectly, please let a maintainer know.
github-actions commentedon Sep 25, 2026
This issue has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.
Feel free to open a new issue that follows our issue templates.