# Tools

Source: https://libtmux.org/en/go/latest/mcp/tools/

> Browse the operations the server exposes to MCP clients. Use the registered name and arguments when sending a tools/call request.

Browse the operations the server exposes to MCP clients. Use the registered name and arguments when sending a tools/call request.

MCP concept example

A working example of the core library. It can change without notice.

[What concept means](https://libtmux.org/en/meta/support/#concept-and-alpha)

The reference configuration advertises 45 tools. Your server’s available objects depend on its configuration. [Setup documentation](https://libtmux.org/en/go/latest/mcp/guides/) explains how to connect a client.

## Server3 tools[#](https://libtmux.org/en/go/latest/mcp/tools/#tools-server)

[create​_session](https://libtmux.org/en/go/latest/mcp/tools/create_session/)

Start a pane’s configured process; accepts no command payload. Creates a detached session whose first pane runs the configured process.

[get​_server​_info](https://libtmux.org/en/go/latest/mcp/tools/get_server_info/)

Inspect tmux metadata; accepts no client-supplied executable input. Reports whether the pinned server exists and its version.

[list​_sessions](https://libtmux.org/en/go/latest/mcp/tools/list_sessions/)

Inspect tmux metadata; accepts no client-supplied executable input. Lists sessions on the pinned tmux server.

## Session5 tools[#](https://libtmux.org/en/go/latest/mcp/tools/#tools-session)

[create​_window](https://libtmux.org/en/go/latest/mcp/tools/create_window/)

Start a pane’s configured process; accepts no command payload. Creates a window whose first pane runs the configured process.

[get​_session​_info](https://libtmux.org/en/go/latest/mcp/tools/get_session_info/)

Inspect tmux metadata; accepts no client-supplied executable input. Returns metadata for one session.

[kill​_session](https://libtmux.org/en/go/latest/mcp/tools/kill_session/)

Delete tmux state; accepts no command payload. Deletes one session and every window and pane in it.

[list​_windows](https://libtmux.org/en/go/latest/mcp/tools/list_windows/)

Inspect tmux metadata; accepts no client-supplied executable input. Lists windows, optionally only those in one named session.

[rename​_session](https://libtmux.org/en/go/latest/mcp/tools/rename_session/)

Change tmux state; no client-supplied executable input. Replaces a session’s name.

## Window9 tools[#](https://libtmux.org/en/go/latest/mcp/tools/#tools-window)

[get​_window​_info](https://libtmux.org/en/go/latest/mcp/tools/get_window_info/)

Inspect tmux metadata; accepts no client-supplied executable input. Returns metadata for one window.

[kill​_window](https://libtmux.org/en/go/latest/mcp/tools/kill_window/)

Delete tmux state; accepts no command payload. Deletes one window and every pane in it.

[list​_panes](https://libtmux.org/en/go/latest/mcp/tools/list_panes/)

Inspect tmux metadata; accepts no client-supplied executable input. Lists pane metadata and stable pane IDs.

[move​_window](https://libtmux.org/en/go/latest/mcp/tools/move_window/)

Change tmux state; no client-supplied executable input. Moves a window to another session, optionally at an index.

[rename​_window](https://libtmux.org/en/go/latest/mcp/tools/rename_window/)

Change tmux state; no client-supplied executable input. Replaces a window’s name.

[resize​_window](https://libtmux.org/en/go/latest/mcp/tools/resize_window/)

Change tmux state; no client-supplied executable input. Sets a window’s width, height, or both.

[select​_layout](https://libtmux.org/en/go/latest/mcp/tools/select_layout/)

Change tmux state; no client-supplied executable input. Applies a named layout, a unique abbreviation for the running tmux version, or a saved layout from [get_window_info](https://libtmux.org/en/go/latest/mcp/tools/get_window_info/). Invalid syntax is rejected before window lookup; tmux validates geometry when applying the layout.

[select​_window](https://libtmux.org/en/go/latest/mcp/tools/select_window/)

Change tmux state; no client-supplied executable input. Makes one window active.

[split​_window](https://libtmux.org/en/go/latest/mcp/tools/split_window/)

Start a pane’s configured process; accepts no command payload. Creates a pane whose configured process starts after the split.

## Pane18 tools[#](https://libtmux.org/en/go/latest/mcp/tools/#tools-pane)

[capture​_pane](https://libtmux.org/en/go/latest/mcp/tools/capture_pane/)

Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Returns bounded pane content and a cursor.

[capture​_since](https://libtmux.org/en/go/latest/mcp/tools/capture_since/)

Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Returns pane output produced after a cursor.

[clear​_pane​_scrollback](https://libtmux.org/en/go/latest/mcp/tools/clear_pane_scrollback/)

Delete tmux state; accepts no command payload. Deletes retained scrollback from one pane.

[find​_pane​_by​_position](https://libtmux.org/en/go/latest/mcp/tools/find_pane_by_position/)

Inspect tmux metadata; accepts no client-supplied executable input. Finds a pane at one of a window’s four corners.

[get​_pane​_info](https://libtmux.org/en/go/latest/mcp/tools/get_pane_info/)

Inspect tmux metadata; accepts no client-supplied executable input. Returns metadata for one pane.

[kill​_pane](https://libtmux.org/en/go/latest/mcp/tools/kill_pane/)

Delete tmux state; accepts no command payload. Deletes one pane and ends its process.

[paste​_text](https://libtmux.org/en/go/latest/mcp/tools/paste_text/)

Send input to a pane’s program; a shell that receives it runs it with your user’s permissions. Pastes literal text only to its target; optional Enter appends one newline to the same private buffer.

[resize​_pane](https://libtmux.org/en/go/latest/mcp/tools/resize_pane/)

Change tmux state; no client-supplied executable input. Sets a pane’s width, height, or both.

[respawn​_pane](https://libtmux.org/en/go/latest/mcp/tools/respawn_pane/)

Start a pane’s configured process; accepts no command payload. Kills the pane’s current process and starts its configured process again.

[run​_shell​_command](https://libtmux.org/en/go/latest/mcp/tools/run_shell_command/)

Run a shell command in a pane with your user’s permissions. Runs one command you author in a pane that is not synchronized with others, rechecks the pane just before sending, and waits for it to finish, reporting its exit status.

[search​_panes](https://libtmux.org/en/go/latest/mcp/tools/search_panes/)

Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Searches the visible output of every pane.

[select​_pane](https://libtmux.org/en/go/latest/mcp/tools/select_pane/)

Change tmux state; no client-supplied executable input. Makes one pane active.

[send​_keys](https://libtmux.org/en/go/latest/mcp/tools/send_keys/)

Send input to a pane’s program; a shell that receives it runs it with your user’s permissions. Sends keys to a pane and to every pane synchronize-panes links it with; the ids reported are the panes checked before sending, not proof that each one received the keys.

[send​_keys​_batch](https://libtmux.org/en/go/latest/mcp/tools/send_keys_batch/)

Send input to a pane’s program; a shell that receives it runs it with your user’s permissions. Sends up to sixty-four key sequences in order, rechecking before each one which panes synchronize-panes links to its target.

[set​_pane​_title](https://libtmux.org/en/go/latest/mcp/tools/set_pane_title/)

Change tmux state; no client-supplied executable input. Replaces a pane’s literal title.

[set​_synchronize​_panes](https://libtmux.org/en/go/latest/mcp/tools/set_synchronize_panes/)

Change tmux state; no client-supplied executable input. Sets the window synchronization default (synchronize-panes); pane-level overrides still decide which panes receive later input.

[snapshot​_pane](https://libtmux.org/en/go/latest/mcp/tools/snapshot_pane/)

Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Returns pane metadata and bounded terminal content together.

[swap​_pane](https://libtmux.org/en/go/latest/mcp/tools/swap_pane/)

Change tmux state; no client-supplied executable input. Swaps the positions of two panes.

## Hooks1 tool[#](https://libtmux.org/en/go/latest/mcp/tools/#tools-hooks)

[show​_hooks](https://libtmux.org/en/go/latest/mcp/tools/show_hooks/)

Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Reads configured tmux hooks.

## Options and environment4 tools[#](https://libtmux.org/en/go/latest/mcp/tools/#tools-options-and-environment)

[set​_history​_limit](https://libtmux.org/en/go/latest/mcp/tools/set_history_limit/)

Change tmux state; no client-supplied executable input. Sets a bounded integer scrollback limit for future panes in a session.

[set​_mouse​_enabled](https://libtmux.org/en/go/latest/mcp/tools/set_mouse_enabled/)

Change tmux state; no client-supplied executable input. Enables or disables tmux mouse handling.

[show​_environment](https://libtmux.org/en/go/latest/mcp/tools/show_environment/)

Read the tmux environment; accepts no client-supplied executable input. Returned values may contain secrets. Reads the environment tmux passes to processes.

[show​_option](https://libtmux.org/en/go/latest/mcp/tools/show_option/)

Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Reads one named tmux option.

## Coordination2 tools[#](https://libtmux.org/en/go/latest/mcp/tools/#tools-coordination)

[signal​_channel](https://libtmux.org/en/go/latest/mcp/tools/signal_channel/)

Change tmux state; no client-supplied executable input. Signals one server-wide tmux channel.

[wait​_for​_channel](https://libtmux.org/en/go/latest/mcp/tools/wait_for_channel/)

Change tmux state; no client-supplied executable input. Waits on tmux’s channel state with a bounded timeout.

## Other tools3 tools[#](https://libtmux.org/en/go/latest/mcp/tools/#tools-other-tools)

[call​_read​_tools​_batch](https://libtmux.org/en/go/latest/mcp/tools/call_read_tools_batch/)

Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Calls up to sixteen eligible inspect tools serially; inner tools receive no separate approval. Retained rows contain full nested envelopes, oversized results are marked resultTruncated, and the complete JSON-RPC response is at most 1,000,000 bytes.

[get​_tmux​_variables](https://libtmux.org/en/go/latest/mcp/tools/get_tmux_variables/)

Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Reads a capped list of validated tmux variable names, not free-form formats.

[wait​_for​_text](https://libtmux.org/en/go/latest/mcp/tools/wait_for_text/)

Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Waits for new pane output without accepting executable input.

## [Resources](https://libtmux.org/en/go/latest/mcp/resources/#resources-fixed-resources)

1 advertised in the reference configuration.

## [Resource templates](https://libtmux.org/en/go/latest/mcp/resources/)

This server does not advertise resource templates in the reference configuration.

## [Prompts](https://libtmux.org/en/go/latest/mcp/prompts/)

This server does not advertise prompts in the reference configuration.

Reference configuration

* `LIBTMUX_TOOLSETS`

  `inspect,manage,execute,teardown`

Protocol version: `2025-11-25`. [Download the full protocol catalog](https://libtmux.org/en/go/latest/mcp/tools.json).

Source: [`libtmux/libtmux-go@2de249b600d6`](https://github.com/libtmux/libtmux-go/tree/2de249b600d65218ee8b8fdc07c6b2b919242151).

The [language API reference](https://libtmux.org/en/go/latest/mcp/reference/) documents embedding and implementation types.

Source revision: [libtmux/libtmux-go@2de249b600d65218ee8b8fdc07c6b2b919242151](https://github.com/libtmux/libtmux-go/tree/2de249b600d65218ee8b8fdc07c6b2b919242151).
