{
  "name": "libtmux for Ruby",
  "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/",
  "description": "Guides, examples and API reference for libtmux.",
  "sourceRepository": "https://github.com/libtmux/libtmux-ruby",
  "agentEntrypoints": {
    "manifest": "/en/ruby/v0.1.0.alpha.2/docs.json",
    "llms": "/en/ruby/v0.1.0.alpha.2/llms.txt",
    "llmsFull": "/en/ruby/v0.1.0.alpha.2/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.2/reference/",
      "products": [
        {
          "slug": "workspace",
          "name": "Workspace Manager",
          "availability": "available",
          "inDevelopment": false,
          "support": "concept",
          "supportDescription": "Maintained as a working example of core library usage and deployment. Example APIs, tools and configuration may change without a compatibility or product support commitment.",
          "cli": "libtmux-workspace load",
          "cliAvailability": "released",
          "url": "/en/ruby/v0.1.0.alpha.2/workspace/",
          "reference": "/en/ruby/v0.1.0.alpha.2/workspace/reference/",
          "source": {
            "product": "workspace",
            "package": "libtmux-workspace",
            "version": "0.1.0.alpha.2",
            "repo": "libtmux/libtmux-ruby",
            "revision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
            "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372"
          }
        },
        {
          "slug": "mcp",
          "name": "MCP",
          "availability": "available",
          "inDevelopment": true,
          "support": "concept",
          "supportDescription": "Maintained as a working example of core library usage and deployment. Example APIs, tools and configuration may change without a compatibility or product support commitment.",
          "url": "/en/ruby/v0.1.0.alpha.2/mcp/",
          "reference": "/en/ruby/v0.1.0.alpha.2/mcp/reference/",
          "protocol": "/en/ruby/v0.1.0.alpha.2/mcp/tools.json",
          "source": {
            "product": "mcp",
            "package": "libtmux-mcp",
            "version": "0.1.0.alpha.2",
            "repo": "libtmux/libtmux-ruby",
            "revision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
            "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372"
          }
        }
      ],
      "extracted": {
        "symbols": 773,
        "extractor": "@libtmux/api-model@0.0.1 (scripts/export-docs v1)",
        "inventory": "/en/ruby/v0.1.0.alpha.2/reference/objects.inv"
      },
      "documentation": [
        {
          "id": "core",
          "name": "Core library",
          "kind": "core",
          "availability": "available",
          "url": "/en/ruby/v0.1.0.alpha.2/"
        },
        {
          "id": "async",
          "name": "Async",
          "kind": "companion-package",
          "availability": "available",
          "url": "/en/ruby/v0.1.0.alpha.2/guides/async/",
          "package": "libtmux-async"
        },
        {
          "id": "mcp",
          "name": "MCP",
          "kind": "product",
          "availability": "available",
          "url": "/en/ruby/v0.1.0.alpha.2/mcp/"
        },
        {
          "id": "workspace",
          "name": "Workspace Manager",
          "kind": "product",
          "availability": "available",
          "url": "/en/ruby/v0.1.0.alpha.2/workspace/"
        }
      ]
    }
  ],
  "pages": [
    {
      "title": "Concepts",
      "description": "Concepts for libtmux.",
      "section": "Concepts",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/concepts/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/concepts/transports/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/concepts/transports/index.md",
      "headings": []
    },
    {
      "title": "Examples",
      "description": "Examples for libtmux.",
      "section": "Examples",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/examples/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/examples/recipes/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/guides/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/guides/async/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/guides/async/index.md",
      "headings": []
    },
    {
      "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.2/guides/core/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/guides/core/index.md",
      "headings": []
    },
    {
      "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.2/guides/getting-started/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/guides/getting-started/index.md",
      "headings": [
        {
          "id": "install",
          "level": 2,
          "text": "Install"
        },
        {
          "id": "install-from-source",
          "level": 2,
          "text": "Install from source"
        },
        {
          "id": "quick-start",
          "level": 2,
          "text": "Quick start"
        },
        {
          "id": "query-a-snapshot",
          "level": 2,
          "text": "Query a snapshot"
        },
        {
          "id": "gems",
          "level": 2,
          "text": "Gems"
        },
        {
          "id": "more-examples-and-reference",
          "level": 2,
          "text": "More examples and reference"
        },
        {
          "id": "attribution",
          "level": 2,
          "text": "Attribution"
        }
      ]
    },
    {
      "title": "MCP server guide",
      "description": "MCP server guide: libtmux documentation.",
      "section": "Guides",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/source-guide/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/source-guide/index.md",
      "equivalence": "mcp-client-setup",
      "headings": [
        {
          "id": "start-the-server",
          "level": 2,
          "text": "Start the server"
        },
        {
          "id": "snapshots-capture-and-waits",
          "level": 2,
          "text": "Snapshots, capture and waits"
        },
        {
          "id": "create-send-and-close",
          "level": 2,
          "text": "Create, send and close"
        },
        {
          "id": "run-authored-commands",
          "level": 2,
          "text": "Run authored commands"
        },
        {
          "id": "embed-in-ruby",
          "level": 2,
          "text": "Embed in Ruby"
        }
      ]
    },
    {
      "title": "Topics",
      "description": "Topics for libtmux.",
      "section": "Topics",
      "url": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/topics/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/topics/errors-and-exceptions/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/source-guide/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/workspace/source-guide/index.md",
      "headings": [
        {
          "id": "example",
          "level": 2,
          "text": "Example"
        },
        {
          "id": "configuration",
          "level": 2,
          "text": "Configuration"
        },
        {
          "id": "apply-and-failure-results",
          "level": 2,
          "text": "Apply and failure results"
        },
        {
          "id": "command-line-interface",
          "level": 2,
          "text": "Command-line interface"
        }
      ]
    },
    {
      "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.2/concepts/server-session-window-pane/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/examples/capture-pane-output/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/guides/attaching-to-tmux/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/mcp/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/mcp/examples/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/mcp/examples/page-session-metadata/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/mcp/guides/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/mcp/guides/connect-client/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/mcp/reference/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/mcp/topics/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/mcp/topics/snapshots-and-references/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/cli/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/cli/load/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/cli/plan/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/cli/validate/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/examples/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/guides/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/reference/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/topics/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "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.2/third-party-notices/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "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.2/reference/glossary/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/reference/glossary.md",
      "jsonUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/mcp/reference/glossary/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/reference/glossary.md",
      "jsonUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/workspace/reference/glossary/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/workspace/reference/glossary.md",
      "jsonUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/reference/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/reference/index.md",
      "symbolIndexUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/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.2/mcp/tools/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372"
      }
    },
    {
      "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.2/mcp/tools/tmux_capabilities/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 249
      }
    },
    {
      "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.2/mcp/tools/tmux_capture/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 239
      }
    },
    {
      "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.2/mcp/tools/tmux_close/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 247
      }
    },
    {
      "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.2/mcp/tools/tmux_create/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 245
      }
    },
    {
      "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.2/mcp/tools/tmux_run/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 237
      }
    },
    {
      "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.2/mcp/tools/tmux_send/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 243
      }
    },
    {
      "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.2/mcp/tools/tmux_snapshot/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "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. Uses control events/process descriptors; no polling. 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.2/mcp/tools/tmux_wait/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "file": "gems/libtmux-mcp/lib/libtmux/mcp/catalog.rb",
        "line": 241
      }
    },
    {
      "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.2/mcp/prompts/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/prompts.md",
      "headings": [],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372"
      }
    },
    {
      "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.2/mcp/resources/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/resources.md",
      "headings": [
        {
          "id": "resources-resource-templates",
          "level": 2,
          "text": "Resource templates3 objects"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-ruby",
        "revision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372"
      }
    },
    {
      "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.2/mcp/resources/templates/tmux_metadata/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372"
      }
    },
    {
      "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.2/mcp/resources/templates/tmux_metadata_page/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372"
      }
    },
    {
      "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.2/mcp/resources/templates/tmux_screen/",
      "markdownUrl": "https://libtmux.org/en/ruby/v0.1.0.alpha.2/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": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372",
        "extractedRevision": "dcc9f8b5a6970144a9e7d80cd5f381d8f6198372"
      }
    }
  ]
}
