thcThought Control

Wave Terminal

Electron terminal with blocks, widgets, AI and a wsh control CLI.

waveterm.dev ↗repo ↗docs ↗wsh reference ↗Wave AI ↗Custom widgets ↗Release notes ↗

license
Apache-2.0. Wave AI includes free beta credits through Wave's service; BYOK and local models supported.
language
Go (backend, wsh) + TypeScript/React (Electron frontend)
backing
Command Line Inc. (company, founded 2023 per Slashdot listing; funding not verified)
stars
22,463 (as of 2026-10-09)
latest release
v0.14.5, 2026-04-16
complement

Wave is a host for panes; scene could run inside a Wave terminal block, while Wave's CLI ergonomics are worth copying.

Complement it: it does a neighbouring job; interoperate.

the steelman: the best honest case for it

Wave already gives a coding agent what claude-canvas only demoed: a real second screen with many panes, driven from the command line the agent already lives in. Any CLI agent inside Wave can open a web page, a markdown preview, an image or an editor beside itself, run a command in its own block, badge a block when it needs attention, and read terminal scrollback, all through `wsh`, which works over SSH too. Blocks are addressable objects with JSON metadata, the built-in AI can screenshot widgets and act with approvals, and durable SSH sessions survive restarts. For 'an agent should be able to show me things next to the terminal', Wave is a shipping, Apache-licensed, 22k-star answer.

scores
datadriveseeedittimeratetermpxteachmatureopen
UI as data2 scene 5block metadata and widgets.json are JSON; widget internals are React code
Agent can drive it3 scene 5wsh CLI covers open/run/close/setmeta of blocks for any in-terminal agent
Agent can see it3 scene 5scrollback text and block JSON; screenshots only for built-in AI
Small, targeted edits3 scene 5id-addressed block metadata edits, not UI internals
Time travel0 scene 0
Live data rate2 scene 5sysinfo graphs and terminals stream; no published rates
Terminal native2 scene 5it is a terminal emulator, but its rich widgets are Electron/web, not terminal cells
Pixel graphics4 scene 4
Teaching1 scene 3
Maturity4 scene 122k stars, years of releases; pre-1.0 versioning
Openness4 scene 4

Wave Terminal scene now scene planned

how agents use it

How

An agent running in a Wave terminal shells out to `wsh` (open a web/preview/editor block, run a command in a new block, set block metadata, read scrollback, list blocks as JSON, badge/notify). Wave's own AI uses internal tools. No MCP server for Wave itself was found.

Wiring it in

Zero for CLI agents running inside Wave (wsh is on PATH); nothing for agents outside Wave.

Seeing the result

Text scrollback via `wsh termscrollback`, block lists/metadata as JSON; widget screenshots only available to Wave AI internally.

Small edits

Block-level: setmeta by block id, deleteblock, open/replace views. No patching of UI inside a widget.

History

None for UI/layout; durable SSH sessions preserve shell state.

In short

Agent-drivable at the workspace layout level through a CLI: an agent can open panes and point them at things, but cannot build or patch a custom UI inside them (until Tsunami ships).

architecture

An Electron app whose window is a tiled layout of 'blocks': terminals, web views, editors, file previews, sysinfo graphs, Wave AI chat and custom widgets defined in widgets.json. A Go backend (wavesrv) holds the object model (workspaces, tabs, blocks with metadata) and exposes RPC; the `wsh` CLI, available inside every Wave terminal including over SSH, talks to it to open views, edit files, set/get block metadata, read terminal scrollback, run commands in new blocks, set badges and list blocks as JSON. Wave AI has internal tools to read terminal output, screenshot widgets, read/write files with approval and navigate web widgets. A Go reactive widget framework, Tsunami (vdom-based, with an AI 'builder'), has been in progress since 2025 ('WaveApps builder framework, not yet released' per release notes).

performance

No published numbers.

adoption and upkeep

Adoption

Popular open-source desktop terminal (22.5k stars); distributed via its site, Snapcraft and package managers; no public download counts found.

Maintainability

Steady development by a small company; release cadence has slowed in 2026.

Releases: Roughly monthly through 2025 to v0.14.5 (2026-04-16); no stable release in the ~6 months since · Contributors: ~49 (GitHub contributors API with anon, last page index) · Recent: 39 commits since 2026-07-11; last push 2026-10-09 · Bus factor: medium: small company team

weaknesses
and thc-scene

Overlap

Agent opens and arranges panes beside the terminal and reads terminal text back; block ids with JSON metadata.

What scene would be reinventing

If the need is only 'show a web page / file / image next to the agent', Wave's blocks already do it. Scene's value is the custom live UI inside a pane, which Wave lacks today.

The gap it leaves

Wave cannot render an agent-authored, data-bound, keyboard-driven UI in a pane, read it back as structure, patch it by node id, or rewind it; scene can, and runs in any terminal rather than requiring one desktop app.

What to borrow

  • A small CLI (`wsh`-style) that works from any shell, including over SSH, as the agent's control surface alongside the socket/MCP
  • Badges/notify on panes for agent attention (Claude Code hooks)
  • `blocks list --json` style discovery of live scene instances and their ids
  • getmeta/setmeta as a generic id-addressed property patch
sources
  1. wavetermdev/waveterm README github.com
  2. wsh reference (docs/docs/wsh-reference.mdx) docs.waveterm.dev
  3. Wave AI docs docs.waveterm.dev
  4. Wave release notes docs.waveterm.dev
  5. Tsunami builder prompt (aiprompts/tsunami-builder.md) github.com
  6. Slashdot listing (Command Line Inc.) slashdot.org
  7. GitHub API repos/wavetermdev/waveterm api.github.com