feat(tui): show running tools and LLM status in sidebar #6968

Open
opened 2026-02-16 18:05:44 -05:00 by yindo · 8 comments
Owner

Originally created by @Becktor on GitHub (Jan 20, 2026).

Originally assigned to: @thdxr on GitHub.

Problem

When running long operations (tools, background agents, LLM inference), there's no visibility into what's currently happening in the session.

Proposed Solution

Add a "Running" section to the sidebar that shows:

  • LLM status on top (Pondering, Streaming, Sending, Retry) with elapsed time
  • Active tools (bash, grep, glob, etc.) with command preview and elapsed time
  • Background agents numbered as agent1, agent2, etc.

Screencapture

Image

Notes

This is a UI change, so I understand it needs design review. Happy to discuss the approach or make adjustments based on feedback.

PR

https://github.com/anomalyco/opencode/pull/9658
I have a working implementation ready if this is something the team would consider.

Originally created by @Becktor on GitHub (Jan 20, 2026). Originally assigned to: @thdxr on GitHub. ### Problem When running long operations (tools, background agents, LLM inference), there's no visibility into what's currently happening in the session. ### Proposed Solution Add a "Running" section to the sidebar that shows: - LLM status on top (Pondering, Streaming, Sending, Retry) with elapsed time - Active tools (bash, grep, glob, etc.) with command preview and elapsed time - Background agents numbered as agent1, agent2, etc. ### Screencapture ![Image](https://github.com/user-attachments/assets/8d4b7f7a-55d1-4353-901a-55c5c67ecb7e) ### Notes This is a UI change, so I understand it needs design review. Happy to discuss the approach or make adjustments based on feedback. ### PR https://github.com/anomalyco/opencode/pull/9658 I have a working implementation ready if this is something the team would consider.
yindo added the opentui label 2026-02-16 18:05:44 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Jan 20, 2026):

This issue might be a duplicate of existing issues. Please check:

  • #8322: Show background tasks status in sidebar - directly requests the same feature with task count badge and expandable list showing agent type, description, and elapsed time
  • #8904: Desktop app needs better visual feedback when working - requests persistent, animated visual indicators showing when OpenCode is actively working
  • #5872: Show elapsed runtime per command / instruction in TUI + Replay - requests elapsed time visibility for active commands/instructions
  • #7093: 'Waiting for' indicator - requests clearer indication of what the system is waiting for (LLM API response, MCP API response, local command)
  • #3742: progress indicator - requests visual indicator showing whether response is in progress or finished
  • #4089: TUI should show when it is retrying - requests visibility into retry status

Feel free to ignore if none of these address your specific case.

@github-actions[bot] commented on GitHub (Jan 20, 2026): This issue might be a duplicate of existing issues. Please check: - #8322: Show background tasks status in sidebar - directly requests the same feature with task count badge and expandable list showing agent type, description, and elapsed time - #8904: Desktop app needs better visual feedback when working - requests persistent, animated visual indicators showing when OpenCode is actively working - #5872: Show elapsed runtime per command / instruction in TUI + Replay - requests elapsed time visibility for active commands/instructions - #7093: 'Waiting for' indicator - requests clearer indication of what the system is waiting for (LLM API response, MCP API response, local command) - #3742: progress indicator - requests visual indicator showing whether response is in progress or finished - #4089: TUI should show when it is retrying - requests visibility into retry status Feel free to ignore if none of these address your specific case.
Author
Owner

@R44VC0RP commented on GitHub (Jan 20, 2026):

Thanks for the detailed proposal and mockup @Becktor! This addresses a real pain point - not knowing what's happening during long-running operations.

A few related issues have been flagged:

  • #8322 specifically asks for background task visibility in the sidebar
  • #7093 and #5872 request "waiting for" indicators and elapsed time

Your proposal is the most comprehensive of the bunch and includes a nice UI mockup. Since you mention you have a working implementation ready, would you be open to submitting a PR?

