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, orsearch_panesto read current terminal output and session details. - Manage windows and panes — Use
rename_session,resize_pane,select_layout, ormove_windowto reorganize your tmux workspace. - Execute commands in panes — Run
send_keys,run_command, orpaste_textto drive processes and interact with running shells. - Create and split sessions — Use
create_session,create_window, orsplit_windowto set up new tmux layouts for your tasks. - Clean up tmux objects — Call
kill_session,kill_window,clear_pane, ordelete_bufferto tear down sessions and remove scrollback. - Suppress shell history — Create sessions with
suppress_persistent_history=trueto keep test runs out of persistent Bash/Zsh/Fish history.
Documentation
libtmux-mcp
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