MCPAPI Reference

Choose documentation 3

latest

Current version

latest
English

Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

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.

scope optional
Hook scope (server/session/window/pane). Defaults to the calling object's scope when a ``target`` is given.

Default: null.

socket_name optional
tmux socket name.

Default: null.

target optional
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
}
Esc

Type to search.