# wait_for_channel

Source: https://libtmux.org/en/py/latest/mcp/tools/wait_for_channel/

> Block until a tmux ``wait-for`` channel is signalled.

MCP is in development

Server behavior and tool contracts may change. Tool availability depends on the server configuration.

Block until a tmux `wait-for` channel is signalled.

This is the AUTHORED-output synchronisation primitive: the channel only fires because your own composed shell command signals it. Reserve [`wait_for_text`](https://libtmux.org/en/py/latest/mcp/tools/wait_for_text/) for output you did not author.

Agents can compose this with [`send_keys`](https://libtmux.org/en/py/latest/mcp/tools/send_keys/) to turn shell-side milestones into explicit synchronisation points::

```plaintext
send_keys(
    "pytest; tmux wait-for -S tests_done",
    pane_id=...,
)
wait_for_channel("tests_done", timeout=60)
```

Shell `;` semantics fire `wait-for -S` whether the command succeeded or failed, so the edge-triggered signal never deadlocks on a crash. Do NOT chain `exit $status` after 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.

[All Python tools](../) · [JSON](../wait_for_channel.json) · [Source](https://github.com/tmux-python/libtmux-mcp/blob/4daddc0dfca96c43bf521d818bf91564e1434760/src/libtmux_mcp/tools/wait_for_tools.py#L322)

## Arguments

* `channel` required · string

  Channel name. Must match \`\`^\[A-Za-z0-9\_.:-]{1,128}$\`\`.

* `socket_name` optional

  tmux socket name.

  Default: `null`.

* `timeout` optional · number

  Maximum seconds to wait. The underlying \`\`tmux wait-for\`\` has 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 as \`\`wait\_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.

  Default: `30`.

## Schemas

The schema defines required fields, nested values, defaults, and validation constraints.
