tmux-mcp
Allows AI assistants to create, manage, and interact with tmux sessions, windows, and panes programmatically.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tmux-mcpCreate a tmux session named 'dev' and run 'python app.py'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tmux-mcp
An MCP server for controlling tmux sessions. Allows AI assistants to create, manage, and interact with tmux sessions, windows, and panes programmatically.
Prerequisites
Python 3.10+
tmux installed and available on
PATH
Installation
Claude Code (stdio)
claude mcp add tmux-mcp -- uvx tmux-mcpClaude Code (HTTP)
# Start the server
tmux-mcp --transport streamable-http --port 8888
# Add to Claude Code
claude mcp add --transport http tmux-mcp http://localhost:8888/mcpClaude Code (from GitHub)
claude mcp add tmux-mcp -- uvx --from git+https://github.com/WENLIXIAO-CS/tmux-mcp tmux-mcppip
pip install tmux-mcpAvailable Tools
Sessions
Tool | Description |
| List all tmux sessions with names, IDs, window count, and attached status |
| Create a new detached session (returns session/window/pane IDs) |
| Rename an existing session |
Windows
Tool | Description |
| List windows, optionally filtered by session (includes pane count) |
| Create a new window in a session (returns window/pane IDs) |
| Switch to a specific window |
| Rename a window |
Panes
Tool | Description |
| List panes with IDs, dimensions, active status, and running command |
| Split a window/pane horizontally or vertically (returns new pane ID) |
| Focus a specific pane |
| Resize a pane by direction+amount or absolute width/height |
I/O
Tool | Description |
| Send keys or commands to a pane (supports special keys like Enter, C-c, Tab) |
| Capture visible content from a pane (supports scrollback history) |
| Monitor a Claude Code pane — auto-waits during processing, auto-approves permissions, returns output when idle |
Lifecycle
Tool | Description |
| Kill a session, window, or pane by target |
Usage Examples
Create a session and run a command:
> Create a tmux session called "dev" and run "python server.py" in it
Tool call: tmux_create_session(name="dev")
-> Session 'dev' created. session_id=$1 window_id=@1 pane_id=%1
Tool call: tmux_send_keys(target="dev", keys="python server.py Enter")
-> Keys sent.Read output from a pane:
> What's the output in the dev session?
Tool call: tmux_read_pane(target="dev")
-> $ python server.py
Server running on port 8080Split a window and run a second process:
> Split the dev window and start a log tail
Tool call: tmux_split_window(target="dev:0")
-> Pane created. pane_id=%2
Tool call: tmux_send_keys(target="%2", keys="tail -f app.log Enter")
-> Keys sent.Monitor a Claude Code session (auto-wait + auto-approve):
> Run a task in the "cc" tmux session and wait for it to finish
Tool call: tmux_read_cc_pane(target="cc")
[ 0.0s] Monitoring Claude Code pane 'cc'
[ 0.0s] Permission requested: Do you want to → sending '1'
[ 1.0s] Processing: Shimmying…
[ 8.1s] Processing: · ↓ 345 tokens
[ 16.2s] Permission requested: 2. Yes, allow all edits → sending '1'
[ 32.4s] Processing: · ↓ 1.6k tokens
[115.3s] Idle: no activity indicators
-> (captured pane content with scrollback)Development
git clone https://github.com/WENLIXIAO-CS/tmux-mcp.git
cd tmux-mcp
uv sync
uv run tmux-mcpLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WENLIXIAO-CS/tmux-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server