Visualizing Agent Runtime Behavior for Human Intervention in Vibe Coding
A web dashboard for OpenCode that connects to a local OpenCode HTTP server (REST + Server-Sent Events), enabling developers to work across multiple directories while inspecting live message streams, todos, subtasks, and visualized agent execution flows. The system provides rich cross-linking between todos, transcripts, and individual action-flow blocks, supporting real-time monitoring, navigation, and intervention during agent runtime execution.
- Action-flow visualization — Orthogonal layout of mapped tool/agent steps, branching forks, contextual tooltips, and click-to-focus that ties the flow to todos and transcripts.
Actions durationtoggles between fixed step spacing and horizontally scaled blocks keyed to measured duration.Actions colorswitches the palette between tokens and tool type lenses. Toolbartimeline/summarychanges how planner subtasks are arranged in the rail; fullscreen is available for the flow view. - Multi-directory sessions via
x-opencode-directory, aligned with how OpenCode labels workspaces from the CLI. - Realtime harness UI — Streamed assistant turns, todos and
todo_writebatch replay, approve/reject for question tooling. - Subtask linkage — Optional connectors from todo rows into a linked card or into the focused action when one is selected.
- Session operations — Rename, fork, SSE with polling fallback, optional outbound harness guidance prefix on user prompts.
VibeTrace requires the OpenCode CLI running in HTTP headless mode.
Follow the upstream installation guide, then verify the installation:
opencode --versionLaunch the server with:
opencode serveBy default, the server listens on an address similar to:
http://127.0.0.1:4096If the port changes, make sure to update it in .env.local as well.
You can also specify a fixed port explicitly:
opencode serve --port 4096Create a local environment file:
cp .env.example .env.localThen set the OpenCode server endpoint:
VITE_OPENCODE_BASE=http://127.0.0.1:4096| Variable | Description |
|---|---|
VITE_OPENCODE_BASE |
Base URL used for all VibeTrace → OpenCode API requests. Must match the running OpenCode server address. |
VITE_OPENCODE_DEFAULT_MODEL (optional) |
Overrides the default bootstrap model using the format provider/model. If omitted, OpenCode's default model will be used. |
Install project dependencies:
npm installStart the development server:
npm run devThe frontend development server runs at:
http://localhost:5173(See vite.config.ts for configuration details.)
Make sure the opencode serve process remains running while using the UI.
src/App.tsxandsrc/components/wire sessions, transcripts, todos, connectors, dialogs, fullscreen views.src/services/opencodeApi.tsis the canonical HTTP/SSE client.src/utils/contains folder helpers, todo materialization, SSE parsing,MappedActionconstruction, grouping, and forks.docs/stores design/integration notes outside the runtime bundle.fig/holds README imagery.scripts/holds tooling such assmoke-opencode-session.mjsfor probing a live daemon.
Treat the authoritative API contract as the pair running opencode serve + src/services/opencodeApi.ts.
React 19 · TypeScript · Vite · Tailwind CSS 4 · d3 · react-tooltip
MIT.
