wait_for_channel
-
Block until a tmux
wait-forchannel is signalled.This is the AUTHORED-output synchronisation primitive: the channel only fires because your own composed shell command signals it. Reserve
wait_for_textfor output you did not author.Agents can compose this with
send_keysto turn shell-side milestones into explicit synchronisation points::send_keys( "pytest; tmux wait-for -S tests_done", pane_id=..., ) wait_for_channel("tests_done", timeout=60)Shell
;semantics firewait-for -Swhether the command succeeded or failed, so the edge-triggered signal never deadlocks on a crash. Do NOT chainexit $statusafter the signal — in an interactive shell that exits the shell itself, which destroys single-pane sessions. Exit-status preservation in interactive shells is out-of-scope; inspect the captured output for command-specific success markers.- MCP request method
tools/callSendwait_for_channelas the tool name, with the arguments below.
Arguments#
-
Channel name. Must match
^[A-Za-z0-9_.:-]{1,128}$. -
socket_name? =null(string | null) #tmux socket name.
-
Maximum seconds to wait. The underlying
tmux wait-forhas no built-in timeout — this wrapper enforces it by killing the tmux child, which also happens if the call is cancelled. Defaults to 30 seconds. Capped by the same server wait ceiling aswait_for_text; an over-large value is not an error, the wait returns at the ceiling and the confirmation message names the timeout that was actually enforced.
No other arguments are accepted.
Result#
Returns object
Annotations#
destructiveHinttrueidempotentHintfalseopenWorldHinttruereadOnlyHintfalse
Protocol data#
Use the complete advertised contract for validation and client integration.
Input schema
{"additionalProperties": false,"properties": {"channel": {"description": "Channel name. Must match ``^[A-Za-z0-9_.:-]{1,128}$``.","type": "string"},"socket_name": {"anyOf": [{"type": "string"},{"type": "null"}],"default": null,"description": "tmux socket name."},"timeout": {"default": 30,"description": "Maximum seconds to wait. The underlying ``tmux wait-for`` has\nno built-in timeout — this wrapper enforces it by killing the\ntmux child, which also happens if the call is cancelled.\nDefaults to 30 seconds. Capped by the same server wait ceiling\nas ``wait_for_text``; an over-large value is not an error, the\nwait returns at the ceiling and the confirmation message names\nthe timeout that was actually enforced.","type": "number"}},"required": ["channel"],"type": "object"}Output schema
{"properties": {"result": {"type": "string"}},"required": ["result"],"type": "object","x-fastmcp-wrap-result": true}