A manager for multiple Claude Code instances with tmux
Project description
Features
- Worktree Isolation: Each agent gets its own git worktree, preventing branch conflicts
- TUI Dashboard: Real-time status monitoring with vim-style navigation
- Attention System: Jump between panes needing user input (permission requests, notifications, questions)
- Plugin Integration: Claude Code hooks track agent state in a shared SQLite database
- tmux Bindings: Quick navigation with customizable keybindings
Requirements
- Python 3.12+
- tmux
- uv (recommended) or pip
- git
Installation
From GitHub (Recommended)
Install the plugin directly from GitHub using Claude Code's marketplace:
claude /install-plugin burstMembrane/claude-tmux
Then install the CLI tools:
# With uv (recommended)
uv tool install claude-tmux
# Or with pip
pip install claude-tmux
From PyPI
If you prefer to install everything via PyPI:
# Install CLI tools
uv tool install claude-tmux
# Run guided setup to install the plugin
claude-tmux setup
The setup command copies the bundled plugin to Claude Code and optionally configures tmux bindings and the MCP server.
Quick Start
# Create a new agent with a worktree
claude-tmux new feature-auth
# List all agents
claude-tmux ls
# Attach to an agent's tmux window
claude-tmux attach feature-auth
# Launch the TUI dashboard
claude-tmux ui
# Jump to next pane needing attention
claude-tmux next-attention
# Merge and cleanup when done
claude-tmux merge feature-auth
TUI Dashboard
Launch with claude-tmux ui for an interactive dashboard.
Navigation:
| Key | Action |
|---|---|
j/k |
Move cursor down/up |
g/G |
Jump to top/bottom |
Enter |
Switch to agent pane |
/ |
Search agents |
A |
Toggle attention-only filter |
p |
Toggle preview pane |
n |
Create new agent |
x |
Kill selected agent |
? |
Show all keybindings |
q |
Quit |
Environment Variables:
| Variable | Default | Description |
|---|---|---|
CLAUDE_TMUX_TUI_PREVIEW |
true |
Show preview pane on startup |
CLAUDE_TMUX_TUI_PERSIST |
true |
Keep TUI open after jumping to agent |
tmux Integration
Add to your .tmux.conf:
# Popup TUI dashboard
bind-key M-u display-popup -E -w 90% -h 85% "ctmux ui"
# Generate all recommended bindings
claude-tmux bindings >> ~/.tmux.conf
Plugin Setup
The Claude Code plugin tracks agent state automatically via lifecycle hooks.
If you installed the plugin from GitHub (/install-plugin), it's already configured. Use this section only if you installed via PyPI and need to run claude-tmux setup.
Guided Setup
claude-tmux setup
This command:
- Checks prerequisites (tmux, claude, git, Python 3.12+)
- Copies the bundled plugin to Claude Code
- Configures tmux key bindings (optional)
- Installs MCP server globally (optional)
- Builds macOS desktop notifier (optional, macOS only)
- Verifies the installation
Options:
| Flag | Description |
|---|---|
--yes, -y |
Skip confirmation prompts |
--skip-bindings |
Don't install tmux key bindings |
--skip-mcp |
Don't install MCP server |
--skip-notifier |
Don't build macOS notifier |
--reinstall |
Reinstall even if already installed |
Uninstall
claude-tmux uninstall
Removes the plugin from Claude Code and optionally removes tmux bindings.
| Flag | Description |
|---|---|
--yes, -y |
Skip confirmation prompts |
--keep-bindings |
Don't remove tmux key bindings |
CLI Reference
# Setup
claude-tmux setup # Install plugin and configure
claude-tmux uninstall # Remove plugin
claude-tmux doctor # Validate environment
# Agent Management
claude-tmux new <name> # Create agent with optional worktree
claude-tmux kill <name> # Stop agent
claude-tmux attach <name> # Switch to agent window
claude-tmux ls # List agents with status
claude-tmux merge <name> # Squash-merge worktree and cleanup
# Navigation
claude-tmux next-attention # Jump to next attention pane
claude-tmux prev-attention # Jump to previous attention pane
claude-tmux next-done # Jump to next completed pane
# Utilities
claude-tmux reconcile # Clean up stale agents
claude-tmux events # View event log
claude-tmux bindings # Generate tmux keybindings
Development
See CLAUDE.md for architecture details, coding standards, and contributor guidelines.
make install # Install dependencies
make test # Run tests
make typecheck # Run mypy
make pre-commit # Run all checks
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claude_tmux-1.2.0.tar.gz.
File metadata
- Download URL: claude_tmux-1.2.0.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
810ae578bb92576f9db387b9b4b57d259ace8bc347e732bcca4448033cd2d14d
|
|
| MD5 |
6b63d8424103194724e18e88f639d5cb
|
|
| BLAKE2b-256 |
32cadf567d1e9017b7e4d33bbc647a38964e9e3c7004c59975a6f6e3cc446252
|
File details
Details for the file claude_tmux-1.2.0-py3-none-any.whl.
File metadata
- Download URL: claude_tmux-1.2.0-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ffc042a43dc055b257e17a5e1a0bff674f5437f7bc45c0e5010881793e2f6eb
|
|
| MD5 |
3196cd7ad2c7cea44b7678e74284e8de
|
|
| BLAKE2b-256 |
9b2af2a6c23bdcb86958e2e28045e82179cc3dfddc0f5cb2d12406d873616cad
|