show_hooks
List configured tmux hooks at the given scope.
scope="server" enumerates hooks installed via
tmux set-hook -g .... tmux splits those globals across two
options trees by hook category: session-level hooks
(session-closed, client-*, etc.) live in the
global-session tree enumerated by show-hooks -g, while
pane/window-level hooks (pane-focus-in, window-resized,
etc.) live in the global-window tree enumerated by
show-hooks -gw. This tool consults both trees and merges the
results so the enumeration matches what a name-targeted
:func:~libtmux_mcp.tools.hook_tools.show_hook call would return.
All Python tools · JSON · Source
Arguments
global_optional · boolean- Pass ``-g`` to query global hooks. Default False.
Default:
false. scopeoptional- Hook scope (server/session/window/pane). Defaults to the
calling object's scope when a ``target`` is given.
Default:
null. socket_nameoptional- tmux socket name.
Default:
null. targetoptional- Target identifier. For session scope: session name. For window
scope: window ID. For pane scope: pane ID. Requires ``scope``.
Default:
null.
Schemas
The schema defines required fields, nested values, defaults, and validation constraints.
Input schema
{ "additionalProperties": false, "properties": { "global_": { "default": false, "description": "Pass ``-g`` to query global hooks. Default False.", "type": "boolean" }, "scope": { "anyOf": [ { "enum": [ "server", "session", "window", "pane" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Hook scope (server/session/window/pane). Defaults to the\ncalling object's scope when a ``target`` is given." }, "socket_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "tmux socket name." }, "target": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Target identifier. For session scope: session name. For window\nscope: window ID. For pane scope: pane ID. Requires ``scope``." } }, "type": "object"}Output schema
{ "description": "Structured result for hook introspection.\n\nReturned by :func:`~libtmux_mcp.tools.hook_tools.show_hooks` and\n:func:`~libtmux_mcp.tools.hook_tools.show_hook`.\nFlat list of :class:`~libtmux_mcp.models.HookEntry` instances so\nMCP clients can iterate without caring whether the underlying tmux\nhook is scalar or array-shaped.", "properties": { "entries": { "items": { "description": "One entry in a tmux hook array.\n\nHooks like ``session-renamed`` are arrays — they can have multiple\ncommands registered at sparse indices.\n:class:`~libtmux_mcp.models.HookEntry` flattens one index+command\npair into a serialisable row.", "properties": { "command": { "description": "tmux command string registered at that index.", "type": "string" }, "hook_name": { "description": "Hook name (e.g. 'pane-exited').", "type": "string" }, "index": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Array index for array-style hooks (e.g. session-renamed[3]). ``None`` for scalar hooks." } }, "required": [ "hook_name", "command" ], "type": "object" }, "type": "array" } }, "type": "object"}Tool annotations
{ "destructiveHint": true, "idempotentHint": false, "openWorldHint": true, "readOnlyHint": false}