web control panel · tmux · claude code

Drive Claude Code
from your browser.

Start and stop tmux sessions, watch the real terminal live, or talk to Claude in a clean chat — all from one beautiful panel on your own server.

install.sh
$ curl -fsSL https://tmuxapp.com/install.sh | bash

macOS & Linux · needs tmux + Claude Code · or run it with Docker

TMuxApp runs on the same machine as your sessions. Each tab is a live tmux session running claude — rendered in a real terminal in the browser — or a simple chat that streams replies token-by-token. Switch, start, stop, and revisit every prompt you've sent.

Everything in one panel

Live terminal

The real Claude TUI streamed to xterm.js over tmux control mode — colors, spinners, the lot.

Multi-session tabs

Open many tmux sessions at once, each in its own tab. Switching is instant; they stay live.

💬

Simple chat mode

Prefer bubbles? A checkbox spawns Claude in streaming-JSON mode — clean chat, no terminal.

Prompt history

Every prompt and its result is saved. Reopen any one in a tab to read it back later.

Runs on tmux

Sessions live in tmux on your box, so they survive disconnects. Set the working folder per session.

Password-gated

One shared password, server-issued session tokens. Put it behind TLS and you're set.

How it works

BrowserReact · xterm.js
WebSocket
Bun serverroutes · WS bridge
tmux / claudecontrol mode · stream-json

Terminal tabs use tmux control mode (no PTY juggling); chat tabs run Claude Code's stream-json mode for clean, live-streamed replies. No magic, no scraping.

Get it running

One line

$ curl -fsSL https://tmuxapp.com/install.sh | bash

Installs Bun + tmux, sets up a systemd service, and prints your generated password.

Download install.sh

Or Docker

$ APP_PASSWORD=secret docker compose up --build -d

Self-contained instance (manages its own in-container tmux). Mount a folder to edit code.

⚠︎ This panel runs commands on your server — keep it behind a TLS proxy with a strong password (and ideally a VPN / IP allowlist).