anomalyco / anomalyco/opencode
[FEATURE]: Surface MCP tool progress in the TUI (revive #32480 with a dedicated progress event)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- PR merge metrics
- PR metrics pending
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
MCP servers commonly emit notifications/progress for long-running tools (30–180 s search over a large index, reindex, etc.). Since #32477 the client receives those notifications and resets the per-request timeout, but nothing is shown in the UI: the tool card keeps a bare spinner, so users can't tell "working" from "hung". Verified on 1.18.31 against a local streamable-http server — the server sees _meta.progressToken and its notifications are delivered, the TUI just ignores them.
What I'd like: render the running tool's progress in the TUI (e.g. In progress [N/M] · message on the tool card), using a dedicated event so it isn't confused with streamed partial tool output (session.next.tool.progress).
Prior art: #26328 (design + plan, closed by the stale bot) and #32480 (implementation, auto-closed during PR cleanup — the open question there was exactly the event name). Happy to rebase #32480 with a renamed event if a maintainer confirms the shape.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the implementation history in #32480 and the notification handling described in #32477. Trace how MCP notifications reach the TUI and how the tool card handles streamed partial output. Done means the TUI displays MCP tool progress distinctly from partial tool output, with the event shape resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100