{
  "name": "libtmux for Ruby",
  "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/",
  "description": "Guides, examples and API reference for libtmux.",
  "sourceRepository": "https://github.com/libtmux/libtmux-ruby",
  "agentEntrypoints": {
    "manifest": "/en/ruby/v0.1.0.alpha.3/docs.json",
    "llms": "/en/ruby/v0.1.0.alpha.3/llms.txt",
    "llmsFull": "/en/ruby/v0.1.0.alpha.3/llms-full.txt",
    "inventory": "/en/objects.inv"
  },
  "ports": [
    {
      "slug": "ruby",
      "name": "Ruby",
      "language": "Ruby",
      "referenceKind": "model",
      "package": "libtmux",
      "reference": "/en/ruby/v0.1.0.alpha.3/reference/",
      "products": [
        {
          "slug": "workspace",
          "name": "Workspace Manager",
          "availability": "available",
          "inDevelopment": false,
          "support": "concept",
          "supportDescription": "A working example of the core library. It can change without notice.",
          "cli": "libtmux-workspace load",
          "cliAvailability": "released",
          "url": "/en/ruby/v0.1.0.alpha.3/workspace/",
          "reference": "/en/ruby/v0.1.0.alpha.3/workspace/reference/",
          "source": {
            "product": "workspace",
            "package": "libtmux-workspace",
            "version": "0.1.0.alpha.3",
            "repo": "libtmux/libtmux-ruby",
            "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
            "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267"
          }
        },
        {
          "slug": "mcp",
          "name": "MCP",
          "availability": "available",
          "inDevelopment": true,
          "support": "concept",
          "supportDescription": "A working example of the core library. It can change without notice.",
          "url": "/en/ruby/v0.1.0.alpha.3/mcp/",
          "reference": "/en/ruby/v0.1.0.alpha.3/mcp/reference/",
          "protocol": "/en/ruby/v0.1.0.alpha.3/mcp/tools.json",
          "source": {
            "product": "mcp",
            "package": "libtmux-mcp",
            "version": "0.1.0.alpha.3",
            "repo": "libtmux/libtmux-ruby",
            "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
            "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267"
          }
        }
      ],
      "extracted": {
        "symbols": 775,
        "extractor": "@libtmux/api-model@0.0.1 (scripts/export-docs v1)",
        "inventory": "/en/ruby/v0.1.0.alpha.3/reference/objects.inv"
      },
      "documentation": [
        {
          "id": "core",
          "name": "Core library",
          "kind": "core",
          "availability": "available",
          "url": "/en/ruby/v0.1.0.alpha.3/"
        },
        {
          "id": "async",
          "name": "Async",
          "kind": "companion-package",
          "availability": "available",
          "url": "/en/ruby/v0.1.0.alpha.3/guides/async/",
          "package": "libtmux-async"
        },
        {
          "id": "mcp",
          "name": "MCP",
          "kind": "product",
          "availability": "available",
          "url": "/en/ruby/v0.1.0.alpha.3/mcp/"
        },
        {
          "id": "workspace",
          "name": "Workspace Manager",
          "kind": "product",
          "availability": "available",
          "url": "/en/ruby/v0.1.0.alpha.3/workspace/"
        }
      ]
    }
  ],
  "pages": [
    {
      "title": "Concepts",
      "description": "Concepts for libtmux.",
      "section": "Concepts",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/concepts/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/concepts/index.md",
      "headings": []
    },
    {
      "title": "Execution modes",
      "description": "Choose blocking commands, captured queries, control mode, or Async tasks.",
      "section": "Concepts",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/concepts/transports/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/concepts/transports/index.md",
      "headings": []
    },
    {
      "title": "Examples",
      "description": "Examples for libtmux.",
      "section": "Examples",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/examples/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/examples/index.md",
      "headings": []
    },
    {
      "title": "Recipes",
      "description": "Run programs for queries, linked windows, capture, and cancellation.",
      "section": "Examples",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/examples/recipes/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/examples/recipes/index.md",
      "headings": [
        {
          "id": "captured-queries",
          "level": 2,
          "text": "Captured queries"
        },
        {
          "id": "layout-and-bytes",
          "level": 2,
          "text": "Layout and bytes"
        },
        {
          "id": "one-window-at-three-indexes",
          "level": 2,
          "text": "One window at three indexes"
        },
        {
          "id": "blocking-request-cancellation",
          "level": 2,
          "text": "Blocking request cancellation"
        },
        {
          "id": "async-capture-and-cancellation",
          "level": 2,
          "text": "Async capture and cancellation"
        },
        {
          "id": "control-overflow",
          "level": 2,
          "text": "Control overflow"
        },
        {
          "id": "failure-inside-a-group",
          "level": 2,
          "text": "Failure inside a group"
        },
        {
          "id": "mcp-protocol",
          "level": 2,
          "text": "MCP protocol"
        },
        {
          "id": "workspace-plan-load-and-failure",
          "level": 2,
          "text": "Workspace plan, load and failure"
        }
      ]
    },
    {
      "title": "Guides",
      "description": "Guides for libtmux.",
      "section": "Guides",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/index.md",
      "headings": []
    },
    {
      "title": "Async",
      "description": "Run concurrent commands within an owned Async scope.",
      "section": "Companion packages",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/async/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/async/index.md",
      "headings": [
        {
          "id": "quick-start",
          "level": 2,
          "text": "Quick start"
        },
        {
          "id": "cancel-a-request-without-stalling-the-others",
          "level": 2,
          "text": "Cancel a request without stalling the others"
        },
        {
          "id": "asyncserverrun-cancel-a-request-that-is-waiting",
          "level": 3,
          "text": "Async::Server#run: cancel a request that is waiting"
        },
        {
          "id": "keep-results-ordered-and-bounded",
          "level": 2,
          "text": "Keep results ordered and bounded"
        },
        {
          "id": "scopemap-input-order-capped-payloads",
          "level": 3,
          "text": "Scope#map: input order, capped payloads"
        },
        {
          "id": "read-control-events-in-a-scope",
          "level": 2,
          "text": "Read control events in a scope"
        },
        {
          "id": "asyncserveropen_control-replies-and-events",
          "level": 3,
          "text": "Async::Server#open_control: replies and events"
        },
        {
          "id": "what-it-leaves-out",
          "level": 2,
          "text": "What it leaves out"
        },
        {
          "id": "support-and-status",
          "level": 2,
          "text": "Support and status"
        },
        {
          "id": "documentation",
          "level": 2,
          "text": "Documentation"
        }
      ]
    },
    {
      "title": "Server bindings",
      "description": "Own a private server or connect to an existing socket.",
      "section": "Guides",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/core/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/core/index.md",
      "headings": [
        {
          "id": "quick-start",
          "level": 2,
          "text": "Quick start"
        },
        {
          "id": "find-sessions-windows-and-panes",
          "level": 2,
          "text": "Find sessions, windows, and panes"
        },
        {
          "id": "serverlist_sessions-what-tmux-has-now",
          "level": 3,
          "text": "Server#list_sessions: what tmux has now"
        },
        {
          "id": "serversnapshot-one-read-many-queries",
          "level": 3,
          "text": "Server#snapshot: one read, many queries"
        },
        {
          "id": "serversearch_panes-the-matching-panes-in-one-call",
          "level": 3,
          "text": "Server#search_panes: the matching panes in one call"
        },
        {
          "id": "create-sessions-windows-and-panes",
          "level": 2,
          "text": "Create sessions, windows, and panes"
        },
        {
          "id": "servernew_session-a-session-and-its-first-window",
          "level": 3,
          "text": "Server#new_session: a session and its first window"
        },
        {
          "id": "sessionnew_window-add-a-window",
          "level": 3,
          "text": "Session#new_window: add a window"
        },
        {
          "id": "type-into-a-pane-and-read-it-back",
          "level": 2,
          "text": "Type into a pane and read it back"
        },
        {
          "id": "panesend_text-type-then-read-what-the-pane-showed",
          "level": 3,
          "text": "Pane#send_text: type, then read what the pane showed"
        },
        {
          "id": "use-the-tmux-server-you-already-run",
          "level": 2,
          "text": "Use the tmux server you already run"
        },
        {
          "id": "servernew-borrow-a-daemon",
          "level": 3,
          "text": "Server.new: borrow a daemon"
        },
        {
          "id": "wait-time-out-and-cancel",
          "level": 2,
          "text": "Wait, time out, and cancel"
        },
        {
          "id": "cancellationnew-wake-a-request-that-is-waiting",
          "level": 3,
          "text": "Cancellation.new: wake a request that is waiting"
        },
        {
          "id": "link-a-window-into-several-sessions",
          "level": 2,
          "text": "Link a window into several sessions"
        },
        {
          "id": "sessionlink_window-one-window-at-several-indexes",
          "level": 3,
          "text": "Session#link_window: one window at several indexes"
        },
        {
          "id": "read-and-set-options-and-hooks",
          "level": 2,
          "text": "Read and set options and hooks"
        },
        {
          "id": "sessionoptions-a-value-with-its-inheritance",
          "level": 3,
          "text": "Session#options: a value with its inheritance"
        },
        {
          "id": "watch-tmux-change",
          "level": 2,
          "text": "Watch tmux change"
        },
        {
          "id": "serveropen_control-events-as-they-happen",
          "level": 3,
          "text": "Server#open_control: events as they happen"
        },
        {
          "id": "run-several-commands-in-order",
          "level": 2,
          "text": "Run several commands in order"
        },
        {
          "id": "serverrun_group-several-commands-through-one-client",
          "level": 3,
          "text": "Server#run_group: several commands through one client"
        },
        {
          "id": "packages",
          "level": 2,
          "text": "Packages"
        },
        {
          "id": "libtmux-the-core",
          "level": 3,
          "text": "libtmux: the core"
        },
        {
          "id": "libtmux-async-concurrent-commands",
          "level": 3,
          "text": "libtmux-async: concurrent commands"
        },
        {
          "id": "libtmux-mcp-a-tmux-server-for-mcp-clients",
          "level": 3,
          "text": "libtmux-mcp: a tmux server for MCP clients"
        },
        {
          "id": "libtmux-workspace-yaml-workspaces",
          "level": 3,
          "text": "libtmux-workspace: YAML workspaces"
        },
        {
          "id": "what-it-leaves-out",
          "level": 2,
          "text": "What it leaves out"
        },
        {
          "id": "support-and-status",
          "level": 2,
          "text": "Support and status"
        },
        {
          "id": "documentation",
          "level": 2,
          "text": "Documentation"
        }
      ]
    },
    {
      "title": "Getting started",
      "description": "Install the gem, create a session, and query a snapshot.",
      "section": "Guides",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/getting-started/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/getting-started/index.md",
      "headings": [
        {
          "id": "quick-start",
          "level": 2,
          "text": "Quick start"
        },
        {
          "id": "find-things-in-a-snapshot",
          "level": 2,
          "text": "Find things in a snapshot"
        },
        {
          "id": "serversnapshot-one-read-many-queries",
          "level": 3,
          "text": "Server#snapshot: one read, many queries"
        },
        {
          "id": "use-the-tmux-server-you-already-run",
          "level": 2,
          "text": "Use the tmux server you already run"
        },
        {
          "id": "servernew-borrow-a-daemon",
          "level": 3,
          "text": "Server.new: borrow a daemon"
        },
        {
          "id": "packages",
          "level": 2,
          "text": "Packages"
        },
        {
          "id": "libtmux-the-core",
          "level": 3,
          "text": "libtmux: the core"
        },
        {
          "id": "libtmux-async-concurrent-commands",
          "level": 3,
          "text": "libtmux-async: concurrent commands"
        },
        {
          "id": "libtmux-mcp-a-tmux-server-for-mcp-clients",
          "level": 3,
          "text": "libtmux-mcp: a tmux server for MCP clients"
        },
        {
          "id": "libtmux-workspace-yaml-workspaces",
          "level": 3,
          "text": "libtmux-workspace: YAML workspaces"
        },
        {
          "id": "build-from-source",
          "level": 2,
          "text": "Build from source"
        },
        {
          "id": "what-it-leaves-out",
          "level": 2,
          "text": "What it leaves out"
        },
        {
          "id": "support-and-status",
          "level": 2,
          "text": "Support and status"
        },
        {
          "id": "documentation",
          "level": 2,
          "text": "Documentation"
        },
        {
          "id": "attribution",
          "level": 2,
          "text": "Attribution"
        },
        {
          "id": "license",
          "level": 2,
          "text": "License"
        }
      ]
    },
    {
      "title": "MCP server guide",
      "description": "MCP server guide: libtmux documentation.",
      "section": "Guides",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/source-guide/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/source-guide/index.md",
      "equivalence": "mcp-client-setup",
      "headings": [
        {
          "id": "quick-start",
          "level": 2,
          "text": "Quick start"
        },
        {
          "id": "connect-a-client",
          "level": 2,
          "text": "Connect a client"
        },
        {
          "id": "claude-mcp-add-claude-code",
          "level": 3,
          "text": "claude mcp add: Claude Code"
        },
        {
          "id": "codex-mcp-add-codex-cli",
          "level": 3,
          "text": "codex mcp add: Codex CLI"
        },
        {
          "id": "mcpservers-clients-that-read-json",
          "level": 3,
          "text": "mcpServers: clients that read JSON"
        },
        {
          "id": "choose-which-tmux-server-it-serves",
          "level": 2,
          "text": "Choose which tmux server it serves"
        },
        {
          "id": "--socket-and---socket-name-pick-the-daemon",
          "level": 3,
          "text": "--socket and --socket-name: pick the daemon"
        },
        {
          "id": "the-tools",
          "level": 2,
          "text": "The tools"
        },
        {
          "id": "read-the-layout-and-the-screen",
          "level": 2,
          "text": "Read the layout and the screen"
        },
        {
          "id": "tmux_snapshot-the-layout-in-pages",
          "level": 3,
          "text": "tmux_snapshot: the layout, in pages"
        },
        {
          "id": "tmux_capture-a-panes-screen",
          "level": 3,
          "text": "tmux_capture: a pane’s screen"
        },
        {
          "id": "tmux_wait-wait-for-text-or-exit",
          "level": 3,
          "text": "tmux_wait: wait for text or exit"
        },
        {
          "id": "resource-templates-the-same-data-as-uris",
          "level": 3,
          "text": "Resource templates: the same data as URIs"
        },
        {
          "id": "create-type-and-close",
          "level": 2,
          "text": "Create, type and close"
        },
        {
          "id": "tmux_create-new-sessions-windows-and-panes",
          "level": 3,
          "text": "tmux_create: new sessions, windows and panes"
        },
        {
          "id": "tmux_send-literal-text-or-named-keys",
          "level": 3,
          "text": "tmux_send: literal text or named keys"
        },
        {
          "id": "tmux_close-an-exact-target",
          "level": 3,
          "text": "tmux_close: an exact target"
        },
        {
          "id": "run-a-script-in-a-pane",
          "level": 2,
          "text": "Run a script in a pane"
        },
        {
          "id": "tmux_run-authored-commands-in-an-enrolled-zsh",
          "level": 3,
          "text": "tmux_run: authored commands in an enrolled zsh"
        },
        {
          "id": "embed-it-in-ruby",
          "level": 2,
          "text": "Embed it in Ruby"
        },
        {
          "id": "libtmuxmcpapplication-serve-from-your-own-program",
          "level": 3,
          "text": "LibTmux::MCP::Application: serve from your own program"
        },
        {
          "id": "applicationinvite_shell-enroll-a-shell-from-ruby",
          "level": 3,
          "text": "Application#invite_shell: enroll a shell from Ruby"
        },
        {
          "id": "what-it-leaves-out",
          "level": 2,
          "text": "What it leaves out"
        },
        {
          "id": "support-and-status",
          "level": 2,
          "text": "Support and status"
        },
        {
          "id": "documentation",
          "level": 2,
          "text": "Documentation"
        }
      ]
    },
    {
      "title": "Topics",
      "description": "Topics for libtmux.",
      "section": "Topics",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/topics/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/topics/index.md",
      "headings": []
    },
    {
      "title": "Ownership and errors",
      "description": "Understand server ownership, immutable references, and operation failures.",
      "section": "Topics",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/topics/errors-and-exceptions/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/topics/errors-and-exceptions/index.md",
      "headings": []
    },
    {
      "title": "Workspace guide",
      "description": "Workspace guide: libtmux documentation.",
      "section": "Guides",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/source-guide/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/source-guide/index.md",
      "headings": [
        {
          "id": "quick-start",
          "level": 2,
          "text": "Quick start"
        },
        {
          "id": "write-the-file",
          "level": 2,
          "text": "Write the file"
        },
        {
          "id": "workspaceload-the-declared-subset",
          "level": 3,
          "text": "Workspace.load: the declared subset"
        },
        {
          "id": "create-the-session",
          "level": 2,
          "text": "Create the session"
        },
        {
          "id": "libtmux-workspace-load-build-it-on-a-running-server",
          "level": 3,
          "text": "libtmux-workspace load: build it on a running server"
        },
        {
          "id": "planapply-the-same-from-ruby",
          "level": 3,
          "text": "Plan#apply: the same from Ruby"
        },
        {
          "id": "recover-from-a-failed-apply",
          "level": 2,
          "text": "Recover from a failed apply"
        },
        {
          "id": "applyerrorresult-what-exists-after-a-failure",
          "level": 3,
          "text": "ApplyError#result: what exists after a failure"
        },
        {
          "id": "attach-or-switch-to-the-new-session",
          "level": 2,
          "text": "Attach or switch to the new session"
        },
        {
          "id": "load---switch-move-a-client-to-the-session",
          "level": 3,
          "text": "load --switch: move a client to the session"
        },
        {
          "id": "script-it",
          "level": 2,
          "text": "Script it"
        },
        {
          "id": "--json-one-object-on-stdout",
          "level": 3,
          "text": "--json: one object on stdout"
        },
        {
          "id": "what-it-leaves-out",
          "level": 2,
          "text": "What it leaves out"
        },
        {
          "id": "support-and-status",
          "level": 2,
          "text": "Support and status"
        },
        {
          "id": "documentation",
          "level": 2,
          "text": "Documentation"
        }
      ]
    },
    {
      "title": "Third-party notices",
      "description": "Thanks to tmux's creator and contributors, with licences and attribution for the software behind libtmux.org.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/meta/third-party-notices/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/meta/third-party-notices.md",
      "headings": [
        {
          "id": "tmux",
          "level": 2,
          "text": "tmux"
        },
        {
          "id": "tmux-artwork",
          "level": 3,
          "text": "tmux artwork"
        },
        {
          "id": "programming-language-artwork",
          "level": 2,
          "text": "Programming-language artwork"
        },
        {
          "id": "terminal-artwork",
          "level": 2,
          "text": "Terminal artwork"
        },
        {
          "id": "documentation-toolchain",
          "level": 2,
          "text": "Documentation toolchain"
        },
        {
          "id": "a-note-on-doxygen",
          "level": 3,
          "text": "A note on Doxygen"
        },
        {
          "id": "reference-hosting",
          "level": 2,
          "text": "Reference hosting"
        },
        {
          "id": "libtmux-itself",
          "level": 2,
          "text": "libtmux itself"
        }
      ]
    },
    {
      "title": "Server, session, window, pane",
      "description": "How tmux servers, sessions, windows, panes and attached clients relate to each other.",
      "section": "Concepts",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/concepts/server-session-window-pane/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/concepts/server-session-window-pane.md",
      "headings": [
        {
          "id": "stable-identity-not-name-or-index",
          "level": 2,
          "text": "Stable identity, not name or index"
        },
        {
          "id": "client-a-view-not-a-child",
          "level": 2,
          "text": "Client: a view, not a child"
        }
      ]
    },
    {
      "title": "Capture pane output",
      "description": "Run a complete Ruby program that captures output on an isolated tmux server.",
      "section": "Examples",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/examples/capture-pane-output/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/examples/capture-pane-output.md",
      "headings": [
        {
          "id": "read-whats-on-screen",
          "level": 2,
          "text": "Read what’s on screen"
        },
        {
          "id": "wait-for-output-or-completion",
          "level": 2,
          "text": "Wait for output or completion"
        },
        {
          "id": "setup-and-run",
          "level": 2,
          "text": "Setup and run"
        },
        {
          "id": "where-this-comes-from",
          "level": 2,
          "text": "Where this comes from"
        }
      ]
    },
    {
      "title": "Attaching to tmux",
      "description": "Connect to an existing tmux server and find a session with Ruby.",
      "section": "Guides",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/attaching-to-tmux/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/guides/attaching-to-tmux.md",
      "headings": [
        {
          "id": "connect-to-an-existing-server",
          "level": 2,
          "text": "Connect to an existing server"
        },
        {
          "id": "setup-and-run",
          "level": 2,
          "text": "Setup and run"
        },
        {
          "id": "find-or-create-a-session",
          "level": 2,
          "text": "Find or create a session"
        }
      ]
    },
    {
      "title": "tmux MCP for Ruby",
      "description": "Run the libtmux-mcp server with an explicit tmux endpoint and tool policy.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/index.md",
      "headings": [
        {
          "id": "start-here",
          "level": 2,
          "text": "Start here"
        }
      ]
    },
    {
      "title": "Ruby MCP examples",
      "description": "Run complete Ruby programs for an MCP client or an embedded application.",
      "section": "Examples",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/examples/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/examples.md",
      "headings": [
        {
          "id": "default-read-only-catalog",
          "level": 2,
          "text": "Default read-only catalog"
        },
        {
          "id": "add-bounded-observation",
          "level": 2,
          "text": "Add bounded observation"
        }
      ]
    },
    {
      "title": "Page session metadata from Ruby",
      "description": "Embed the Ruby MCP application, read a retained session listing, and close its owned resources.",
      "section": "Examples",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/examples/page-session-metadata/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/examples/page-session-metadata.md",
      "headings": [
        {
          "id": "prepare-the-project",
          "level": 2,
          "text": "Prepare the project"
        },
        {
          "id": "run-the-complete-example",
          "level": 2,
          "text": "Run the complete example"
        },
        {
          "id": "pagination",
          "level": 2,
          "text": "Pagination"
        },
        {
          "id": "resource-ownership",
          "level": 2,
          "text": "Resource ownership"
        }
      ]
    },
    {
      "title": "Ruby MCP guides",
      "description": "Connect an MCP client to a private tmux server and select its tools.",
      "section": "Guides",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/guides/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/guides.md",
      "headings": [
        {
          "id": "select-the-tmux-server",
          "level": 2,
          "text": "Select the tmux server"
        },
        {
          "id": "enable-observation",
          "level": 2,
          "text": "Enable observation"
        },
        {
          "id": "enable-mutations",
          "level": 2,
          "text": "Enable mutations"
        }
      ]
    },
    {
      "title": "Connect a Ruby MCP client",
      "description": "Launch a pinned Ruby MCP server on its own private tmux socket, inspect the default tools, and close it with the client.",
      "section": "Guides",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/guides/connect-client/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/guides/connect-client.md",
      "equivalence": "mcp-client-setup",
      "headings": [
        {
          "id": "prepare-the-project",
          "level": 2,
          "text": "Prepare the project"
        },
        {
          "id": "save-the-launcher",
          "level": 2,
          "text": "Save the launcher"
        },
        {
          "id": "configure-a-client",
          "level": 2,
          "text": "Configure a client"
        },
        {
          "id": "verify-the-connection",
          "level": 2,
          "text": "Verify the connection"
        },
        {
          "id": "connect-to-a-server-your-application-owns",
          "level": 2,
          "text": "Connect to a server your application owns"
        }
      ]
    },
    {
      "title": "Ruby MCP API reference",
      "description": "Public libtmux-mcp embedding types and methods.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/reference/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/reference.md",
      "headings": []
    },
    {
      "title": "Ruby MCP topics",
      "description": "Understand tool policy, retained observations, resources, and authored runs.",
      "section": "Topics",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/topics/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/topics.md",
      "headings": [
        {
          "id": "tool-policy",
          "level": 2,
          "text": "Tool policy"
        },
        {
          "id": "captures-and-resources",
          "level": 2,
          "text": "Captures and resources"
        },
        {
          "id": "authored-runs",
          "level": 2,
          "text": "Authored runs"
        }
      ]
    },
    {
      "title": "Snapshots, cursors, and references",
      "description": "Query Ruby MCP metadata, page a retained result, and use references within the server binding that created them.",
      "section": "Topics",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/topics/snapshots-and-references/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/topics/snapshots-and-references.md",
      "headings": [
        {
          "id": "discover-the-binding-and-limits",
          "level": 2,
          "text": "Discover the binding and limits"
        },
        {
          "id": "read-a-session-listing",
          "level": 2,
          "text": "Read a session listing"
        },
        {
          "id": "filter-captured-metadata",
          "level": 2,
          "text": "Filter captured metadata"
        },
        {
          "id": "continue-the-same-result",
          "level": 2,
          "text": "Continue the same result"
        },
        {
          "id": "keep-references-within-their-binding",
          "level": 2,
          "text": "Keep references within their binding"
        },
        {
          "id": "read-metadata-through-resources",
          "level": 2,
          "text": "Read metadata through resources"
        },
        {
          "id": "handle-errors-before-reading-data",
          "level": 2,
          "text": "Handle errors before reading data"
        }
      ]
    },
    {
      "title": "tmux workspace manager for Ruby",
      "description": "Validate, plan, and load bounded YAML or JSON workspaces with libtmux-workspace.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/index.md",
      "headings": [
        {
          "id": "start-here",
          "level": 2,
          "text": "Start here"
        }
      ]
    },
    {
      "title": "libtmux-workspace CLI manual",
      "description": "Commands, options and exit statuses for the Ruby workspace CLI.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/cli/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/cli/index.md",
      "headings": [
        {
          "id": "commands",
          "level": 2,
          "text": "Commands"
        },
        {
          "id": "input-and-common-options",
          "level": 2,
          "text": "Input and common options"
        },
        {
          "id": "output-and-exit-statuses",
          "level": 2,
          "text": "Output and exit statuses"
        }
      ]
    },
    {
      "title": "load",
      "description": "Create a Ruby workspace on an explicitly selected existing tmux server.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/cli/load/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/cli/load.md",
      "headings": [
        {
          "id": "create-a-workspace",
          "level": 2,
          "text": "Create a workspace"
        },
        {
          "id": "options",
          "level": 2,
          "text": "Options"
        },
        {
          "id": "results-and-failures",
          "level": 2,
          "text": "Results and failures"
        }
      ]
    },
    {
      "title": "plan",
      "description": "Inspect the ordered operations needed to create a Ruby workspace.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/cli/plan/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/cli/plan.md",
      "headings": [
        {
          "id": "inspect-an-offline-plan",
          "level": 2,
          "text": "Inspect an offline plan"
        },
        {
          "id": "inspect-a-live-server",
          "level": 2,
          "text": "Inspect a live server"
        },
        {
          "id": "options-and-failures",
          "level": 2,
          "text": "Options and failures"
        }
      ]
    },
    {
      "title": "validate",
      "description": "Check a Ruby workspace configuration without contacting tmux.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/cli/validate/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/cli/validate.md",
      "headings": [
        {
          "id": "check-a-workspace",
          "level": 2,
          "text": "Check a workspace"
        },
        {
          "id": "options-and-limits",
          "level": 2,
          "text": "Options and limits"
        }
      ]
    },
    {
      "title": "Ruby workspace examples",
      "description": "A bounded creation-only workspace for libtmux-workspace.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/examples/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/examples.md",
      "headings": []
    },
    {
      "title": "Ruby workspace guides",
      "description": "Validate, inspect, and explicitly apply a Ruby workspace plan.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/guides/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/guides.md",
      "headings": [
        {
          "id": "validate-without-tmux",
          "level": 2,
          "text": "Validate without tmux"
        },
        {
          "id": "inspect-an-offline-plan",
          "level": 2,
          "text": "Inspect an offline plan"
        },
        {
          "id": "load-on-an-explicit-socket",
          "level": 2,
          "text": "Load on an explicit socket"
        }
      ]
    },
    {
      "title": "Ruby workspace API reference",
      "description": "Public libtmux-workspace parsing, planning, application, and CLI types.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/reference/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/reference.md",
      "headings": []
    },
    {
      "title": "Ruby workspace topics",
      "description": "Workspace format, planning boundaries, application effects, and failure ledgers.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/topics/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/topics.md",
      "headings": [
        {
          "id": "configuration-boundary",
          "level": 2,
          "text": "Configuration boundary"
        },
        {
          "id": "creation-only-plans",
          "level": 2,
          "text": "Creation-only plans"
        },
        {
          "id": "effects-and-failure",
          "level": 2,
          "text": "Effects and failure"
        }
      ]
    },
    {
      "title": "API glossary",
      "description": "Kinds, modifiers and package labels in the Ruby API reference.",
      "section": "API reference",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/glossary/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/glossary.md",
      "jsonUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/glossary.json",
      "headings": [
        {
          "id": "symbol-kinds",
          "level": 2,
          "text": "Symbol kinds"
        },
        {
          "id": "module",
          "level": 3,
          "text": "module"
        },
        {
          "id": "class",
          "level": 3,
          "text": "class"
        },
        {
          "id": "method",
          "level": 3,
          "text": "method"
        },
        {
          "id": "typealias",
          "level": 3,
          "text": "typealias"
        },
        {
          "id": "modifiers",
          "level": 2,
          "text": "Modifiers"
        },
        {
          "id": "static",
          "level": 3,
          "text": "static"
        },
        {
          "id": "package-context",
          "level": 2,
          "text": "Package context"
        },
        {
          "id": "package",
          "level": 3,
          "text": "package"
        }
      ]
    },
    {
      "title": "MCP API glossary",
      "description": "What MCP tool annotations tell clients about a tool.",
      "section": "API reference",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/reference/glossary/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/reference/glossary.md",
      "jsonUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/reference/glossary.json",
      "headings": [
        {
          "id": "mcp-tool-annotations",
          "level": 2,
          "text": "MCP tool annotations"
        },
        {
          "id": "readOnlyHint",
          "level": 3,
          "text": "readOnlyHint"
        },
        {
          "id": "destructiveHint",
          "level": 3,
          "text": "destructiveHint"
        },
        {
          "id": "idempotentHint",
          "level": 3,
          "text": "idempotentHint"
        },
        {
          "id": "openWorldHint",
          "level": 3,
          "text": "openWorldHint"
        },
        {
          "id": "title",
          "level": 3,
          "text": "title"
        },
        {
          "id": "symbol-kinds",
          "level": 2,
          "text": "Symbol kinds"
        },
        {
          "id": "module",
          "level": 3,
          "text": "module"
        },
        {
          "id": "class",
          "level": 3,
          "text": "class"
        },
        {
          "id": "method",
          "level": 3,
          "text": "method"
        },
        {
          "id": "typealias",
          "level": 3,
          "text": "typealias"
        },
        {
          "id": "modifiers",
          "level": 2,
          "text": "Modifiers"
        },
        {
          "id": "static",
          "level": 3,
          "text": "static"
        },
        {
          "id": "package-context",
          "level": 2,
          "text": "Package context"
        },
        {
          "id": "package",
          "level": 3,
          "text": "package"
        }
      ]
    },
    {
      "title": "API glossary",
      "description": "Kinds, modifiers and package labels in the Ruby API reference.",
      "section": "API reference",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/reference/glossary/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/reference/glossary.md",
      "jsonUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/workspace/reference/glossary.json",
      "headings": [
        {
          "id": "symbol-kinds",
          "level": 2,
          "text": "Symbol kinds"
        },
        {
          "id": "module",
          "level": 3,
          "text": "module"
        },
        {
          "id": "class",
          "level": 3,
          "text": "class"
        },
        {
          "id": "method",
          "level": 3,
          "text": "method"
        },
        {
          "id": "typealias",
          "level": 3,
          "text": "typealias"
        },
        {
          "id": "modifiers",
          "level": 2,
          "text": "Modifiers"
        },
        {
          "id": "static",
          "level": 3,
          "text": "static"
        },
        {
          "id": "package-context",
          "level": 2,
          "text": "Package context"
        },
        {
          "id": "package",
          "level": 3,
          "text": "package"
        }
      ]
    },
    {
      "title": "API reference",
      "description": "55 declarations in the Ruby reference index. The symbol index also includes their members.",
      "section": "API reference",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/index.md",
      "symbolIndexUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/tree.json",
      "headings": [
        {
          "id": "section-server",
          "level": 2,
          "text": "Server"
        },
        {
          "id": "section-session",
          "level": 2,
          "text": "Session"
        },
        {
          "id": "section-window",
          "level": 2,
          "text": "Window"
        },
        {
          "id": "section-pane",
          "level": 2,
          "text": "Pane"
        },
        {
          "id": "section-client",
          "level": 2,
          "text": "Client"
        },
        {
          "id": "section-hooks",
          "level": 2,
          "text": "Hooks"
        },
        {
          "id": "section-options",
          "level": 2,
          "text": "Options"
        },
        {
          "id": "section-commands",
          "level": 2,
          "text": "Commands"
        },
        {
          "id": "section-control",
          "level": 2,
          "text": "Control mode"
        },
        {
          "id": "section-queries-expressions",
          "level": 2,
          "text": "Queries — Expressions"
        },
        {
          "id": "section-snapshots",
          "level": 2,
          "text": "Snapshots"
        },
        {
          "id": "section-errors",
          "level": 2,
          "text": "Errors"
        },
        {
          "id": "section-constants",
          "level": 2,
          "text": "Constants and enums"
        },
        {
          "id": "section-async",
          "level": 2,
          "text": "Async"
        },
        {
          "id": "section-__unplaced",
          "level": 2,
          "text": "Other"
        }
      ],
      "symbols": [
        {
          "id": "LibTmux::Server",
          "name": "Server",
          "kind": "class",
          "qualifiedName": "LibTmux::Server",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-server/"
        },
        {
          "id": "LibTmux::Session",
          "name": "Session",
          "kind": "class",
          "qualifiedName": "LibTmux::Session",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-session-nvps/"
        },
        {
          "id": "LibTmux::SessionWhere",
          "name": "SessionWhere",
          "kind": "module",
          "qualifiedName": "LibTmux::SessionWhere",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-sessionwhere/"
        },
        {
          "id": "LibTmux::Window",
          "name": "Window",
          "kind": "class",
          "qualifiedName": "LibTmux::Window",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-window-1vfx/"
        },
        {
          "id": "LibTmux::WindowLink",
          "name": "WindowLink",
          "kind": "class",
          "qualifiedName": "LibTmux::WindowLink",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-windowlink-tusj/"
        },
        {
          "id": "LibTmux::WindowLinkWhere",
          "name": "WindowLinkWhere",
          "kind": "module",
          "qualifiedName": "LibTmux::WindowLinkWhere",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-windowlinkwhere/"
        },
        {
          "id": "LibTmux::WindowWhere",
          "name": "WindowWhere",
          "kind": "module",
          "qualifiedName": "LibTmux::WindowWhere",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-windowwhere/"
        },
        {
          "id": "LibTmux::Pane",
          "name": "Pane",
          "kind": "class",
          "qualifiedName": "LibTmux::Pane",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-pane-14z6/"
        },
        {
          "id": "LibTmux::PaneWhere",
          "name": "PaneWhere",
          "kind": "module",
          "qualifiedName": "LibTmux::PaneWhere",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-panewhere/"
        },
        {
          "id": "LibTmux::ClientWhere",
          "name": "ClientWhere",
          "kind": "module",
          "qualifiedName": "LibTmux::ClientWhere",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-clientwhere/"
        },
        {
          "id": "LibTmux::Hooks",
          "name": "Hooks",
          "kind": "class",
          "qualifiedName": "LibTmux::Hooks",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-hooks/"
        },
        {
          "id": "LibTmux::OptionValue",
          "name": "OptionValue",
          "kind": "class",
          "qualifiedName": "LibTmux::OptionValue",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-optionvalue/"
        },
        {
          "id": "LibTmux::Cancellation",
          "name": "Cancellation",
          "kind": "class",
          "qualifiedName": "LibTmux::Cancellation",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-cancellation/"
        },
        {
          "id": "LibTmux::CreationReceipt",
          "name": "CreationReceipt",
          "kind": "class",
          "qualifiedName": "LibTmux::CreationReceipt",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-creationreceipt/"
        },
        {
          "id": "LibTmux::Endpoint",
          "name": "Endpoint",
          "kind": "class",
          "qualifiedName": "LibTmux::Endpoint",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-endpoint-s6cs/"
        },
        {
          "id": "LibTmux::ControlConnection",
          "name": "ControlConnection",
          "kind": "class",
          "qualifiedName": "LibTmux::ControlConnection",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-controlconnection/"
        },
        {
          "id": "LibTmux::ControlSubscription",
          "name": "ControlSubscription",
          "kind": "class",
          "qualifiedName": "LibTmux::ControlSubscription",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-controlsubscription/"
        },
        {
          "id": "LibTmux::GuardedBlock",
          "name": "GuardedBlock",
          "kind": "class",
          "qualifiedName": "LibTmux::GuardedBlock",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-guardedblock/"
        },
        {
          "id": "LibTmux::GuardedReply",
          "name": "GuardedReply",
          "kind": "class",
          "qualifiedName": "LibTmux::GuardedReply",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-guardedreply/"
        },
        {
          "id": "LibTmux::FilterExpr",
          "name": "FilterExpr",
          "kind": "class",
          "qualifiedName": "LibTmux::FilterExpr",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-filterexpr-1wz0/"
        },
        {
          "id": "LibTmux::CapturedRecord",
          "name": "CapturedRecord",
          "kind": "class",
          "qualifiedName": "LibTmux::CapturedRecord",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-capturedrecord-18ay/"
        },
        {
          "id": "LibTmux::ClientSnapshot",
          "name": "ClientSnapshot",
          "kind": "class",
          "qualifiedName": "LibTmux::ClientSnapshot",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-clientsnapshot-w08e/"
        },
        {
          "id": "LibTmux::PaneSnapshot",
          "name": "PaneSnapshot",
          "kind": "class",
          "qualifiedName": "LibTmux::PaneSnapshot",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-panesnapshot-43mz/"
        },
        {
          "id": "LibTmux::Selection",
          "name": "Selection",
          "kind": "class",
          "qualifiedName": "LibTmux::Selection",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-selection/"
        },
        {
          "id": "LibTmux::SessionSnapshot",
          "name": "SessionSnapshot",
          "kind": "class",
          "qualifiedName": "LibTmux::SessionSnapshot",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-sessionsnapshot-xllu/"
        },
        {
          "id": "LibTmux::Snapshot",
          "name": "Snapshot",
          "kind": "class",
          "qualifiedName": "LibTmux::Snapshot",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-snapshot/"
        },
        {
          "id": "LibTmux::WindowLinkSnapshot",
          "name": "WindowLinkSnapshot",
          "kind": "class",
          "qualifiedName": "LibTmux::WindowLinkSnapshot",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-windowlinksnapshot-vzc2/"
        },
        {
          "id": "LibTmux::WindowSnapshot",
          "name": "WindowSnapshot",
          "kind": "class",
          "qualifiedName": "LibTmux::WindowSnapshot",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-windowsnapshot-19c3/"
        },
        {
          "id": "LibTmux::Cancelled",
          "name": "Cancelled",
          "kind": "class",
          "qualifiedName": "LibTmux::Cancelled",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-cancelled/"
        },
        {
          "id": "LibTmux::CapacityError",
          "name": "CapacityError",
          "kind": "class",
          "qualifiedName": "LibTmux::CapacityError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-capacityerror/"
        },
        {
          "id": "LibTmux::ClosedError",
          "name": "ClosedError",
          "kind": "class",
          "qualifiedName": "LibTmux::ClosedError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-closederror/"
        },
        {
          "id": "LibTmux::CommandError",
          "name": "CommandError",
          "kind": "class",
          "qualifiedName": "LibTmux::CommandError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-commanderror/"
        },
        {
          "id": "LibTmux::DeadlineExceeded",
          "name": "DeadlineExceeded",
          "kind": "class",
          "qualifiedName": "LibTmux::DeadlineExceeded",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-deadlineexceeded/"
        },
        {
          "id": "LibTmux::Error",
          "name": "Error",
          "kind": "class",
          "qualifiedName": "LibTmux::Error",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-error/"
        },
        {
          "id": "LibTmux::FieldDecodeError",
          "name": "FieldDecodeError",
          "kind": "class",
          "qualifiedName": "LibTmux::FieldDecodeError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-fielddecodeerror/"
        },
        {
          "id": "LibTmux::IncompleteSnapshotError",
          "name": "IncompleteSnapshotError",
          "kind": "class",
          "qualifiedName": "LibTmux::IncompleteSnapshotError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-incompletesnapshoterror/"
        },
        {
          "id": "LibTmux::InconsistentSnapshotError",
          "name": "InconsistentSnapshotError",
          "kind": "class",
          "qualifiedName": "LibTmux::InconsistentSnapshotError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-inconsistentsnapshoterror/"
        },
        {
          "id": "LibTmux::InvalidFilterError",
          "name": "InvalidFilterError",
          "kind": "class",
          "qualifiedName": "LibTmux::InvalidFilterError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-invalidfiltererror/"
        },
        {
          "id": "LibTmux::MultipleMatchesError",
          "name": "MultipleMatchesError",
          "kind": "class",
          "qualifiedName": "LibTmux::MultipleMatchesError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-multiplematcheserror/"
        },
        {
          "id": "LibTmux::NoMatchError",
          "name": "NoMatchError",
          "kind": "class",
          "qualifiedName": "LibTmux::NoMatchError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-nomatcherror/"
        },
        {
          "id": "LibTmux::OutcomeUnknown",
          "name": "OutcomeUnknown",
          "kind": "class",
          "qualifiedName": "LibTmux::OutcomeUnknown",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-outcomeunknown/"
        },
        {
          "id": "LibTmux::ProtocolError",
          "name": "ProtocolError",
          "kind": "class",
          "qualifiedName": "LibTmux::ProtocolError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-protocolerror/"
        },
        {
          "id": "LibTmux::SubscriptionOverflow",
          "name": "SubscriptionOverflow",
          "kind": "class",
          "qualifiedName": "LibTmux::SubscriptionOverflow",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-subscriptionoverflow/"
        },
        {
          "id": "LibTmux::TargetNotFoundError",
          "name": "TargetNotFoundError",
          "kind": "class",
          "qualifiedName": "LibTmux::TargetNotFoundError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-targetnotfounderror/"
        },
        {
          "id": "LibTmux::TransportError",
          "name": "TransportError",
          "kind": "class",
          "qualifiedName": "LibTmux::TransportError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-transporterror/"
        },
        {
          "id": "LibTmux::UnsupportedFeatureError",
          "name": "UnsupportedFeatureError",
          "kind": "class",
          "qualifiedName": "LibTmux::UnsupportedFeatureError",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-unsupportedfeatureerror/"
        },
        {
          "id": "LibTmux::CommandResult",
          "name": "CommandResult",
          "kind": "class",
          "qualifiedName": "LibTmux::CommandResult",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-commandresult/"
        },
        {
          "id": "LibTmux::ControlEvent",
          "name": "ControlEvent",
          "kind": "class",
          "qualifiedName": "LibTmux::ControlEvent",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-controlevent/"
        },
        {
          "id": "LibTmux::GroupResult",
          "name": "GroupResult",
          "kind": "class",
          "qualifiedName": "LibTmux::GroupResult",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-groupresult/"
        },
        {
          "id": "LibTmux::Options",
          "name": "Options",
          "kind": "class",
          "qualifiedName": "LibTmux::Options",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-options/"
        },
        {
          "id": "LibTmux::TerminalResult",
          "name": "TerminalResult",
          "kind": "class",
          "qualifiedName": "LibTmux::TerminalResult",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-terminalresult/"
        },
        {
          "id": "LibTmux::Async",
          "name": "Async",
          "kind": "module",
          "qualifiedName": "LibTmux::Async",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-async/"
        },
        {
          "id": "LibTmux::Entity",
          "name": "Entity",
          "kind": "class",
          "qualifiedName": "LibTmux::Entity",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-entity-bg78/"
        },
        {
          "id": "LibTmux::EntityRef",
          "name": "EntityRef",
          "kind": "class",
          "qualifiedName": "LibTmux::EntityRef",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-entityref-162n/"
        },
        {
          "id": "LibTmux::Support",
          "name": "Support",
          "kind": "module",
          "qualifiedName": "LibTmux::Support",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/reference/libtmux-support/"
        }
      ]
    },
    {
      "title": "Tools",
      "description": "Browse the operations the server exposes to MCP clients. Use the registered name and arguments when sending a tools/call request.",
      "section": "Ruby MCP tools",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools.md",
      "headings": [
        {
          "id": "tools-server",
          "level": 2,
          "text": "Server2 tools"
        },
        {
          "id": "tools-pane",
          "level": 2,
          "text": "Pane6 tools"
        },
        {
          "id": "resources",
          "level": 2,
          "text": "rResources"
        },
        {
          "id": "resource-templates",
          "level": 2,
          "text": "RResource templates"
        },
        {
          "id": "prompts",
          "level": 2,
          "text": "PPrompts"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267"
      }
    },
    {
      "title": "tmux_capabilities",
      "description": "Discover the fixed endpoint, server binding, enabled tools, criteria schema and limits. Acquires metadata; starts no daemon.",
      "section": "Ruby MCP tools",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_capabilities/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_capabilities.md",
      "headings": [
        {
          "id": "mcp.tool.tmux_capabilities.parameters",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "mcp.tool.tmux_capabilities.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.tool.tmux_capabilities.annotations",
          "level": 2,
          "text": "Annotations"
        },
        {
          "id": "mcp.tool.tmux_capabilities.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 250
      }
    },
    {
      "title": "tmux_capture",
      "description": "Read exact-pane screen/history rows preserving LF. Defaults: 200 lines, 65536 bytes, zero history lines, track=false. Limits: 1000 lines/history, 262144 bytes. UTF-8 or base64; truncation is separate from unknown history continuity. Tracked process cursors require tmux>=3.3a and a native process identity backend: Linux peer pidfds with matching PID namespaces, or Darwin kqueue process observation. Continuation returns an exact state row splice, not a live-output journal. Refuses capture after-hooks.",
      "section": "Ruby MCP tools",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_capture/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_capture.md",
      "headings": [
        {
          "id": "mcp.tool.tmux_capture.parameters",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "mcp.tool.tmux_capture.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.tool.tmux_capture.annotations",
          "level": 2,
          "text": "Annotations"
        },
        {
          "id": "mcp.tool.tmux_capture.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 240
      }
    },
    {
      "title": "tmux_close",
      "description": "Destroy one exact session, window or pane. Opt-in destructive operation; closing a session or window also removes its contained topology. Never selects by name or closes the daemon directly. Returns the final tmux client outcome.",
      "section": "Ruby MCP tools",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_close/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_close.md",
      "headings": [
        {
          "id": "mcp.tool.tmux_close.parameters",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "mcp.tool.tmux_close.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.tool.tmux_close.annotations",
          "level": 2,
          "text": "Annotations"
        },
        {
          "id": "mcp.tool.tmux_close.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 248
      }
    },
    {
      "title": "tmux_create",
      "description": "Create a session, window in an exact session, or split an exact pane using argv. Opt-in mutation; 64 KiB total string bytes and at most 256 argv entries. Window/pane focus defaults false. Cwd/environment are optional; size is cells or percent. Assigned refs prove creation, not program readiness or completion.",
      "section": "Ruby MCP tools",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_create/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_create.md",
      "headings": [
        {
          "id": "mcp.tool.tmux_create.parameters",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "mcp.tool.tmux_create.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.tool.tmux_create.annotations",
          "level": 2,
          "text": "Annotations"
        },
        {
          "id": "mcp.tool.tmux_create.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 246
      }
    },
    {
      "title": "tmux_run",
      "description": "Run an authored POSIX script in an explicitly enrolled idle, empty zsh 5.9 editor. Opt-in; no terminal injection. Exact queue authorization binds the existing shell generation; execution may follow a later pane replacement without retargeting it. Inherits cwd/exported environment, closed stdin, separate bounded UTF-8/base64 outputs. Defaults: 65536 bytes per output, 65536 script bytes; overflow refuses completion. Reports native exit/signal only from the helper; cancellation never proves descendants stopped.",
      "section": "Ruby MCP tools",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_run/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_run.md",
      "headings": [
        {
          "id": "mcp.tool.tmux_run.parameters",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "mcp.tool.tmux_run.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.tool.tmux_run.annotations",
          "level": 2,
          "text": "Annotations"
        },
        {
          "id": "mcp.tool.tmux_run.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 238
      }
    },
    {
      "title": "tmux_send",
      "description": "Send literal UTF-8 text or named keys to one exact pane. Opt-in mutation; 64 KiB total text bytes, at most 256 keys. Reports tmux client completion and input dispatch only; never shell completion.",
      "section": "Ruby MCP tools",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_send/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_send.md",
      "headings": [
        {
          "id": "mcp.tool.tmux_send.parameters",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "mcp.tool.tmux_send.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.tool.tmux_send.annotations",
          "level": 2,
          "text": "Annotations"
        },
        {
          "id": "mcp.tool.tmux_send.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 244
      }
    },
    {
      "title": "tmux_snapshot",
      "description": "Capture ordered metadata and evaluate Ruby criteria locally. Pages retain one immutable capture; expired cursors require a new query. Limit defaults to 50 records, maximum 200.",
      "section": "Ruby MCP tools",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_snapshot/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_snapshot.md",
      "headings": [
        {
          "id": "mcp.tool.tmux_snapshot.parameters",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "mcp.tool.tmux_snapshot.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.tool.tmux_snapshot.types",
          "level": 2,
          "text": "Types"
        },
        {
          "id": "mcp.tool.tmux_snapshot.annotations",
          "level": 2,
          "text": "Annotations"
        },
        {
          "id": "mcp.tool.tmux_snapshot.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 6
      }
    },
    {
      "title": "tmux_wait",
      "description": "Wait for observed literal screen text or the initial pane process exit. Deadline in seconds is capped by the application limit. Pane exit is observed through process descriptors. The screen_contains condition joins wrapped rows, uses control events on tmux>=3.7 and polls the pane screen on older daemons, which take no control client. A pane or tmux server that ends first fails with pane_died and the last rows read in error.capture; a lost control stream fails with observation_lost. Requires tmux>=3.3a and Linux peer pidfds with matching PID namespaces or Darwin kqueue process observation. Reports observed evidence, never remote termination caused by cancellation or an inferred process exit status.",
      "section": "Ruby MCP tools",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_wait/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/tools/tmux_wait.md",
      "headings": [
        {
          "id": "mcp.tool.tmux_wait.parameters",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "mcp.tool.tmux_wait.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.tool.tmux_wait.annotations",
          "level": 2,
          "text": "Annotations"
        },
        {
          "id": "mcp.tool.tmux_wait.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 242
      }
    },
    {
      "title": "Prompts",
      "description": "Browse the reusable workflows the server provides through prompts/get. Each prompt documents its arguments and the messages it returns.",
      "section": "Ruby MCP prompts",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/prompts/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/prompts.md",
      "headings": [],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267"
      }
    },
    {
      "title": "Resources",
      "description": "Browse the data the server exposes through resources/read. Resource templates describe URI patterns and the variables used to select a resource.",
      "section": "Ruby MCP resources",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/resources/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/resources.md",
      "headings": [
        {
          "id": "resources-resource-templates",
          "level": 2,
          "text": "Resource templates3 objects"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267"
      }
    },
    {
      "title": "tmux_metadata",
      "description": "Acquire metadata through tmux_snapshot with its default page limit. Encode every URI component; generation must match discovery. Reports capture interval and truncation.",
      "section": "Ruby MCP resources",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/resources/templates/tmux_metadata/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/resources/templates/tmux_metadata.md",
      "headings": [
        {
          "id": "mcp.resource-template.tmux://{endpoint}/{generation}/snapshots/{entity}.parameters",
          "level": 2,
          "text": "URI parameters"
        },
        {
          "id": "mcp.resource-template.tmux://{endpoint}/{generation}/snapshots/{entity}.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.resource-template.tmux://{endpoint}/{generation}/snapshots/{entity}.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267"
      }
    },
    {
      "title": "tmux_metadata_page",
      "description": "Read a retained tmux_snapshot page without refreshing it. Encode the cursor component; endpoint, generation and entity must match its captured query.",
      "section": "Ruby MCP resources",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/resources/templates/tmux_metadata_page/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/resources/templates/tmux_metadata_page.md",
      "headings": [
        {
          "id": "mcp.resource-template.tmux://{endpoint}/{generation}/snapshots/{entity}/pages/{cursor}.parameters",
          "level": 2,
          "text": "URI parameters"
        },
        {
          "id": "mcp.resource-template.tmux://{endpoint}/{generation}/snapshots/{entity}/pages/{cursor}.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.resource-template.tmux://{endpoint}/{generation}/snapshots/{entity}/pages/{cursor}.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267"
      }
    },
    {
      "title": "tmux_screen",
      "description": "Capture an exact pane through tmux_capture with its default byte/line bounds, without cursor tracking. Percent-encode pane IDs. Invalid UTF-8 is an application/octet-stream blob; _meta includes capture interval, truncation and unknown history continuity.",
      "section": "Ruby MCP resources",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/resources/templates/tmux_screen/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.3/mcp/resources/templates/tmux_screen.md",
      "headings": [
        {
          "id": "mcp.resource-template.tmux://{endpoint}/{generation}/panes/{pane_id}/screen.parameters",
          "level": 2,
          "text": "URI parameters"
        },
        {
          "id": "mcp.resource-template.tmux://{endpoint}/{generation}/panes/{pane_id}/screen.result",
          "level": 2,
          "text": "Result"
        },
        {
          "id": "mcp.resource-template.tmux://{endpoint}/{generation}/panes/{pane_id}/screen.schemas",
          "level": 2,
          "text": "Protocol data"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267",
        "extractedRevision": "d8ce4bbee0ca7748a81929f81f7d8d07f8c51267"
      }
    }
  ]
}
