Skip to content

v0.1.0 — Initial public release

Choose a tag to compare

@tdody tdody released this 31 May 02:01
· 94 commits to main since this release
e5d97e1

First public cut of Switchboard — a live browser dashboard for tmux sessions, purpose-built for watching a swarm of Claude Code agents without the tab-fight.

Kanban dashboard

Highlights

Kanban dashboard

  • Sessions become columns, every tmux window becomes a card; status colors call out idle / running / waiting / failed at a glance.
  • Drag to reorder columns and tiles within a column.
  • Sticky header with quick session / window creation.

Live terminal modal

  • xterm.js bridged over WebSocket with auto-reconnect on transient drops.
  • Robust input — bracketed paste, buffered text, image paste from the clipboard.
  • Modal header chips: branch, PR #, CI rollup, zoom controls.
  • Interactive prompts (menu / y-n / press-enter) rendered as a click-or-keyboard overlay over the terminal.
  • Kill / rename / new-window controls without leaving the modal.

Claude Code awareness

  • Detects spinner with elapsed, recap of the last assistant line, branch + PR + CI, and pending-input across menu / y-n / press-enter / free-form question shapes.
  • Per-pane context-window percent and per-session cost surfaced inline.
  • Rolling-window Claude usage pill with plan-% scraping.

Notifications & glance-ability

  • Native browser notifications when any agent flips to waiting; favicon dot mirrors the state.
  • Status legend explains every color and glyph.

Discoverability

  • ⌘K command palette — send keys to the focused pane from anywhere, with localStorage-backed recents.
  • ? shortcuts sheet.
  • First-run interactive tour, replayable from Settings.
  • In-app Docs tab with architecture diagrams.
  • ✨ Auto-rename — Anthropic Haiku suggests a window name for every pane in a session, with per-row preview / edit / skip before applying.

Editor & GitHub linkifiers

  • Clickable file paths in pane output open in your configured IDE; ⚙️ Settings picks from probed-and-installed editors.
  • Clickable PR #N chips open the GitHub PR in a new tab.

Themes & accessibility

  • Four themes: dark / light / high-contrast / phosphor.
  • Every interactive surface, including the xterm.js 256-color palette, clears WCAG AA contrast — wired up to a CI audit .

Requirements

  • Backend: Python ≥ 3.11, tmux, uv (FastAPI + pydantic-settings).
  • Frontend: Node ≥ 20 (Vite + React 19, xterm.js).
  • Optional: an editor on the IDE allowlist (code, cursor, …) for path-click open, gh for PR / CI chip enrichment.

Quickstart

```bash
cd backend && uv sync && cd ..
cd frontend && npm install && cd ..
git config core.hooksPath scripts/hooks # one-time
./scripts/dev.sh # backend :8765, frontend :5173
```

Then open http://localhost:5173. Full instructions, env vars, and a seeded-tmux dev script in the README.

Notable bug fixes baked into this cut

  • Reject typed numbered lists as menu prompts so the prompt overlay no longer pops up mid-typing (#69).
  • Stabilize the test_open client fixture against the claude_usage prewarm thread to eliminate the CI race seen on #68 (#68).
  • Free-form question detection picks up "let me know", "awaiting your …", and the modern ⏺ assistant marker.
  • Per-agent context % survives the brain-emoji status bar across Claude Code builds.
  • Branch cache TTL dropped to 2 s so a git checkout inside a pane lights up the dashboard in the next poll.

Full changelog: https://github.com/tdody/switchboard/commits/v0.1.0