show_hooks
-
List configured tmux hooks at the given scope.
scope="server"enumerates hooks installed viatmux 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 byshow-hooks -g, while pane/window-level hooks (pane-focus-in,window-resized, etc.) live in the global-window tree enumerated byshow-hooks -gw. This tool consults both trees and merges the results so the enumeration matches what a name-targetedshow_hookcall would return.- MCP request method
tools/callSendshow_hooksas the tool name, with the arguments below.
Arguments#
-
Pass
-gto query global hooks. Default False. -
scope? =null("server" | "session" | "window" | "pane" | null) #Hook scope (server/session/window/pane). Defaults to the calling object’s scope when a
targetis given. -
socket_name? =null(string | null) #tmux socket name.
-
target? =null(string | null) #Target identifier. For session scope: session name. For window scope: window ID. For pane scope: pane ID. Requires
scope.
No other arguments are accepted.
Result#
Returns object
-
-
One entry in a tmux hook array.
Hooks like
session-renamedare arrays — they can have multiple commands registered at sparse indices.HookEntryflattens one index+command pair into a serialisable row.
-
Annotations#
destructiveHinttrueidempotentHintfalseopenWorldHinttruereadOnlyHintfalse
Protocol data#
Use the complete advertised contract for validation and client integration.
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"}