@@ -37,7 +37,7 @@ stopped working would leave you believing a surface was narrower than it is.
3737
3838#### The new default names no environment variables
3939
40- An unset `LIBTMUX_TOOLSETS` selects `inspect,manage,execute` — the surface
40+ An unset {envvar} `LIBTMUX_TOOLSETS` selects `inspect,manage,execute` — the surface
4141`mutating` gave you. If you were on the old default, delete `LIBTMUX_SAFETY`
4242from your client config and put nothing in its place:
4343
@@ -62,8 +62,9 @@ Name a variable only to move off that default.
6262| `LIBTMUX_SAFETY=mutating` (the default) | nothing — the default is `inspect,manage,execute` |
6363| `LIBTMUX_SAFETY=destructive` | `LIBTMUX_TOOLSETS=inspect,manage,execute,teardown` |
6464
65- Two variables are new. `LIBTMUX_TOOLS` enables individual tools regardless
66- of toolset, and `LIBTMUX_EXCLUDE_TOOLS` refuses them regardless of every
65+ Two variables are new. {envvar}`LIBTMUX_TOOLS` enables individual tools
66+ regardless of toolset, and {envvar}`LIBTMUX_EXCLUDE_TOOLS` refuses them
67+ regardless of every
6768enable above. An unknown name in any of the three fails startup the same way.
6869
6970### Surfaces the tiers could not express
@@ -81,43 +82,47 @@ An agent that can look and clean up, but not type.
8182
8283| Before | After |
8384| --- | --- |
84- | `call_readonly_tools_batch` | `call_read_tools_batch ` |
85+ | `call_readonly_tools_batch` | {tooliconl}`call-read-tools-batch ` |
8586| `call_mutating_tools_batch` | removed — call the tool directly |
8687| `call_destructive_tools_batch` | removed — call the tool directly |
8788
8889A batch gives every nested call the wrapper's name, so a client rule keyed
89- on `kill_session ` never fires for a `kill_session` run inside one. That is
90+ on {tooliconl}`kill-session ` never fires for a `kill_session` run inside one. That is
9091tolerable for reads and not for writes.
9192
9293### Which toolset a tool is in
9394
9495`inspect`
95- : Every `list_*`, `get_*`, `show_*`, `capture_*`, `snapshot_pane`,
96- `search_panes`, `find_pane_by_position`, `display_message`,
97- `wait_for_text`, `call_read_tools_batch`.
96+ : Every `list_*`, `get_*`, `show_*`, `capture_*`, {toolref}`snapshot-pane`,
97+ {toolref}`search-panes`, {toolref}`find-pane-by-position`,
98+ {toolref}`display-message`, {toolref}`wait-for-text`,
99+ {toolref}`call-read-tools-batch`.
98100
99101`manage`
100- : `rename_*`, `select_*`, `resize_*`, `move_window`, `swap_pane`,
101- `set_pane_title`, `enter_copy_mode`, `exit_copy_mode`,
102- `wait_for_channel`, `signal_channel`, `load_buffer`.
102+ : `rename_*`, `select_*`, `resize_*`, {toolref}`move-window`,
103+ {toolref}`swap-pane`, {toolref}`set-pane-title`, {toolref}`enter-copy-mode`,
104+ {toolref}`exit-copy-mode`, {toolref}`wait-for-channel`,
105+ {toolref}`signal-channel`, {toolref}`load-buffer`.
103106
104107`execute`
105- : `create_session`, `create_window`, `split_window`, `respawn_pane`,
106- `run_command`, `send_keys`, `send_keys_batch`, `paste_text`,
107- `paste_buffer`, `pipe_pane`, `set_option`, `set_environment`.
108+ : {toolref}`create-session`, {toolref}`create-window`,
109+ {toolref}`split-window`, {toolref}`respawn-pane`, {toolref}`run-command`,
110+ {toolref}`send-keys`, {toolref}`send-keys-batch`, {toolref}`paste-text`,
111+ {toolref}`paste-buffer`, {toolref}`pipe-pane`, {toolref}`set-option`,
112+ {toolref}`set-environment`.
108113
109114`set_option` and `set_environment` are here rather than in `manage`
110115because tmux runs some stored values later: a `#(...)` job in a status
111116format runs when tmux draws it and repeats on the status interval, and
112117`default-command` decides what every future pane runs.
113118
114119`teardown`
115- : `kill_pane `, `kill_window `, `kill_session`, `kill_server`, `clear_pane `,
116- `delete_buffer `.
120+ : {toolref}`kill-pane `, {toolref}`kill-window `, {toolref}`kill-session `,
121+ {toolref}`kill-server`, {toolref}`clear-pane`, {toolref}`delete-buffer `.
117122
118123### Documentation
119124
120- The safety topic is now the trust page. The old URL redirects.
125+ The safety topic is now the {ref}` trust` page. The old URL redirects.
121126
122127### MCP annotations
123128
@@ -134,7 +139,7 @@ the direct operation libtmux-mcp requests.
134139
135140### `wait_for_text` takes `patterns`, and `wait_for_content_change` is gone
136141
137- `wait_for_text ` accepted a single `pattern` string. It now takes `patterns`, a
142+ {tooliconl}`wait-for-text ` accepted a single `pattern` string. It now takes `patterns`, a
138143list — or `null` to wait for any new output at all. The schema rejects the old
139144argument rather than silently ignoring it, so a call written against the old
140145signature fails loudly with `Remove or correct the unrecognized argument(s):
@@ -163,8 +168,9 @@ which the old tool did not.
163168
164169### Waits are capped by the server
165170
166- `wait_for_text`, `wait_for_channel`, and `run_command` are all bounded by
167- `LIBTMUX_MCP_WAIT_MAX_SECONDS` (30 seconds by default, clamped to `[1, 120]`).
171+ {toolref}`wait-for-text`, {toolref}`wait-for-channel`, and
172+ {toolref}`run-command` are all bounded by
173+ {envvar}`LIBTMUX_MCP_WAIT_MAX_SECONDS` (30 seconds by default, clamped to `[1, 120]`).
168174An over-large `timeout` is **clamped, not rejected** — the call succeeds and
169175reports the value actually enforced, so read `effective_timeout` rather than
170176assuming your value was honoured. A wait that previously blocked for an hour
@@ -179,14 +185,16 @@ The result's loose booleans are replaced by one `outcome` field taking
179185`matched`, `any_output`, `stopped`, `alternate_screen`, or `timeout`.
180186`risk_band_warned` is removed; the history-limit trim signal is delivered as an
181187MCP warning notification instead. Clients that cannot surface notifications
182- should compose `tmux wait-for -S` into the command and use `wait_for_channel`,
188+ should compose `tmux wait-for -S` into the command and use
189+ {tooliconl}`wait-for-channel`,
183190which does not read the pane at all.
184191
185192### Self-bounded tools cannot be batched
186193
187- `run_command`, `wait_for_text`, and `wait_for_channel` are rejected by the
194+ {toolref}`run-command`, {toolref}`wait-for-text`, and
195+ {toolref}`wait-for-channel` are rejected by the
188196batch wrappers per operation, because batching one multiplied the wait ceiling
189- by the operation count. Use `send_keys_batch ` for command sequences, or call
197+ by the operation count. Use {tooliconl}`send-keys-batch ` for command sequences, or call
190198the tool directly.
191199
192200## libtmux-mcp 0.1.0a6 (2026-05-09)
0 commit comments