Workbench: A TUI for parallel coding agents A new open-source terminal user interface called Workbench allows developers to run multiple AI coding agents side by side in persistent tmux-backed panes. Built with Bun, React 19, and Silvery, it supports agents like Claude Code, Gemini, Goose, OpenCode, and Cursor, along with integrated file viewers and git diff tracking. The tool is installable via a curl command and aims to streamline parallel agent workflows in a full-screen TUI. 888 888 888 888 888 888 o 888 888 888 888 888 d8b 888 888 888 888 888 d888b 888 .d88b. 888d888 888 888 88888b. .d88b. 88888b. .d8888b 88888b. 888d88888b888 d88""88b 888P" 888 .88P 888 "88b d8P Y8b 888 "88b d88P" 888 "88b 88888P Y88888 888 888 888 888888K 888 888 88888888 888 888 888 888 888 8888P Y8888 Y88..88P 888 888 "88b 888 d88P Y8b. 888 888 Y88b. 888 888 888P Y888 "Y88P" 888 888 888 88888P" "Y88888 888 888 "Y8888P 888 888 A terminal workbench that runs coding-agent CLIs side by side. Each workspace gets a persistent, tmux-backed pane for an agent Claude Code, Gemini, Goose, OpenCode, Cursor, ... , an integrated file Explorer, extra shell terminals, and rich read-only viewers for the files you are working on — all in one full-screen TUI. curl -fsSL https://ehq.so/install | bash Built with Bun https://bun.sh , React 19 https://react.dev , and Silvery https://www.npmjs.com/package/silvery . Multiple agents, side by side. A left sidebar lists workspaces; each is its own agent session with an independent tab strip harness panes, terminals, and open files . Switching workspaces swaps the whole strip and restores it on the way back. Pluggable harnesses. Claude Code is the default; switch to Gemini, Goose, OpenCode, or the Cursor agent with one flag. Persistent sessions. Agent and terminal panes run on a private tmux server, so relaunching or a hot-reload restart detaches and reattaches the same live processes with tabs intact. Rich viewers. Syntax-highlighted text, Preview/Source markdown, images Kitty graphics / Sixel / true-color half-block fallback , PDFs, video playback, and rendered Mermaid diagrams. Changes tab. A live git working-tree diff per workspace, with a sidebar badge when files have changed. Themes and quick-switch. Cycle true-color themes and jump between tabs and workspaces with ergonomic Option / Alt chords. Bun https://bun.sh = 1.3.5 the runtime and package manager; the built-in PTY support that backs the agent/terminal panes landed in 1.3.5 tmux persistent agent/terminal panes - At least one coding-agent CLI on your PATH e.g. claude for the default harness - A terminal that speaks the Kitty graphics protocol for crisp inline images — ideally Ghostty https://ghostty.org also Kitty https://sw.kovidgoyal.net/kitty/ . Sixel terminals work too, and everything else falls back to true-color half-block art. Optional, for the corresponding viewers each degrades gracefully if missing : ffmpeg / ffprobe — video playback mmdc mermaid-cli https://github.com/mermaid-js/mermaid-cli — Mermaid diagrams rendered as images pdftoppm / pdfinfo Poppler — PDF page rendering curl -fsSL https://ehq.so/install | bash This installs Bun if it is missing, checks out the source into ~/.local/share/workbench-cli , runs bun install , and symlinks the launcher to ~/.local/bin/workbench-cli . Pin a specific release with WORKBENCH CLI REF=v0.1.0 , or change the locations with WORKBENCH CLI HOME / WORKBENCH CLI BIN . Tagged builds are published on the Releases https://github.com/erikqu/workbench-cli/releases page. git clone https://github.com/erikqu/workbench-cli.git cd workbench-cli/workbench-ui bun install Make the launcher available on your PATH optional but recommended : ln -s "$PWD/../bin/workbench-cli" ~/.local/bin/workbench-cli From anywhere, launch the workbench in the current directory: workbench-cli Or run it directly without the launcher from workbench-ui/ : bun run start workbench-cli path --harness