anomalyco / anomalyco/opencode
feat(tui): view shell output from composer
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- PR merge metrics
- PR metrics pending
Description
Problem
The V2 TUI composer lists running shell commands in its Shell tab, but selecting a command only supports killing it. There is no way to inspect the command's captured stdout/stderr from the TUI.
The server already exposes paged retained output through v2.shell.output (GET /api/shell/:id/output) using an absolute byte cursor.
Desired experience
From the composer Shell tab, open the selected shell command's output in a focused viewer.
- Show the command and current status.
- Read captured combined stdout/stderr through
shell.outputrather than introducing another output path. - Support output larger than one page.
- Allow refreshing or following output while the shell is running.
- Preserve existing navigation back to the shell list and the existing kill action.
- Handle output that has been removed or is no longer retained without closing the composer unexpectedly.
Design questions
- Should Enter open an inline drill-down inside the composer, or a full-height dialog?
- Should the viewer follow new output by default while running, with an explicit way to pause?
- The current Shell tab lists only running commands. If completed output should remain discoverable, define its retention and list semantics separately rather than coupling them implicitly to this viewer.
Scope
This issue is for the TUI reader and interaction. The paged shell-output API already exists; changing durable shell history or retention is not required for the first slice.
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 at the V2 TUI composer’s Shell tab and the existing v2.shell.output endpoint (GET /api/shell/:id/output). Trace how the selected command and kill action are handled, then design the focused output viewer around paged absolute-byte reads, refresh or follow behavior, navigation back, and removed output. Done means running commands expose retained combined stdout/stderr without disrupting the composer.
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
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100