Skip to content

Quick start

Five minutes to a usable session.

Terminal window
bun start # from the repo
# …or open the .app from /Applications

A single workspace opens with one pane. The sidebar on the left shows the workspace list and live status. The pane header shows the foreground command and any listening ports as chips.

ShortcutAction
⌘DSplit right
⌘⇧DSplit down
⌘WClose focused pane
⌘⌥←↑→↓Focus neighboring pane
⌘⇧PCommand palette
⌘⌥PProcess Manager
⌘BToggle sidebar
⌘,Settings

Full reference: Keyboard shortcuts.

In any pane:

Terminal window
cd ~/code/some-project
bun run dev # or npm run dev / cargo run / python -m http.server …

Within a second:

  • The pane header chip shows bun run dev.
  • A port chip appears as soon as the server starts listening — click it to open in a browser.
  • The sidebar’s package.json card shows the script as green pulse = running.
  • ⌘⌥P opens the Process Manager — every pid in the descendant tree, with CPU/MEM and a kill button.

In another terminal (or another τ-mux pane):

Terminal window
ht tree # workspaces / panes / surfaces
ht ports # PORT PROTO ADDR PID COMMAND
ht open # opens the unique listening port
ht kill 3000 # SIGTERM the pid bound to :3000

The CLI talks to τ-mux through the Unix socket in the app’s config dir (~/Library/Application Support/hyperterm-canvas/hyperterm.sock on macOS) — it works from any shell. See CLI overview.

Sideband channels let scripts inside the terminal stream structured content (images, charts, interactive HTML) into floating overlays. Demo scripts ship with the repo:

Terminal window
python3 scripts/demo_dashboard.py # CPU + memory + clock panels
bun scripts/demo_draw.ts # mouse-driven SVG drawing
python3 scripts/demo_chart.py # matplotlib SVG chart

The protocol is documented in Sideband overview. Client libraries are no-ops outside τ-mux, so the same script runs unmodified in a regular terminal.

The mirror streams the full UI over WebSocket. Enable it in Settings → Network → Auto-start Web Mirror, then visit http://<your-ip>:3000 from any device on the LAN. Set an auth token in the same panel if the network isn’t fully trusted.

More: Web mirror overview.