gbasin/agentboard

Web GUI for tmux optimized for AI agent TUIs, with support for iOS safari and mac w/ keyboard shortcuts

Agentboard – Web‑based UI for tmux‑driven AI agents

What it is

Agentboard is a small web application that sits in front of a tmux session and shows each pane as a separate “agent” (Claude, Codex, Pi, …). It discovers local and remote tmux windows, reads the agents’ JSON‑L logs, and presents a live, touch‑friendly terminal (via xterm.js) that you can reach from any device – laptop, phone or tablet – over a LAN or Tailscale network.

Why it matters for AI/LLM workflows

Many developers run LLM‑backed assistants inside a terminal multiplexer (tmux) because the agents keep state in the pane and write logs to ~/.claude/. Managing dozens of panes, remembering which one is waiting for input, and copying/pasting on a phone is painful. Agentboard solves that by:

  • Auto‑detecting agent panes and showing their current status (working, waiting, needs permission).
  • Persisting session metadata so you can hibernate a pane, close its tmux window, and later wake it without losing the conversation.
  • Providing a mobile‑optimized UI (touch scrolling, virtual arrow keys, image paste) that works in iOS Safari.
  • Allowing remote tmux discovery over SSH, so a single dashboard can monitor agents running on multiple machines.

Core features (as described in the README)

Feature What you get
Session discovery Polls local tmux windows and optional remote hosts via SSH; shows each as a card in the sidebar.
Status inference Reads pane output and Claude/Codex JSONL logs to label a session as working, waiting, or asking for permission.
Live terminal Streams I/O through a WebSocket to a React + xterm.js front‑end; you can type, scroll, and send mouse events.
Hibernate / History Keeps dormant sessions visible; their tmux windows are closed but metadata stays, and a single click wakes them.
Mobile UI iOS Safari support: paste images, virtual D‑pad, quick‑keys toolbar, long‑press selection, clipboard‑forwarding.
Claude Code fullscreen Enables Claude’s no‑flicker renderer with mouse support out of the box.
Remote tmux support Optional SSH polling of other hosts; view‑only by default, with optional attach/control flags.
Dependency risk scanner Built‑in bun run deps:risk to audit npm/Bun dependencies for security and maintenance issues.
Session recovery Saves session names, project paths and launch details; lets you reopen interrupted sessions after a reboot.
Keyboard shortcuts Quick navigation and session management (Ctrl+Option+N for new, Ctrl+Option+X to kill, etc.).
Configurable env vars Fine‑grained control over discovery prefixes, clipboard handling, tmux sync, remote polling intervals, paste‑image limits, etc.

How to get it running

  1. Prerequisites – Install tmux and (recommended) Tailscale for easy networking.
  2. Installation – Choose one:
    • Homebrew: brew tap gbasin/tap && brew install agentboard && agentboard
    • npm: npm install -g @gbasin/agentboard && agentboard
    • npx: npx @gbasin/agentboard
    • From source (requires Bun 1.3.14+): bun install && bun run dev (dev server on 5173) or bun run build && bun run start (production on 4040).
  3. Open a browser to http://localhost:4040 (or the machine’s LAN/Tailscale address) and you’ll see the dashboard.
  4. (Optional) Set up a systemd or launchd service for a persistent background server.

Security note

Agentboard does not provide authentication; anyone who can reach the HTTP/WebSocket endpoint gets full terminal access. The default binding is 127.0.0.1, which is safe for local use. Exposing it publicly requires additional network‑level protection (e.g., Tailscale, VPN, firewall) or a reverse‑proxy with auth.


All information above is taken directly from the repository’s README; no extra features are inferred.

Related

  • Project
  • Project
  • Project
  • Project
  • Project