libtmux-mcp server
officialtmux MCP server powered by libtmux
What can you do with Libtmux MCP?
- Inspect tmux state — Ask to list sessions, capture pane output, or search panes for specific text.
- Manage tmux structure — Rename sessions, resize panes, select layouts, or move windows between sessions.
- Execute commands in panes — Create sessions/windows, split panes, send keystrokes, or run shell commands.
- Control pane processes — Paste text or buffers, pipe pane output, or set environment variables and options.
- Teardown tmux objects — Clear pane scrollback, kill sessions/windows/panes, or delete buffers.
- Suppress shell history — Create sessions or windows with no-disk history controls for cleaner test runs.
Documentation
Terminal control for AI agents, built on libtmux and FastMCP.
This server maps tmux’s object hierarchy — sessions, windows, panes — into MCP tools grouped by the operation they request. The server enforces the selected groups at the MCP tool boundary.
[!warning] Warning Pre-alpha. APIs may change. Feedback welcome.
With uvx installed:
$ claude mcp add tmux -- uvx libtmux-mcp
Quickstart
Tools
Prompts
Resources
Trust model
Client setup
What you can do
Inspect inspect
Request tmux state and terminal output.
list_sessions · capture_pane · capture_since · snapshot_pane · get_pane_info · find_pane_by_position · search_panes · wait_for_text · display_message · call_read_tools_batch
Manage manage
Change tmux structure or presentation.
rename_session · resize_pane · select_layout · select_pane · move_window · enter_copy_mode · load_buffer · wait_for_channel
Execute execute
Start or drive pane processes, or store state that can control later execution.
create_session · create_window · split_window · respawn_pane · send_keys · send_keys_batch · run_command · paste_text · paste_buffer · pipe_pane · set_option · set_environment
Teardown teardown
Delete tmux objects or retained scrollback. Not reversible.
clear_pane · kill_session · kill_window · kill_pane · kill_server · delete_buffer
Example: keep test runs out of persistent history
libtmux-mcp provides best-effort history suppression for Bash, Zsh, and Fish. MCP calls to run_command use lightweight command suppression by default. When you create a new shell, opt into stronger no-disk controls with suppress_persistent_history=true.
[!note] Prompt Create a tmux session called “checks” with best-effort no-disk shell-history controls, run
pytest -qin its initial pane, and show me the result.
The agent calls create_session with suppress_persistent_history=true, reuses active_pane_id from the returned SessionInfo, and calls run_command without an override. The same spawn option on create_window, split_window, or respawn_pane applies only to the process that call starts.
These controls reduce history noise; they do not make commands secret. See History suppression for shell-specific behavior, Configuration for the server default, and Trust model for other observation surfaces.
Mental model
- Object hierarchy — sessions contain windows, windows contain panes (Concepts)
- Toolsets — inspect, manage, execute, teardown; what each groups (Trust model)
- tmux is the source of truth — the server reads from it and writes to it, never caches or abstracts