A few things to consider for the PR:

  • The current SessionStatus types (idle, retry, busy) would likely need to be extended to capture the granular tool/LLM states you're proposing
  • The sidebar component (sidebar.tsx) is already structured with collapsible sections, so adding a "Running" section should fit well with the existing pattern

Looking forward to seeing the implementation!

@R44VC0RP commented on GitHub (Jan 20, 2026): Thanks for the detailed proposal and mockup @Becktor! This addresses a real pain point - not knowing what's happening during long-running operations. A few related issues have been flagged: - #8322 specifically asks for background task visibility in the sidebar - #7093 and #5872 request "waiting for" indicators and elapsed time Your proposal is the most comprehensive of the bunch and includes a nice UI mockup. Since you mention you have a working implementation ready, would you be open to submitting a PR? A few things to consider for the PR: - The current `SessionStatus` types (`idle`, `retry`, `busy`) would likely need to be extended to capture the granular tool/LLM states you're proposing - The sidebar component (`sidebar.tsx`) is already structured with collapsible sections, so adding a "Running" section should fit well with the existing pattern Looking forward to seeing the implementation!
Author
Owner

@Becktor commented on GitHub (Jan 20, 2026):

Hey thanks for the feedback!
Yeah I already have a suggestion on how to get the granular states:

edit: ended up extending the SessionStatus types instead. Was a lot cleaner.

For running tools, I just look for ToolPart entries with state.status === "running" and check elapsed time against a 2 second threshold.
The PR is ready: https://github.com/anomalyco/opencode/pull/9658

@Becktor commented on GitHub (Jan 20, 2026): Hey thanks for the feedback! Yeah I already have a suggestion on how to get the granular states: _edit:_ ended up extending the SessionStatus types instead. Was a lot cleaner. For running tools, I just look for `ToolPart` entries with `state.status === "running"` and check elapsed time against a 2 second threshold. The PR is ready: https://github.com/anomalyco/opencode/pull/9658
Author
Owner

@Becktor commented on GitHub (Jan 26, 2026):

@R44VC0RP Hate to ping you just curious what the process is moving forward. I know there are a lot of PR's and issues coming in so if patience is required I'll just hang tight and wait.

@Becktor commented on GitHub (Jan 26, 2026): @R44VC0RP Hate to ping you just curious what the process is moving forward. I know there are a lot of PR's and issues coming in so if patience is required I'll just hang tight and wait.
Author
Owner

@R44VC0RP commented on GitHub (Jan 26, 2026):

Hey, valid question.

I can surface this to the team but I am a bit unclear why we actually need the agent1 agent2 statuses, would these be the subagents that a primary agent has started?

@R44VC0RP commented on GitHub (Jan 26, 2026): Hey, valid question. I can surface this to the team but I am a bit unclear why we actually need the `agent1` `agent2` statuses, would these be the subagents that a primary agent has started?
Author
Owner

@Becktor commented on GitHub (Jan 27, 2026):

Yes correct! Let me update the screenshot to a gif of it running instead. (see above)

@Becktor commented on GitHub (Jan 27, 2026): Yes correct! Let me update the screenshot to a gif of it running instead. (see above)
Author
Owner

@Becktor commented on GitHub (Jan 29, 2026):

@R44VC0RP Please let me know if I should refrain from pining you. However, I'm still not really certain what the process is to get this merged.

@Becktor commented on GitHub (Jan 29, 2026): @R44VC0RP Please let me know if I should refrain from pining you. However, I'm still not really certain what the process is to get this merged.
Author
Owner

@jaroslaw-weber commented on GitHub (Feb 7, 2026):

please merge this, sometimes my agent get stuck and im not sure if its an issue on the provider side or sth else.

@jaroslaw-weber commented on GitHub (Feb 7, 2026): please merge this, sometimes my agent get stuck and im not sure if its an issue on the provider side or sth else.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#6968