{
  "name": "libtmux for C#",
  "url": "https://libtmux.org/en/csharp/latest/",
  "description": "Guides, examples and API reference for LibTmux.",
  "sourceRepository": "https://github.com/libtmux/libtmux-dotnet",
  "agentEntrypoints": {
    "manifest": "/en/csharp/latest/docs.json",
    "llms": "/en/csharp/latest/llms.txt",
    "llmsFull": "/en/csharp/latest/llms-full.txt",
    "inventory": "/en/objects.inv"
  },
  "ports": [
    {
      "slug": "csharp",
      "name": "C#",
      "language": "C#",
      "referenceKind": "model",
      "package": "LibTmux",
      "reference": "/en/csharp/latest/reference/",
      "products": [
        {
          "slug": "workspace",
          "name": "Workspace Manager",
          "availability": "available",
          "inDevelopment": true,
          "cli": "tmux-workspace load",
          "cliAvailability": "published",
          "url": "/en/csharp/latest/workspace/",
          "reference": "/en/csharp/latest/workspace/reference/",
          "source": {
            "product": "workspace",
            "package": "LibTmux.Workspace",
            "repo": "libtmux/libtmux-dotnet",
            "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
            "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
            "version": "0.0.0-alpha.20"
          }
        },
        {
          "slug": "mcp",
          "name": "MCP",
          "availability": "available",
          "inDevelopment": true,
          "url": "/en/csharp/latest/mcp/",
          "reference": "/en/csharp/latest/mcp/reference/",
          "protocol": "/en/csharp/latest/mcp/tools.json",
          "source": {
            "product": "mcp",
            "package": "LibTmux.Mcp",
            "repo": "libtmux/libtmux-dotnet",
            "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
            "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
            "version": "0.0.0-alpha.20"
          }
        }
      ],
      "extracted": {
        "symbols": 1486,
        "extractor": "@libtmux/api-model@0.0.1",
        "inventory": "/en/csharp/latest/reference/objects.inv"
      },
      "documentation": [
        {
          "id": "core",
          "name": "Core library",
          "kind": "core",
          "availability": "available",
          "url": "/en/csharp/latest/"
        },
        {
          "id": "workspace",
          "name": "Workspace Manager",
          "kind": "product",
          "availability": "available",
          "url": "/en/csharp/latest/workspace/"
        },
        {
          "id": "mcp",
          "name": "MCP",
          "kind": "product",
          "availability": "available",
          "url": "/en/csharp/latest/mcp/"
        }
      ]
    }
  ],
  "pages": [
    {
      "title": "Concepts",
      "description": "tmux objects, command transports, queries, and workspaces.",
      "section": "Concepts",
      "url": "https://libtmux.org/en/csharp/latest/concepts/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/concepts/index.md",
      "headings": []
    },
    {
      "title": "Filtering and queries",
      "description": "How you get from every session on the server to the one pane you mean, and what happens when zero or several match.",
      "section": "Concepts",
      "url": "https://libtmux.org/en/csharp/latest/concepts/queries/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/concepts/queries.md",
      "headings": [
        {
          "id": "typed-and-local-filters",
          "level": 2,
          "text": "Typed and local filters"
        },
        {
          "id": "result-counts",
          "level": 2,
          "text": "Result counts"
        }
      ]
    },
    {
      "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/csharp/latest/concepts/server-session-window-pane/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/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": "Control mode vs one-shot",
      "description": "Choose subprocesses, command batches, or persistent connections to send commands and receive events.",
      "section": "Concepts",
      "url": "https://libtmux.org/en/csharp/latest/concepts/transports/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/concepts/transports.md",
      "headings": [
        {
          "id": "available-transports",
          "level": 2,
          "text": "Available transports"
        },
        {
          "id": "notifications-and-commands-are-separable",
          "level": 2,
          "text": "Notifications and commands are separable"
        },
        {
          "id": "a-control-client-is-a-real-client",
          "level": 2,
          "text": "A control client is a real client"
        },
        {
          "id": "why-fold-several-commands-into-one-invocation",
          "level": 2,
          "text": "Why fold several commands into one invocation"
        },
        {
          "id": "what-this-costs-in-practice",
          "level": 2,
          "text": "What this costs in practice"
        },
        {
          "id": "sending-a-command",
          "level": 2,
          "text": "Sending a command"
        }
      ]
    },
    {
      "title": "Workspaces",
      "description": "Build pane layouts with the object API or a workspace configuration file.",
      "section": "Concepts",
      "url": "https://libtmux.org/en/csharp/latest/concepts/workspaces/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/concepts/workspaces.md",
      "headings": [
        {
          "id": "building-one-imperatively",
          "level": 2,
          "text": "Building one imperatively"
        },
        {
          "id": "building-one-declaratively",
          "level": 2,
          "text": "Building one declaratively"
        },
        {
          "id": "cleaning-up",
          "level": 2,
          "text": "Cleaning up"
        }
      ]
    },
    {
      "title": "Examples",
      "description": "Programs for sending input, capturing output, and building workspaces.",
      "section": "Examples",
      "url": "https://libtmux.org/en/csharp/latest/examples/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/examples/index.md",
      "headings": [
        {
          "id": "source-and-verification",
          "level": 2,
          "text": "Source and verification"
        }
      ]
    },
    {
      "title": "Attach and send keys",
      "description": "Get a session handle, send a command to a pane, and capture output.",
      "section": "Examples",
      "url": "https://libtmux.org/en/csharp/latest/examples/attach-and-send-keys/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/examples/attach-and-send-keys.md",
      "headings": [
        {
          "id": "finding-an-existing-session-instead",
          "level": 2,
          "text": "Finding an existing session instead"
        },
        {
          "id": "where-this-comes-from",
          "level": 2,
          "text": "Where this comes from"
        },
        {
          "id": "source-inclusion",
          "level": 3,
          "text": "Source inclusion"
        }
      ]
    },
    {
      "title": "Guides",
      "description": "Task-oriented walkthroughs that sit between the concepts and each port's own API reference.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/guides/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/guides/index.md",
      "headings": []
    },
    {
      "title": "Capture pane output",
      "description": "Run a complete program that captures a pane and waits for a complete output line.",
      "section": "Examples",
      "url": "https://libtmux.org/en/csharp/latest/examples/capture-pane-output/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/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 C#.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/guides/attaching-to-tmux/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/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": "Capturing output",
      "description": "Read pane output with an explicit completion condition.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/guides/capturing-output/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/guides/capturing-output.md",
      "headings": [
        {
          "id": "run-the-complete-program",
          "level": 2,
          "text": "Run the complete program"
        },
        {
          "id": "visible-pane-vs-scrollback",
          "level": 2,
          "text": "Visible pane vs. scrollback"
        },
        {
          "id": "wait-for-the-expected-text",
          "level": 2,
          "text": "Wait for the expected text"
        },
        {
          "id": "wait-for-a-completion-signal",
          "level": 2,
          "text": "Wait for a completion signal"
        }
      ]
    },
    {
      "title": "Getting started",
      "description": "Run a complete program with this language library.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/guides/getting-started/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/guides/getting-started.md",
      "headings": [
        {
          "id": "run-the-smallest-thing-that-proves-it-works",
          "level": 2,
          "text": "Run the smallest thing that proves it works"
        },
        {
          "id": "what-just-happened",
          "level": 2,
          "text": "What just happened"
        },
        {
          "id": "connect-to-an-existing-server",
          "level": 2,
          "text": "Connect to an existing server"
        },
        {
          "id": "where-to-go-next",
          "level": 2,
          "text": "Where to go next"
        }
      ]
    },
    {
      "title": "Querying and filtering",
      "description": "Choose a target and handle missing or ambiguous results.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/guides/querying-and-filtering/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/guides/querying-and-filtering.md",
      "headings": [
        {
          "id": "require-exactly-one-match",
          "level": 2,
          "text": "Require exactly one match"
        },
        {
          "id": "declarative-filters",
          "level": 2,
          "text": "Declarative filters"
        },
        {
          "id": "case-insensitive-matching",
          "level": 2,
          "text": "Case-insensitive matching"
        },
        {
          "id": "push-the-filter-into-tmux-or-read-once-and-filter-locally",
          "level": 2,
          "text": "Push the filter into tmux, or read once and filter locally"
        }
      ]
    },
    {
      "title": "Sending keys",
      "description": "Send text and named keys, then wait for the result.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/guides/sending-keys/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/guides/sending-keys.md",
      "headings": [
        {
          "id": "run-the-complete-program",
          "level": 2,
          "text": "Run the complete program"
        },
        {
          "id": "literal-text-key-names-and-whether-enter-follows",
          "level": 2,
          "text": "Literal text, key names, and whether Enter follows"
        },
        {
          "id": "the-race-you-cant-see-from-the-call-site",
          "level": 2,
          "text": "The race you can’t see from the call site"
        },
        {
          "id": "where-to-go-next",
          "level": 2,
          "text": "Where to go next"
        }
      ]
    },
    {
      "title": "Testing with libtmux",
      "description": "Use an isolated server and check cleanup failures.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/guides/testing-with-libtmux/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/guides/testing-with-libtmux.md",
      "headings": [
        {
          "id": "run-a-complete-example",
          "level": 2,
          "text": "Run a complete example"
        },
        {
          "id": "keep-server-ownership-explicit",
          "level": 2,
          "text": "Keep server ownership explicit"
        },
        {
          "id": "wait-for-the-state-you-assert",
          "level": 2,
          "text": "Wait for the state you assert"
        }
      ]
    },
    {
      "title": "tmux MCP for C#",
      "description": "Run LibTmux.Mcp as a .NET tool with bounded results and a selectable tool catalog.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/csharp/latest/mcp/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/index.md",
      "headings": [
        {
          "id": "toolsets",
          "level": 2,
          "text": "Toolsets"
        }
      ]
    },
    {
      "title": "C# MCP examples",
      "description": "Run complete C# clients that discover sessions and execute a command in an owned tmux server.",
      "section": "Examples",
      "url": "https://libtmux.org/en/csharp/latest/mcp/examples/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/examples.md",
      "headings": [
        {
          "id": "list-sessions",
          "level": 2,
          "text": "List sessions"
        },
        {
          "id": "run-a-command",
          "level": 2,
          "text": "Run a command"
        }
      ]
    },
    {
      "title": "List sessions through MCP",
      "description": "Start an inspection client, verify its tool selection, and read structured session metadata.",
      "section": "Examples",
      "url": "https://libtmux.org/en/csharp/latest/mcp/examples/inspect-sessions/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/examples/inspect-sessions.md",
      "headings": [
        {
          "id": "run-the-example",
          "level": 2,
          "text": "Run the example"
        },
        {
          "id": "client-program",
          "level": 3,
          "text": "Client program"
        },
        {
          "id": "read-the-result",
          "level": 2,
          "text": "Read the result"
        },
        {
          "id": "shutdown",
          "level": 2,
          "text": "Shutdown"
        }
      ]
    },
    {
      "title": "Run a command through MCP",
      "description": "Discover a pane, run a bounded shell command, and check its exit status and captured output.",
      "section": "Examples",
      "url": "https://libtmux.org/en/csharp/latest/mcp/examples/run-command/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/examples/run-command.md",
      "headings": [
        {
          "id": "run-the-example",
          "level": 2,
          "text": "Run the example"
        },
        {
          "id": "client-program",
          "level": 3,
          "text": "Client program"
        },
        {
          "id": "completion-and-output",
          "level": 2,
          "text": "Completion and output"
        },
        {
          "id": "failures-and-cleanup",
          "level": 2,
          "text": "Failures and cleanup"
        }
      ]
    },
    {
      "title": "C# MCP guides",
      "description": "Install the MCP executable, choose its tmux server, and verify the client's connection.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/mcp/guides/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/guides.md",
      "headings": [
        {
          "id": "install-the-tool",
          "level": 2,
          "text": "Install the tool"
        },
        {
          "id": "connect-a-client",
          "level": 2,
          "text": "Connect a client"
        },
        {
          "id": "diagnose-startup",
          "level": 2,
          "text": "Diagnose startup"
        }
      ]
    },
    {
      "title": "Connect an MCP client",
      "description": "Install the .NET tool, select its tmux endpoint, and verify discovery and ownership.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/mcp/guides/connect-client/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/guides/connect-client.md",
      "headings": [
        {
          "id": "install-the-tool",
          "level": 2,
          "text": "Install the tool"
        },
        {
          "id": "connect-to-an-existing-server",
          "level": 2,
          "text": "Connect to an existing server"
        },
        {
          "id": "use-the-dedicated-server",
          "level": 2,
          "text": "Use the dedicated server"
        },
        {
          "id": "diagnose-startup",
          "level": 2,
          "text": "Diagnose startup"
        }
      ]
    },
    {
      "title": "C# MCP API",
      "description": "Find the C# server composition API and current MCP protocol catalog.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/csharp/latest/mcp/reference/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/reference.md",
      "headings": [
        {
          "id": "source-api",
          "level": 2,
          "text": "Source API"
        },
        {
          "id": "protocol-api",
          "level": 2,
          "text": "Protocol API"
        }
      ]
    },
    {
      "title": "C# MCP topics",
      "description": "Choose callable tools, interpret bounded results, and understand pane observation and cancellation.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/mcp/topics/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/topics.md",
      "headings": [
        {
          "id": "select-tools",
          "level": 2,
          "text": "Select tools"
        },
        {
          "id": "observe-a-command",
          "level": 2,
          "text": "Observe a command"
        },
        {
          "id": "resources-and-prompts",
          "level": 2,
          "text": "Resources and prompts"
        }
      ]
    },
    {
      "title": "Tool selection",
      "description": "Choose the C# MCP server's callable operations and interpret its startup capability report.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/mcp/topics/tool-selection/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/topics/tool-selection.md",
      "headings": [
        {
          "id": "choose-groups",
          "level": 2,
          "text": "Choose groups"
        },
        {
          "id": "add-and-exclude-exact-names",
          "level": 2,
          "text": "Add and exclude exact names"
        },
        {
          "id": "read-several-facts",
          "level": 2,
          "text": "Read several facts"
        },
        {
          "id": "inspect-the-connection",
          "level": 2,
          "text": "Inspect the connection"
        },
        {
          "id": "execution-authority",
          "level": 2,
          "text": "Execution authority"
        }
      ]
    },
    {
      "title": "Waits and captured output",
      "description": "Choose command completion or text observation, handle bounded captures, and cancel the right operation.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/mcp/topics/waits-and-output/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/topics/waits-and-output.md",
      "headings": [
        {
          "id": "command-results",
          "level": 2,
          "text": "Command results"
        },
        {
          "id": "wait-for-text",
          "level": 2,
          "text": "Wait for text"
        },
        {
          "id": "follow-a-pane",
          "level": 2,
          "text": "Follow a pane"
        },
        {
          "id": "response-limits",
          "level": 2,
          "text": "Response limits"
        },
        {
          "id": "cancellation",
          "level": 2,
          "text": "Cancellation"
        }
      ]
    },
    {
      "title": "C# workspace manager",
      "description": "Describe a tmux session in a file, then load, inspect and capture it.",
      "section": "Documentation",
      "url": "https://libtmux.org/en/csharp/latest/workspace/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/index.md",
      "headings": [
        {
          "id": "load-a-workspace-from-the-terminal",
          "level": 2,
          "text": "Load a workspace from the terminal"
        },
        {
          "id": "automate-and-inspect",
          "level": 2,
          "text": "Automate and inspect"
        },
        {
          "id": "build-from-application-code",
          "level": 2,
          "text": "Build from application code"
        }
      ]
    },
    {
      "title": "tmux-workspace CLI manual",
      "description": "Use `tmux-workspace` to load, inspect and save workspace files.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/index.md",
      "headings": [
        {
          "id": "sessions",
          "level": 2,
          "text": "Sessions"
        },
        {
          "id": "workspace-files",
          "level": 2,
          "text": "Workspace files"
        },
        {
          "id": "diagnostics-and-completion",
          "level": 2,
          "text": "Diagnostics and completion"
        },
        {
          "id": "command-options",
          "level": 2,
          "text": "Command options"
        },
        {
          "id": "machine-output",
          "level": 2,
          "text": "Machine output"
        }
      ]
    },
    {
      "title": "Shell completion",
      "description": "Generate completion for the installed workspace command.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/completion/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/completion.md",
      "headings": [
        {
          "id": "enable-bash-completion",
          "level": 2,
          "text": "Enable Bash completion"
        },
        {
          "id": "other-shells",
          "level": 2,
          "text": "Other shells"
        }
      ]
    },
    {
      "title": "Convert workspace files",
      "description": "Convert a complete workspace document between YAML and JSON.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/convert/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/convert.md",
      "headings": [
        {
          "id": "inspect-the-result",
          "level": 2,
          "text": "Inspect the result"
        },
        {
          "id": "save-a-file",
          "level": 2,
          "text": "Save a file"
        }
      ]
    },
    {
      "title": "Inspect runtime diagnostics",
      "description": "Collect the workspace CLI runtime, configuration and tmux diagnostics..",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/debug-info/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/debug-info.md",
      "headings": [
        {
          "id": "collect-a-report",
          "level": 2,
          "text": "Collect a report"
        }
      ]
    },
    {
      "title": "Edit a workspace",
      "description": "Resolve a workspace file or saved name and open it in an editor.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/edit/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/edit.md",
      "headings": [
        {
          "id": "open-the-file",
          "level": 2,
          "text": "Open the file"
        }
      ]
    },
    {
      "title": "Capture a workspace",
      "description": "Capture a running tmux session as a starting point for a workspace file.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/freeze/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/freeze.md",
      "headings": [
        {
          "id": "inspect-a-session",
          "level": 2,
          "text": "Inspect a session"
        },
        {
          "id": "save-the-captured-document",
          "level": 2,
          "text": "Save the captured document"
        }
      ]
    },
    {
      "title": "Import a workspace",
      "description": "Choose a source format and translate it into a workspace document.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/import/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/import.md",
      "headings": []
    },
    {
      "title": "Import from Teamocil",
      "description": "Translate Teamocil windows and pane commands into a workspace document.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/import-teamocil/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/import-teamocil.md",
      "headings": [
        {
          "id": "preview-the-translation",
          "level": 2,
          "text": "Preview the translation"
        },
        {
          "id": "save-the-workspace",
          "level": 2,
          "text": "Save the workspace"
        }
      ]
    },
    {
      "title": "Import from tmuxinator",
      "description": "Translate a tmuxinator project into a workspace document.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/import-tmuxinator/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/import-tmuxinator.md",
      "headings": [
        {
          "id": "preview-the-translation",
          "level": 2,
          "text": "Preview the translation"
        },
        {
          "id": "save-the-workspace",
          "level": 2,
          "text": "Save the workspace"
        }
      ]
    },
    {
      "title": "Load a workspace",
      "description": "Create or reuse a session from a workspace file, with explicit attachment and output choices.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/load/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/load.md",
      "headings": [
        {
          "id": "load-without-attaching",
          "level": 2,
          "text": "Load without attaching"
        },
        {
          "id": "existing-sessions-and-append",
          "level": 2,
          "text": "Existing sessions and append"
        },
        {
          "id": "attachment-and-output",
          "level": 2,
          "text": "Attachment and output"
        }
      ]
    },
    {
      "title": "List saved workspaces",
      "description": "List the workspace files found in project and global configuration locations.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/ls/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/ls.md",
      "headings": [
        {
          "id": "list-records",
          "level": 2,
          "text": "List records"
        }
      ]
    },
    {
      "title": "Search workspaces",
      "description": "Search the fields of discovered workspace documents.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/search/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/search.md",
      "headings": [
        {
          "id": "find-a-session-name",
          "level": 2,
          "text": "Find a session name"
        }
      ]
    },
    {
      "title": "Evaluate in a workspace",
      "description": "Use the optional Python runtime to inspect a workspace through the native command.",
      "section": "CLI reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/cli/shell/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/cli/shell.md",
      "headings": [
        {
          "id": "runtime-requirement",
          "level": 2,
          "text": "Runtime requirement"
        },
        {
          "id": "evaluate-with-a-selected-server",
          "level": 2,
          "text": "Evaluate with a selected server"
        }
      ]
    },
    {
      "title": "Workspace configuration",
      "description": "Define the session, windows, panes and commands loaded by the workspace CLI.",
      "section": "Configuration",
      "url": "https://libtmux.org/en/csharp/latest/workspace/configuration/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/configuration/index.md",
      "headings": [
        {
          "id": "choose-the-fields-for-your-task",
          "level": 2,
          "text": "Choose the fields for your task"
        },
        {
          "id": "cli-and-application-code",
          "level": 2,
          "text": "CLI and application code"
        }
      ]
    },
    {
      "title": "Workspace commands",
      "description": "Order pane setup and command delivery, Enter handling and delays.",
      "section": "Configuration",
      "url": "https://libtmux.org/en/csharp/latest/workspace/configuration/commands/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/configuration/commands.md",
      "headings": [
        {
          "id": "enter-and-timing",
          "level": 2,
          "text": "Enter and timing"
        },
        {
          "id": "history-and-readiness",
          "level": 2,
          "text": "History and readiness"
        }
      ]
    },
    {
      "title": "Files and directories",
      "description": "Resolve saved workspace files and the working directories used by panes.",
      "section": "Configuration",
      "url": "https://libtmux.org/en/csharp/latest/workspace/configuration/directories/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/configuration/directories.md",
      "headings": [
        {
          "id": "set-a-starting-directory",
          "level": 2,
          "text": "Set a starting directory"
        },
        {
          "id": "verify-the-running-pane",
          "level": 2,
          "text": "Verify the running pane"
        }
      ]
    },
    {
      "title": "Workspace environment",
      "description": "Configure the loader process and the variables available to pane commands.",
      "section": "Configuration",
      "url": "https://libtmux.org/en/csharp/latest/workspace/configuration/environment/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/configuration/environment.md",
      "headings": [
        {
          "id": "variable-expressions",
          "level": 2,
          "text": "Variable expressions"
        },
        {
          "id": "loader-settings",
          "level": 2,
          "text": "Loader settings"
        }
      ]
    },
    {
      "title": "Bootstrap scripts and extensions",
      "description": "Run a checked bootstrap process before workspace commands.",
      "section": "Configuration",
      "url": "https://libtmux.org/en/csharp/latest/workspace/configuration/hooks/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/configuration/hooks.md",
      "headings": [
        {
          "id": "paths-and-output",
          "level": 2,
          "text": "Paths and output"
        },
        {
          "id": "prompt-readiness",
          "level": 2,
          "text": "Prompt readiness"
        },
        {
          "id": "optional-extensions",
          "level": 2,
          "text": "Optional extensions"
        }
      ]
    },
    {
      "title": "Window layouts",
      "description": "Arrange panes with tmux layout names or a saved layout.",
      "section": "Configuration",
      "url": "https://libtmux.org/en/csharp/latest/workspace/configuration/layouts/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/configuration/layouts.md",
      "headings": [
        {
          "id": "saved-layouts-and-terminal-size",
          "level": 2,
          "text": "Saved layouts and terminal size"
        }
      ]
    },
    {
      "title": "Pane configuration",
      "description": "Choose pane commands, launch settings and focus.",
      "section": "Configuration",
      "url": "https://libtmux.org/en/csharp/latest/workspace/configuration/panes/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/configuration/panes.md",
      "headings": [
        {
          "id": "overrides",
          "level": 2,
          "text": "Overrides"
        }
      ]
    },
    {
      "title": "Session configuration",
      "description": "Name a workspace and apply session options and environment.",
      "section": "Configuration",
      "url": "https://libtmux.org/en/csharp/latest/workspace/configuration/session/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/configuration/session.md",
      "headings": [
        {
          "id": "session-fields",
          "level": 2,
          "text": "Session fields"
        }
      ]
    },
    {
      "title": "Window configuration",
      "description": "Set window names, indexes, layouts, options and focus.",
      "section": "Configuration",
      "url": "https://libtmux.org/en/csharp/latest/workspace/configuration/windows/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/configuration/windows.md",
      "headings": [
        {
          "id": "launch-settings",
          "level": 2,
          "text": "Launch settings"
        }
      ]
    },
    {
      "title": "Examples",
      "description": "Workspace configurations and complete command walkthroughs.",
      "section": "Examples",
      "url": "https://libtmux.org/en/csharp/latest/workspace/examples/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/examples/index.md",
      "headings": []
    },
    {
      "title": "Workspace examples",
      "description": "Start from complete configurations for pane layout, commands and environment.",
      "section": "Examples",
      "url": "https://libtmux.org/en/csharp/latest/workspace/examples/gallery/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/examples/gallery.md",
      "headings": [
        {
          "id": "two-blank-panes",
          "level": 2,
          "text": "Two blank panes"
        },
        {
          "id": "setup-before-pane-commands",
          "level": 2,
          "text": "Setup before pane commands"
        },
        {
          "id": "more-complete-examples",
          "level": 2,
          "text": "More complete examples"
        }
      ]
    },
    {
      "title": "Guides",
      "description": "Install the workspace command, find configurations and automate tmux sessions.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/workspace/guides/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/guides/index.md",
      "headings": []
    },
    {
      "title": "Automate workspace operations",
      "description": "Run detached commands with explicit inputs and machine-readable results.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/workspace/guides/automation/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/guides/automation.md",
      "headings": [
        {
          "id": "follow-progress",
          "level": 2,
          "text": "Follow progress"
        },
        {
          "id": "make-retries-deliberate",
          "level": 2,
          "text": "Make retries deliberate"
        }
      ]
    },
    {
      "title": "Find saved workspaces",
      "description": "Resolve explicit files, project directories and saved workspace names.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/workspace/guides/discovery/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/guides/discovery.md",
      "headings": [
        {
          "id": "list-available-files",
          "level": 2,
          "text": "List available files"
        },
        {
          "id": "search-by-content",
          "level": 2,
          "text": "Search by content"
        }
      ]
    },
    {
      "title": "Export and reload a session",
      "description": "Capture a running session, inspect the document and load a second copy.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/workspace/guides/export-session/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/guides/export-session.md",
      "headings": [
        {
          "id": "load-a-second-copy",
          "level": 2,
          "text": "Load a second copy"
        }
      ]
    },
    {
      "title": "Inspect a workspace through MCP",
      "description": "Connect the development C# MCP server to a session loaded by its native workspace CLI.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/workspace/guides/inspect-with-mcp/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/guides/inspect-with-mcp.md",
      "headings": [
        {
          "id": "build-the-mcp-server",
          "level": 2,
          "text": "Build the MCP server"
        },
        {
          "id": "select-the-same-socket",
          "level": 2,
          "text": "Select the same socket"
        },
        {
          "id": "inspect-and-wait",
          "level": 2,
          "text": "Inspect and wait"
        },
        {
          "id": "close-the-connection",
          "level": 2,
          "text": "Close the connection"
        }
      ]
    },
    {
      "title": "Install and load a workspace",
      "description": "Build the workspace command and load a session on a private tmux socket.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/workspace/guides/installation/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/guides/installation.md",
      "headings": [
        {
          "id": "build-the-command",
          "level": 2,
          "text": "Build the command"
        },
        {
          "id": "create-the-input",
          "level": 2,
          "text": "Create the input"
        },
        {
          "id": "load-and-inspect",
          "level": 2,
          "text": "Load and inspect"
        },
        {
          "id": "capture-and-clean-up",
          "level": 2,
          "text": "Capture and clean up"
        },
        {
          "id": "continue",
          "level": 2,
          "text": "Continue"
        }
      ]
    },
    {
      "title": "Troubleshoot a workspace",
      "description": "Find the failed stage before retrying a workspace operation.",
      "section": "Guides",
      "url": "https://libtmux.org/en/csharp/latest/workspace/guides/troubleshooting/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/guides/troubleshooting.md",
      "headings": [
        {
          "id": "confirm-the-command-and-input",
          "level": 2,
          "text": "Confirm the command and input"
        },
        {
          "id": "common-failures",
          "level": 2,
          "text": "Common failures"
        },
        {
          "id": "record-a-load",
          "level": 2,
          "text": "Record a load"
        }
      ]
    },
    {
      "title": "C# workspace internals",
      "description": "Architecture and development interfaces of the C# workspace builder.",
      "section": "Internals",
      "url": "https://libtmux.org/en/csharp/latest/workspace/internals/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/internals/index.md",
      "headings": [
        {
          "id": "builder-pipeline",
          "level": 2,
          "text": "Builder pipeline"
        },
        {
          "id": "read-the-implementation",
          "level": 2,
          "text": "Read the implementation"
        },
        {
          "id": "implementation-scope",
          "level": 2,
          "text": "Implementation scope"
        },
        {
          "id": "package-and-runtime",
          "level": 2,
          "text": "Package and runtime"
        }
      ]
    },
    {
      "title": "Workspace reference generation",
      "description": "Generate command references from the parser and verify task examples against the CLI.",
      "section": "Internals",
      "url": "https://libtmux.org/en/csharp/latest/workspace/internals/documentation/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/internals/documentation.md",
      "headings": [
        {
          "id": "command-metadata",
          "level": 2,
          "text": "Command metadata"
        },
        {
          "id": "site-integration",
          "level": 2,
          "text": "Site integration"
        }
      ]
    },
    {
      "title": "C# workspace builder examples",
      "description": "Internal examples for building and inspecting workspaces through the C# API.",
      "section": "Internals",
      "url": "https://libtmux.org/en/csharp/latest/workspace/internals/examples/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/internals/examples.md",
      "headings": [
        {
          "id": "create-the-project",
          "level": 2,
          "text": "Create the project"
        },
        {
          "id": "build-and-inspect",
          "level": 2,
          "text": "Build and inspect"
        }
      ]
    },
    {
      "title": "Use the C# workspace builder",
      "description": "Parse a workspace, build it on an owned server, and handle partial failures.",
      "section": "Internals",
      "url": "https://libtmux.org/en/csharp/latest/workspace/internals/guides/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/internals/guides.md",
      "headings": [
        {
          "id": "create-an-isolated-workspace",
          "level": 2,
          "text": "Create an isolated workspace"
        },
        {
          "id": "read-a-file-and-handle-errors",
          "level": 2,
          "text": "Read a file and handle errors"
        }
      ]
    },
    {
      "title": "C# workspace builder behavior",
      "description": "Internal configuration, application, and failure contracts of the C# workspace builder.",
      "section": "Internals",
      "url": "https://libtmux.org/en/csharp/latest/workspace/internals/topics/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/internals/topics.md",
      "headings": [
        {
          "id": "supported-fields",
          "level": 2,
          "text": "Supported fields"
        },
        {
          "id": "pane-readiness",
          "level": 2,
          "text": "Pane readiness"
        },
        {
          "id": "construction-and-failures",
          "level": 2,
          "text": "Construction and failures"
        }
      ]
    },
    {
      "title": "C# workspace builder API",
      "description": "Internal reference for the C# workspace builder and configuration APIs.",
      "section": "Internals",
      "url": "https://libtmux.org/en/csharp/latest/workspace/reference/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/reference.md",
      "headings": [
        {
          "id": "configuration",
          "level": 2,
          "text": "Configuration"
        },
        {
          "id": "builder-options",
          "level": 2,
          "text": "Builder options"
        },
        {
          "id": "results-and-failures",
          "level": 2,
          "text": "Results and failures"
        }
      ]
    },
    {
      "title": "Runtime and configuration support",
      "description": "Runtime requirements and configuration boundaries for the C# workspace command.",
      "section": "Reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/reference/compatibility/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/reference/compatibility.md",
      "headings": [
        {
          "id": "runtime-and-execution",
          "level": 2,
          "text": "Runtime and execution"
        },
        {
          "id": "configuration-and-failure-handling",
          "level": 2,
          "text": "Configuration and failure handling"
        }
      ]
    },
    {
      "title": "Exit codes and errors",
      "description": "Use process status and structured error codes to handle workspace failures.",
      "section": "Reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/reference/exit-codes/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/reference/exit-codes.md",
      "headings": [
        {
          "id": "machine-errors",
          "level": 2,
          "text": "Machine errors"
        }
      ]
    },
    {
      "title": "Output formats",
      "description": "Read JSON results, NDJSON events and diagnostics from the workspace command.",
      "section": "Reference",
      "url": "https://libtmux.org/en/csharp/latest/workspace/reference/output/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/workspace/reference/output.md",
      "headings": [
        {
          "id": "choose-a-stream",
          "level": 2,
          "text": "Choose a stream"
        },
        {
          "id": "partial-work-and-interrupted-streams",
          "level": 2,
          "text": "Partial work and interrupted streams"
        },
        {
          "id": "child-output-and-logging",
          "level": 2,
          "text": "Child output and logging"
        },
        {
          "id": "human-output",
          "level": 2,
          "text": "Human output"
        }
      ]
    },
    {
      "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/csharp/latest/third-party-notices/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/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": "Topics",
      "description": "Object traversal, cleanup, pane I/O, configuration, and failure handling.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/index.md",
      "headings": []
    },
    {
      "title": "Architecture",
      "description": "Locate operations, distinguish snapshots from live commands, and find their implementation.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/architecture/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/architecture.md",
      "headings": [
        {
          "id": "calling-operations",
          "level": 2,
          "text": "Calling operations"
        },
        {
          "id": "reading-tmux-fields",
          "level": 2,
          "text": "Reading tmux fields"
        },
        {
          "id": "source-layout",
          "level": 2,
          "text": "Source layout"
        }
      ]
    },
    {
      "title": "Ownership and cleanup",
      "description": "Scope-based cleanup for tmux objects, and when your program must kill them explicitly.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/context-managers/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/context-managers.md",
      "headings": [
        {
          "id": "owned-sessions-and-windows",
          "level": 2,
          "text": "Owned sessions and windows"
        },
        {
          "id": "testing-cleanup",
          "level": 2,
          "text": "Testing cleanup"
        }
      ]
    },
    {
      "title": "Environment",
      "description": "Locate tmux objects from process variables and manage the environment inherited by new panes.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/environment/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/environment.md",
      "headings": [
        {
          "id": "locating-yourself-from-inside-a-pane",
          "level": 2,
          "text": "Locating yourself from inside a pane"
        },
        {
          "id": "examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "tmuxs-own-environment-variable-store",
          "level": 2,
          "text": "tmux's own environment variable store"
        },
        {
          "id": "examples-1",
          "level": 3,
          "text": "Examples"
        }
      ]
    },
    {
      "title": "Errors and exceptions",
      "description": "Handle command failures, inspect delivery status, and decide when a retry is safe.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/errors-and-exceptions/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/errors-and-exceptions.md",
      "headings": [
        {
          "id": "a-failed-command-as-a-value",
          "level": 2,
          "text": "A failed command, as a value"
        },
        {
          "id": "is-it-safe-to-retry",
          "level": 2,
          "text": "Is it safe to retry?"
        }
      ]
    },
    {
      "title": "Format-token fields",
      "description": "The typed fields every object exposes, mirroring tmux's own format tokens, and why a field is sometimes absent.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/format-tokens/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/format-tokens.md",
      "headings": [
        {
          "id": "handling-an-absent-field",
          "level": 2,
          "text": "Handling an absent field"
        },
        {
          "id": "field-availability",
          "level": 2,
          "text": "Field availability"
        },
        {
          "id": "fields-promoted-from-the-active-child",
          "level": 2,
          "text": "Fields promoted from the active child"
        }
      ]
    },
    {
      "title": "Options and hooks",
      "description": "Read and update tmux options, and register commands for tmux events.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/options-and-hooks/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/options-and-hooks.md",
      "headings": [
        {
          "id": "reading-and-writing-options",
          "level": 2,
          "text": "Reading and writing options"
        },
        {
          "id": "examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "hooks",
          "level": 2,
          "text": "Hooks"
        },
        {
          "id": "examples-1",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "supported-hook-scopes",
          "level": 2,
          "text": "Supported hook scopes"
        },
        {
          "id": "tmux-version-compatibility",
          "level": 2,
          "text": "tmux version compatibility"
        }
      ]
    },
    {
      "title": "Pane interaction",
      "description": "Input defaults, screen capture, and waiting for a command to finish.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/pane-interaction/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/pane-interaction.md",
      "headings": [
        {
          "id": "typing-into-a-pane",
          "level": 2,
          "text": "Typing into a pane"
        },
        {
          "id": "examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "reading-a-pane-back",
          "level": 2,
          "text": "Reading a pane back"
        },
        {
          "id": "waiting-for-something-to-finish",
          "level": 2,
          "text": "Waiting for something to finish"
        }
      ]
    },
    {
      "title": "Socket and servers",
      "description": "Select a server socket, check liveness, and detect a replacement daemon.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/socket-and-servers/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/socket-and-servers.md",
      "headings": [
        {
          "id": "naming-a-server",
          "level": 2,
          "text": "Naming a server"
        },
        {
          "id": "is-the-server-actually-there",
          "level": 2,
          "text": "Is the server actually there?"
        },
        {
          "id": "killing-a-server-and-telling-two-apart",
          "level": 2,
          "text": "Killing a server, and telling two apart"
        }
      ]
    },
    {
      "title": "Traversal",
      "description": "Moving up and down the server/session/window/pane tree, and the two questions that come up once you have more than one object.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/traversal/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/traversal.md",
      "headings": [
        {
          "id": "down-the-hierarchy",
          "level": 2,
          "text": "Down the hierarchy"
        },
        {
          "id": "all-panes-in-a-session",
          "level": 2,
          "text": "All panes in a session"
        },
        {
          "id": "up-the-hierarchy",
          "level": 2,
          "text": "Up the hierarchy"
        },
        {
          "id": "one-walk-down-and-back-up",
          "level": 2,
          "text": "One walk, down and back up"
        },
        {
          "id": "the-active-child",
          "level": 2,
          "text": "The active child"
        },
        {
          "id": "is-it-in-that-collection",
          "level": 2,
          "text": "Is it in that collection?"
        },
        {
          "id": "is-this-the-same-object",
          "level": 2,
          "text": "Is this the same object?"
        }
      ]
    },
    {
      "title": "Waiting and retrying",
      "description": "Polling a condition instead of guessing a sleep, and tmux's own wait-for signal channel as the alternative to polling.",
      "section": "Topics",
      "url": "https://libtmux.org/en/csharp/latest/topics/waiting-and-retry/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/topics/waiting-and-retry.md",
      "headings": [
        {
          "id": "polling-a-condition",
          "level": 2,
          "text": "Polling a condition"
        },
        {
          "id": "examples",
          "level": 3,
          "text": "Examples"
        },
        {
          "id": "tmuxs-own-wait-for-channel",
          "level": 2,
          "text": "tmux's own wait-for channel"
        }
      ]
    },
    {
      "title": "API reference",
      "description": "174 declarations in the C# reference index. The symbol index also includes their members.",
      "section": "API reference",
      "url": "https://libtmux.org/en/csharp/latest/reference/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/reference/index.md",
      "symbolIndexUrl": "https://libtmux.org/en/csharp/latest/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-keys",
          "level": 2,
          "text": "Keys and bindings"
        },
        {
          "id": "section-buffers",
          "level": 2,
          "text": "Buffers"
        },
        {
          "id": "section-layout",
          "level": 2,
          "text": "Layout and geometry"
        },
        {
          "id": "section-environment",
          "level": 2,
          "text": "Environment"
        },
        {
          "id": "section-version",
          "level": 2,
          "text": "Versions"
        },
        {
          "id": "section-commands",
          "level": 2,
          "text": "Commands"
        },
        {
          "id": "section-control",
          "level": 2,
          "text": "Control mode"
        },
        {
          "id": "section-queries",
          "level": 2,
          "text": "Queries"
        },
        {
          "id": "section-queries-fields",
          "level": 2,
          "text": "Queries — Fields"
        },
        {
          "id": "section-snapshots",
          "level": 2,
          "text": "Snapshots"
        },
        {
          "id": "section-requests",
          "level": 2,
          "text": "Requests"
        },
        {
          "id": "section-requests-server",
          "level": 2,
          "text": "Requests — Server"
        },
        {
          "id": "section-requests-session",
          "level": 2,
          "text": "Requests — Session"
        },
        {
          "id": "section-requests-window",
          "level": 2,
          "text": "Requests — Window"
        },
        {
          "id": "section-requests-pane",
          "level": 2,
          "text": "Requests — Pane"
        },
        {
          "id": "section-errors",
          "level": 2,
          "text": "Errors"
        },
        {
          "id": "section-errors-server",
          "level": 2,
          "text": "Errors — Server"
        },
        {
          "id": "section-errors-session",
          "level": 2,
          "text": "Errors — Session"
        },
        {
          "id": "section-errors-window",
          "level": 2,
          "text": "Errors — Window"
        },
        {
          "id": "section-errors-pane",
          "level": 2,
          "text": "Errors — Pane"
        },
        {
          "id": "section-constants",
          "level": 2,
          "text": "Constants and enums"
        },
        {
          "id": "section-constants-server",
          "level": 2,
          "text": "Constants and enums — Server"
        },
        {
          "id": "section-constants-session",
          "level": 2,
          "text": "Constants and enums — Session"
        },
        {
          "id": "section-constants-window",
          "level": 2,
          "text": "Constants and enums — Window"
        },
        {
          "id": "section-constants-pane",
          "level": 2,
          "text": "Constants and enums — Pane"
        },
        {
          "id": "section-testing",
          "level": 2,
          "text": "Testing utilities"
        },
        {
          "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/csharp/latest/reference/libtmux-server/"
        },
        {
          "id": "LibTmux.ServerGeneration",
          "name": "ServerGeneration",
          "kind": "struct",
          "qualifiedName": "LibTmux.ServerGeneration",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-servergeneration/"
        },
        {
          "id": "LibTmux.PsmuxServer",
          "name": "PsmuxServer",
          "kind": "class",
          "qualifiedName": "LibTmux.PsmuxServer",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-psmuxserver/"
        },
        {
          "id": "LibTmux.OwnedServerScope",
          "name": "OwnedServerScope",
          "kind": "class",
          "qualifiedName": "LibTmux.OwnedServerScope",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-ownedserverscope/"
        },
        {
          "id": "LibTmux.Session",
          "name": "Session",
          "kind": "class",
          "qualifiedName": "LibTmux.Session",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-session/"
        },
        {
          "id": "LibTmux.PsmuxSession",
          "name": "PsmuxSession",
          "kind": "class",
          "qualifiedName": "LibTmux.PsmuxSession",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-psmuxsession/"
        },
        {
          "id": "LibTmux.OwnedSessionScope",
          "name": "OwnedSessionScope",
          "kind": "class",
          "qualifiedName": "LibTmux.OwnedSessionScope",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-ownedsessionscope/"
        },
        {
          "id": "LibTmux.OwnedWindowScope",
          "name": "OwnedWindowScope",
          "kind": "class",
          "qualifiedName": "LibTmux.OwnedWindowScope",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-ownedwindowscope/"
        },
        {
          "id": "LibTmux.SessionId",
          "name": "SessionId",
          "kind": "struct",
          "qualifiedName": "LibTmux.SessionId",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-sessionid/"
        },
        {
          "id": "LibTmux.Window",
          "name": "Window",
          "kind": "class",
          "qualifiedName": "LibTmux.Window",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-window/"
        },
        {
          "id": "LibTmux.WindowDirection",
          "name": "WindowDirection",
          "kind": "enum",
          "qualifiedName": "LibTmux.WindowDirection",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-windowdirection/"
        },
        {
          "id": "LibTmux.PsmuxWindow",
          "name": "PsmuxWindow",
          "kind": "class",
          "qualifiedName": "LibTmux.PsmuxWindow",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-psmuxwindow/"
        },
        {
          "id": "LibTmux.WindowRotationDirection",
          "name": "WindowRotationDirection",
          "kind": "enum",
          "qualifiedName": "LibTmux.WindowRotationDirection",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-windowrotationdirection/"
        },
        {
          "id": "LibTmux.WindowId",
          "name": "WindowId",
          "kind": "struct",
          "qualifiedName": "LibTmux.WindowId",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-windowid/"
        },
        {
          "id": "LibTmux.Pane",
          "name": "Pane",
          "kind": "class",
          "qualifiedName": "LibTmux.Pane",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-pane/"
        },
        {
          "id": "LibTmux.PaneDirection",
          "name": "PaneDirection",
          "kind": "enum",
          "qualifiedName": "LibTmux.PaneDirection",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-panedirection/"
        },
        {
          "id": "LibTmux.PaneId",
          "name": "PaneId",
          "kind": "struct",
          "qualifiedName": "LibTmux.PaneId",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-paneid/"
        },
        {
          "id": "LibTmux.PsmuxPane",
          "name": "PsmuxPane",
          "kind": "class",
          "qualifiedName": "LibTmux.PsmuxPane",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-psmuxpane/"
        },
        {
          "id": "LibTmux.PaneOutputPosition",
          "name": "PaneOutputPosition",
          "kind": "class",
          "qualifiedName": "LibTmux.PaneOutputPosition",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-paneoutputposition/"
        },
        {
          "id": "LibTmux.PaneOutputSince",
          "name": "PaneOutputSince",
          "kind": "struct",
          "qualifiedName": "LibTmux.PaneOutputSince",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-paneoutputsince/"
        },
        {
          "id": "LibTmux.PaneWaitOutcome",
          "name": "PaneWaitOutcome",
          "kind": "enum",
          "qualifiedName": "LibTmux.PaneWaitOutcome",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-panewaitoutcome/"
        },
        {
          "id": "LibTmux.Client",
          "name": "Client",
          "kind": "class",
          "qualifiedName": "LibTmux.Client",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-client/"
        },
        {
          "id": "LibTmux.ClientAttachment",
          "name": "ClientAttachment",
          "kind": "struct",
          "qualifiedName": "LibTmux.ClientAttachment",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-clientattachment/"
        },
        {
          "id": "LibTmux.TmuxHookEntry",
          "name": "TmuxHookEntry",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxHookEntry",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxhookentry/"
        },
        {
          "id": "LibTmux.TmuxHook",
          "name": "TmuxHook",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxHook",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxhook/"
        },
        {
          "id": "LibTmux.TmuxHooks",
          "name": "TmuxHooks",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxHooks",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxhooks/"
        },
        {
          "id": "LibTmux.OptionScope",
          "name": "OptionScope",
          "kind": "enum",
          "qualifiedName": "LibTmux.OptionScope",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-optionscope/"
        },
        {
          "id": "LibTmux.TmuxOptionKey",
          "name": "TmuxOptionKey",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxOptionKey",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxoptionkey/"
        },
        {
          "id": "LibTmux.TmuxOptionState",
          "name": "TmuxOptionState",
          "kind": "enum",
          "qualifiedName": "LibTmux.TmuxOptionState",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxoptionstate/"
        },
        {
          "id": "LibTmux.TmuxOptionValue",
          "name": "TmuxOptionValue",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxOptionValue",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxoptionvalue/"
        },
        {
          "id": "LibTmux.TmuxOption",
          "name": "TmuxOption",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxOption",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxoption/"
        },
        {
          "id": "LibTmux.TmuxKeys",
          "name": "TmuxKeys",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxKeys",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxkeys/"
        },
        {
          "id": "LibTmux.TmuxBuffers",
          "name": "TmuxBuffers",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxBuffers",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxbuffers/"
        },
        {
          "id": "LibTmux.TmuxBuffer",
          "name": "TmuxBuffer",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxBuffer",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxbuffer/"
        },
        {
          "id": "LibTmux.ResizeDirection",
          "name": "ResizeDirection",
          "kind": "enum",
          "qualifiedName": "LibTmux.ResizeDirection",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-resizedirection/"
        },
        {
          "id": "LibTmux.TmuxEnvironmentEntry",
          "name": "TmuxEnvironmentEntry",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxEnvironmentEntry",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxenvironmententry/"
        },
        {
          "id": "LibTmux.TmuxEnvironment",
          "name": "TmuxEnvironment",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxEnvironment",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxenvironment/"
        },
        {
          "id": "LibTmux.TmuxVersion",
          "name": "TmuxVersion",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxVersion",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxversion/"
        },
        {
          "id": "LibTmux.TmuxCommand",
          "name": "TmuxCommand",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxCommand",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxcommand/"
        },
        {
          "id": "LibTmux.TmuxDispatchState",
          "name": "TmuxDispatchState",
          "kind": "enum",
          "qualifiedName": "LibTmux.TmuxDispatchState",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxdispatchstate/"
        },
        {
          "id": "LibTmux.TmuxInvocation",
          "name": "TmuxInvocation",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxInvocation",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxinvocation/"
        },
        {
          "id": "LibTmux.TmuxWait",
          "name": "TmuxWait",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxWait",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxwait/"
        },
        {
          "id": "LibTmux.ControlModeSubscriptions",
          "name": "ControlModeSubscriptions",
          "kind": "class",
          "qualifiedName": "LibTmux.ControlModeSubscriptions",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-controlmodesubscriptions/"
        },
        {
          "id": "LibTmux.IControlModeSession",
          "name": "IControlModeSession",
          "kind": "interface",
          "qualifiedName": "LibTmux.IControlModeSession",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-icontrolmodesession/"
        },
        {
          "id": "LibTmux.PaneObservation",
          "name": "PaneObservation",
          "kind": "class",
          "qualifiedName": "LibTmux.PaneObservation",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-paneobservation/"
        },
        {
          "id": "LibTmux.UnsafeTmuxFilter",
          "name": "UnsafeTmuxFilter",
          "kind": "struct",
          "qualifiedName": "LibTmux.UnsafeTmuxFilter",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-unsafetmuxfilter/"
        },
        {
          "id": "LibTmux.Query.QueryEdgeParser",
          "name": "QueryEdgeParser",
          "kind": "class",
          "qualifiedName": "LibTmux.Query.QueryEdgeParser",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-queryedgeparser/"
        },
        {
          "id": "LibTmux.Query.QueryDocument",
          "name": "QueryDocument",
          "kind": "struct",
          "qualifiedName": "LibTmux.Query.QueryDocument",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-querydocument/"
        },
        {
          "id": "LibTmux.Query.QueryExtensions",
          "name": "QueryExtensions",
          "kind": "class",
          "qualifiedName": "LibTmux.Query.QueryExtensions",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-queryextensions/"
        },
        {
          "id": "LibTmux.Query.QueryRelationCardinality",
          "name": "QueryRelationCardinality",
          "kind": "enum",
          "qualifiedName": "LibTmux.Query.QueryRelationCardinality",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-queryrelationcardinality/"
        },
        {
          "id": "LibTmux.Query.QueryTarget",
          "name": "QueryTarget",
          "kind": "enum",
          "qualifiedName": "LibTmux.Query.QueryTarget",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-querytarget/"
        },
        {
          "id": "LibTmux.Query.QueryPushdown",
          "name": "QueryPushdown",
          "kind": "enum",
          "qualifiedName": "LibTmux.Query.QueryPushdown",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-querypushdown/"
        },
        {
          "id": "LibTmux.Query.QueryPlan",
          "name": "QueryPlan",
          "kind": "class",
          "qualifiedName": "LibTmux.Query.QueryPlan",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-queryplan/"
        },
        {
          "id": "LibTmux.Query.Json.QueryJsonLimits",
          "name": "QueryJsonLimits",
          "kind": "struct",
          "qualifiedName": "LibTmux.Query.Json.QueryJsonLimits",
          "namespace": "LibTmux.Query.Json",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-json-queryjsonlimits/"
        },
        {
          "id": "LibTmux.Query.Json.QueryJson",
          "name": "QueryJson",
          "kind": "class",
          "qualifiedName": "LibTmux.Query.Json.QueryJson",
          "namespace": "LibTmux.Query.Json",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-json-queryjson/"
        },
        {
          "id": "LibTmux.Query.QueryFieldCatalog",
          "name": "QueryFieldCatalog",
          "kind": "class",
          "qualifiedName": "LibTmux.Query.QueryFieldCatalog",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-queryfieldcatalog/"
        },
        {
          "id": "LibTmux.Query.QueryFieldDescriptor",
          "name": "QueryFieldDescriptor",
          "kind": "class",
          "qualifiedName": "LibTmux.Query.QueryFieldDescriptor",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-queryfielddescriptor/"
        },
        {
          "id": "LibTmux.CapturedRelation",
          "name": "CapturedRelation",
          "kind": "class",
          "qualifiedName": "LibTmux.CapturedRelation",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-capturedrelation/"
        },
        {
          "id": "LibTmux.CapturedValue",
          "name": "CapturedValue",
          "kind": "class",
          "qualifiedName": "LibTmux.CapturedValue",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-capturedvalue/"
        },
        {
          "id": "LibTmux.ServerMirrorView",
          "name": "ServerMirrorView",
          "kind": "struct",
          "qualifiedName": "LibTmux.ServerMirrorView",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-servermirrorview/"
        },
        {
          "id": "LibTmux.ServerMirror",
          "name": "ServerMirror",
          "kind": "class",
          "qualifiedName": "LibTmux.ServerMirror",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-servermirror/"
        },
        {
          "id": "LibTmux.SessionWindowEdge",
          "name": "SessionWindowEdge",
          "kind": "struct",
          "qualifiedName": "LibTmux.SessionWindowEdge",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-sessionwindowedge/"
        },
        {
          "id": "LibTmux.SnapshotDepth",
          "name": "SnapshotDepth",
          "kind": "enum",
          "qualifiedName": "LibTmux.SnapshotDepth",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-snapshotdepth/"
        },
        {
          "id": "LibTmux.SnapshotMetadata",
          "name": "SnapshotMetadata",
          "kind": "class",
          "qualifiedName": "LibTmux.SnapshotMetadata",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-snapshotmetadata/"
        },
        {
          "id": "LibTmux.WindowEntityKey",
          "name": "WindowEntityKey",
          "kind": "struct",
          "qualifiedName": "LibTmux.WindowEntityKey",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-windowentitykey/"
        },
        {
          "id": "LibTmux.ITmuxRequest",
          "name": "ITmuxRequest",
          "kind": "interface",
          "qualifiedName": "LibTmux.ITmuxRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-itmuxrequest/"
        },
        {
          "id": "LibTmux.BindKeyRequest",
          "name": "BindKeyRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.BindKeyRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-bindkeyrequest/"
        },
        {
          "id": "LibTmux.ChooseTreeSort",
          "name": "ChooseTreeSort",
          "kind": "enum",
          "qualifiedName": "LibTmux.ChooseTreeSort",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-choosetreesort/"
        },
        {
          "id": "LibTmux.ChooseTreeRequest",
          "name": "ChooseTreeRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.ChooseTreeRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-choosetreerequest/"
        },
        {
          "id": "LibTmux.PromptType",
          "name": "PromptType",
          "kind": "enum",
          "qualifiedName": "LibTmux.PromptType",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-prompttype/"
        },
        {
          "id": "LibTmux.CommandPromptRequest",
          "name": "CommandPromptRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.CommandPromptRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-commandpromptrequest/"
        },
        {
          "id": "LibTmux.ConfirmBeforeRequest",
          "name": "ConfirmBeforeRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.ConfirmBeforeRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-confirmbeforerequest/"
        },
        {
          "id": "LibTmux.CopyModeRequest",
          "name": "CopyModeRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.CopyModeRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-copymoderequest/"
        },
        {
          "id": "LibTmux.DisplayMenuRequest",
          "name": "DisplayMenuRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.DisplayMenuRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-displaymenurequest/"
        },
        {
          "id": "LibTmux.DisplayMessageRequest",
          "name": "DisplayMessageRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.DisplayMessageRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-displaymessagerequest/"
        },
        {
          "id": "LibTmux.PopupCloseMode",
          "name": "PopupCloseMode",
          "kind": "enum",
          "qualifiedName": "LibTmux.PopupCloseMode",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-popupclosemode/"
        },
        {
          "id": "LibTmux.DisplayPopupRequest",
          "name": "DisplayPopupRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.DisplayPopupRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-displaypopuprequest/"
        },
        {
          "id": "LibTmux.GetOptionRequest",
          "name": "GetOptionRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.GetOptionRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-getoptionrequest/"
        },
        {
          "id": "LibTmux.GetOptionsRequest",
          "name": "GetOptionsRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.GetOptionsRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-getoptionsrequest/"
        },
        {
          "id": "LibTmux.HookRequest",
          "name": "HookRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.HookRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-hookrequest/"
        },
        {
          "id": "LibTmux.IfShellRequest",
          "name": "IfShellRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.IfShellRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-ifshellrequest/"
        },
        {
          "id": "LibTmux.ListBuffersRequest",
          "name": "ListBuffersRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.ListBuffersRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-listbuffersrequest/"
        },
        {
          "id": "LibTmux.ListHooksRequest",
          "name": "ListHooksRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.ListHooksRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-listhooksrequest/"
        },
        {
          "id": "LibTmux.PasteBufferRequest",
          "name": "PasteBufferRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.PasteBufferRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-pastebufferrequest/"
        },
        {
          "id": "LibTmux.RespawnRequest",
          "name": "RespawnRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.RespawnRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-respawnrequest/"
        },
        {
          "id": "LibTmux.RunShellRequest",
          "name": "RunShellRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.RunShellRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-runshellrequest/"
        },
        {
          "id": "LibTmux.SelectLayoutMode",
          "name": "SelectLayoutMode",
          "kind": "enum",
          "qualifiedName": "LibTmux.SelectLayoutMode",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-selectlayoutmode/"
        },
        {
          "id": "LibTmux.SelectLayoutRequest",
          "name": "SelectLayoutRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.SelectLayoutRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-selectlayoutrequest/"
        },
        {
          "id": "LibTmux.SendKeysRequest",
          "name": "SendKeysRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.SendKeysRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-sendkeysrequest/"
        },
        {
          "id": "LibTmux.SetHookRequest",
          "name": "SetHookRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.SetHookRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-sethookrequest/"
        },
        {
          "id": "LibTmux.SetHooksRequest",
          "name": "SetHooksRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.SetHooksRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-sethooksrequest/"
        },
        {
          "id": "LibTmux.SetOptionRequest",
          "name": "SetOptionRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.SetOptionRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-setoptionrequest/"
        },
        {
          "id": "LibTmux.UnbindKeyRequest",
          "name": "UnbindKeyRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.UnbindKeyRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-unbindkeyrequest/"
        },
        {
          "id": "LibTmux.UnsetOptionRequest",
          "name": "UnsetOptionRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.UnsetOptionRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-unsetoptionrequest/"
        },
        {
          "id": "LibTmux.TmuxWaitMode",
          "name": "TmuxWaitMode",
          "kind": "enum",
          "qualifiedName": "LibTmux.TmuxWaitMode",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxwaitmode/"
        },
        {
          "id": "LibTmux.WaitForRequest",
          "name": "WaitForRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.WaitForRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-waitforrequest/"
        },
        {
          "id": "LibTmux.ServerAccessRequest",
          "name": "ServerAccessRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.ServerAccessRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-serveraccessrequest/"
        },
        {
          "id": "LibTmux.AttachSessionRequest",
          "name": "AttachSessionRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.AttachSessionRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-attachsessionrequest/"
        },
        {
          "id": "LibTmux.NewSessionRequest",
          "name": "NewSessionRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.NewSessionRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-newsessionrequest/"
        },
        {
          "id": "LibTmux.FindWindowRequest",
          "name": "FindWindowRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.FindWindowRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-findwindowrequest/"
        },
        {
          "id": "LibTmux.LinkWindowRequest",
          "name": "LinkWindowRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.LinkWindowRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-linkwindowrequest/"
        },
        {
          "id": "LibTmux.MoveWindowRequest",
          "name": "MoveWindowRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.MoveWindowRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-movewindowrequest/"
        },
        {
          "id": "LibTmux.NewWindowRequest",
          "name": "NewWindowRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.NewWindowRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-newwindowrequest/"
        },
        {
          "id": "LibTmux.WindowResizeMode",
          "name": "WindowResizeMode",
          "kind": "enum",
          "qualifiedName": "LibTmux.WindowResizeMode",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-windowresizemode/"
        },
        {
          "id": "LibTmux.ResizeWindowRequest",
          "name": "ResizeWindowRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.ResizeWindowRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-resizewindowrequest/"
        },
        {
          "id": "LibTmux.CapturePanePosition",
          "name": "CapturePanePosition",
          "kind": "struct",
          "qualifiedName": "LibTmux.CapturePanePosition",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-capturepaneposition/"
        },
        {
          "id": "LibTmux.CapturePaneRequest",
          "name": "CapturePaneRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.CapturePaneRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-capturepanerequest/"
        },
        {
          "id": "LibTmux.MovePaneRequest",
          "name": "MovePaneRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.MovePaneRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-movepanerequest/"
        },
        {
          "id": "LibTmux.NewPaneRequest",
          "name": "NewPaneRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.NewPaneRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-newpanerequest/"
        },
        {
          "id": "LibTmux.PaneRunRequest",
          "name": "PaneRunRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.PaneRunRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-panerunrequest/"
        },
        {
          "id": "LibTmux.PaneWaitRequest",
          "name": "PaneWaitRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.PaneWaitRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-panewaitrequest/"
        },
        {
          "id": "LibTmux.PipePaneRequest",
          "name": "PipePaneRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.PipePaneRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-pipepanerequest/"
        },
        {
          "id": "LibTmux.ResizePaneRequest",
          "name": "ResizePaneRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.ResizePaneRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-resizepanerequest/"
        },
        {
          "id": "LibTmux.PaneSelectDirection",
          "name": "PaneSelectDirection",
          "kind": "enum",
          "qualifiedName": "LibTmux.PaneSelectDirection",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-paneselectdirection/"
        },
        {
          "id": "LibTmux.SelectPaneRequest",
          "name": "SelectPaneRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.SelectPaneRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-selectpanerequest/"
        },
        {
          "id": "LibTmux.SplitPaneRequest",
          "name": "SplitPaneRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.SplitPaneRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-splitpanerequest/"
        },
        {
          "id": "LibTmux.PaneSwapDirection",
          "name": "PaneSwapDirection",
          "kind": "enum",
          "qualifiedName": "LibTmux.PaneSwapDirection",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-paneswapdirection/"
        },
        {
          "id": "LibTmux.SwapPaneRequest",
          "name": "SwapPaneRequest",
          "kind": "struct",
          "qualifiedName": "LibTmux.SwapPaneRequest",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-swappanerequest/"
        },
        {
          "id": "LibTmux.ControlModeCommandException",
          "name": "ControlModeCommandException",
          "kind": "class",
          "qualifiedName": "LibTmux.ControlModeCommandException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-controlmodecommandexception/"
        },
        {
          "id": "LibTmux.IncompleteSnapshotException",
          "name": "IncompleteSnapshotException",
          "kind": "class",
          "qualifiedName": "LibTmux.IncompleteSnapshotException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-incompletesnapshotexception/"
        },
        {
          "id": "LibTmux.InconsistentSnapshotException",
          "name": "InconsistentSnapshotException",
          "kind": "class",
          "qualifiedName": "LibTmux.InconsistentSnapshotException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-inconsistentsnapshotexception/"
        },
        {
          "id": "LibTmux.LibTmuxException",
          "name": "LibTmuxException",
          "kind": "class",
          "qualifiedName": "LibTmux.LibTmuxException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-libtmuxexception/"
        },
        {
          "id": "LibTmux.TmuxCleanupException",
          "name": "TmuxCleanupException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxCleanupException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxcleanupexception/"
        },
        {
          "id": "LibTmux.TmuxCommandException",
          "name": "TmuxCommandException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxCommandException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxcommandexception/"
        },
        {
          "id": "LibTmux.TmuxCommandNotFoundException",
          "name": "TmuxCommandNotFoundException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxCommandNotFoundException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxcommandnotfoundexception/"
        },
        {
          "id": "LibTmux.TmuxObjectNotFoundException",
          "name": "TmuxObjectNotFoundException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxObjectNotFoundException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxobjectnotfoundexception/"
        },
        {
          "id": "LibTmux.TmuxOperationCanceledException",
          "name": "TmuxOperationCanceledException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxOperationCanceledException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxoperationcanceledexception/"
        },
        {
          "id": "LibTmux.TmuxOptionException",
          "name": "TmuxOptionException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxOptionException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxoptionexception/"
        },
        {
          "id": "LibTmux.TmuxProtocolException",
          "name": "TmuxProtocolException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxProtocolException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxprotocolexception/"
        },
        {
          "id": "LibTmux.TmuxTransportException",
          "name": "TmuxTransportException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxTransportException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxtransportexception/"
        },
        {
          "id": "LibTmux.TmuxVersionTooLowException",
          "name": "TmuxVersionTooLowException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxVersionTooLowException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxversiontoolowexception/"
        },
        {
          "id": "LibTmux.TmuxWaitTimeoutException",
          "name": "TmuxWaitTimeoutException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxWaitTimeoutException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxwaittimeoutexception/"
        },
        {
          "id": "LibTmux.UnsupportedQueryExpressionException",
          "name": "UnsupportedQueryExpressionException",
          "kind": "class",
          "qualifiedName": "LibTmux.UnsupportedQueryExpressionException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-unsupportedqueryexpressionexception/"
        },
        {
          "id": "LibTmux.StaleServerGenerationException",
          "name": "StaleServerGenerationException",
          "kind": "class",
          "qualifiedName": "LibTmux.StaleServerGenerationException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-staleservergenerationexception/"
        },
        {
          "id": "LibTmux.TmuxSessionExistsException",
          "name": "TmuxSessionExistsException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxSessionExistsException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxsessionexistsexception/"
        },
        {
          "id": "LibTmux.TmuxWindowException",
          "name": "TmuxWindowException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxWindowException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxwindowexception/"
        },
        {
          "id": "LibTmux.TmuxPaneException",
          "name": "TmuxPaneException",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxPaneException",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxpaneexception/"
        },
        {
          "id": "LibTmux.TmuxEvent",
          "name": "TmuxEvent",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxEvent",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxevent/"
        },
        {
          "id": "LibTmux.TmuxOutputEvent",
          "name": "TmuxOutputEvent",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxOutputEvent",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxoutputevent/"
        },
        {
          "id": "LibTmux.TmuxNotificationEvent",
          "name": "TmuxNotificationEvent",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxNotificationEvent",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxnotificationevent/"
        },
        {
          "id": "LibTmux.TmuxEventsDroppedEvent",
          "name": "TmuxEventsDroppedEvent",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxEventsDroppedEvent",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxeventsdroppedevent/"
        },
        {
          "id": "LibTmux.TmuxExitEvent",
          "name": "TmuxExitEvent",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxExitEvent",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxexitevent/"
        },
        {
          "id": "LibTmux.TmuxOptions",
          "name": "TmuxOptions",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxOptions",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxoptions/"
        },
        {
          "id": "LibTmux.PsmuxCaptureOptions",
          "name": "PsmuxCaptureOptions",
          "kind": "class",
          "qualifiedName": "LibTmux.PsmuxCaptureOptions",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-psmuxcaptureoptions/"
        },
        {
          "id": "LibTmux.PsmuxConnectionOptions",
          "name": "PsmuxConnectionOptions",
          "kind": "class",
          "qualifiedName": "LibTmux.PsmuxConnectionOptions",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-psmuxconnectionoptions/"
        },
        {
          "id": "LibTmux.ShowMessagesMode",
          "name": "ShowMessagesMode",
          "kind": "enum",
          "qualifiedName": "LibTmux.ShowMessagesMode",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-showmessagesmode/"
        },
        {
          "id": "LibTmux.TmuxColorMode",
          "name": "TmuxColorMode",
          "kind": "enum",
          "qualifiedName": "LibTmux.TmuxColorMode",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxcolormode/"
        },
        {
          "id": "LibTmux.TmuxCommandResult",
          "name": "TmuxCommandResult",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxCommandResult",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxcommandresult/"
        },
        {
          "id": "LibTmux.Query.QueryResult",
          "name": "QueryResult",
          "kind": "class",
          "qualifiedName": "LibTmux.Query.QueryResult",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-queryresult/"
        },
        {
          "id": "LibTmux.Query.QueryValueKind",
          "name": "QueryValueKind",
          "kind": "enum",
          "qualifiedName": "LibTmux.Query.QueryValueKind",
          "namespace": "LibTmux.Query",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-query-queryvaluekind/"
        },
        {
          "id": "LibTmux.ServerConnectionOptions",
          "name": "ServerConnectionOptions",
          "kind": "struct",
          "qualifiedName": "LibTmux.ServerConnectionOptions",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-serverconnectionoptions/"
        },
        {
          "id": "LibTmux.SessionCreationResult",
          "name": "SessionCreationResult",
          "kind": "class",
          "qualifiedName": "LibTmux.SessionCreationResult",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-sessioncreationresult/"
        },
        {
          "id": "LibTmux.WindowCreationResult",
          "name": "WindowCreationResult",
          "kind": "class",
          "qualifiedName": "LibTmux.WindowCreationResult",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-windowcreationresult/"
        },
        {
          "id": "LibTmux.TmuxPaneGoneEvent",
          "name": "TmuxPaneGoneEvent",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxPaneGoneEvent",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxpanegoneevent/"
        },
        {
          "id": "LibTmux.TmuxPanePausedEvent",
          "name": "TmuxPanePausedEvent",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxPanePausedEvent",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxpanepausedevent/"
        },
        {
          "id": "LibTmux.TmuxPaneContinuedEvent",
          "name": "TmuxPaneContinuedEvent",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxPaneContinuedEvent",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxpanecontinuedevent/"
        },
        {
          "id": "LibTmux.PaneRunResult",
          "name": "PaneRunResult",
          "kind": "struct",
          "qualifiedName": "LibTmux.PaneRunResult",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-panerunresult/"
        },
        {
          "id": "LibTmux.PaneWaitResult",
          "name": "PaneWaitResult",
          "kind": "struct",
          "qualifiedName": "LibTmux.PaneWaitResult",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-panewaitresult/"
        },
        {
          "id": "LibTmux.PaneInputMode",
          "name": "PaneInputMode",
          "kind": "enum",
          "qualifiedName": "LibTmux.PaneInputMode",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-paneinputmode/"
        },
        {
          "id": "LibTmux.Testing.TemporaryHierarchyScope",
          "name": "TemporaryHierarchyScope",
          "kind": "class",
          "qualifiedName": "LibTmux.Testing.TemporaryHierarchyScope",
          "namespace": "LibTmux.Testing",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-testing-temporaryhierarchyscope/"
        },
        {
          "id": "LibTmux.Testing.TemporaryServerScope",
          "name": "TemporaryServerScope",
          "kind": "class",
          "qualifiedName": "LibTmux.Testing.TemporaryServerScope",
          "namespace": "LibTmux.Testing",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-testing-temporaryserverscope/"
        },
        {
          "id": "LibTmux.Testing.TemporarySessionScope",
          "name": "TemporarySessionScope",
          "kind": "class",
          "qualifiedName": "LibTmux.Testing.TemporarySessionScope",
          "namespace": "LibTmux.Testing",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-testing-temporarysessionscope/"
        },
        {
          "id": "LibTmux.Testing.TemporaryWindowScope",
          "name": "TemporaryWindowScope",
          "kind": "class",
          "qualifiedName": "LibTmux.Testing.TemporaryWindowScope",
          "namespace": "LibTmux.Testing",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-testing-temporarywindowscope/"
        },
        {
          "id": "LibTmux.Testing.TestEnvironment",
          "name": "TestEnvironment",
          "kind": "struct",
          "qualifiedName": "LibTmux.Testing.TestEnvironment",
          "namespace": "LibTmux.Testing",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-testing-testenvironment/"
        },
        {
          "id": "LibTmux.Testing.TmuxNameGenerator",
          "name": "TmuxNameGenerator",
          "kind": "class",
          "qualifiedName": "LibTmux.Testing.TmuxNameGenerator",
          "namespace": "LibTmux.Testing",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-testing-tmuxnamegenerator/"
        },
        {
          "id": "LibTmux.Testing.TmuxTestContext",
          "name": "TmuxTestContext",
          "kind": "class",
          "qualifiedName": "LibTmux.Testing.TmuxTestContext",
          "namespace": "LibTmux.Testing",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-testing-tmuxtestcontext/"
        },
        {
          "id": "LibTmux.Testing.TmuxTestFactory",
          "name": "TmuxTestFactory",
          "kind": "class",
          "qualifiedName": "LibTmux.Testing.TmuxTestFactory",
          "namespace": "LibTmux.Testing",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-testing-tmuxtestfactory/"
        },
        {
          "id": "LibTmux.Testing.TmuxTestOptions",
          "name": "TmuxTestOptions",
          "kind": "struct",
          "qualifiedName": "LibTmux.Testing.TmuxTestOptions",
          "namespace": "LibTmux.Testing",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-testing-tmuxtestoptions/"
        },
        {
          "id": "LibTmux.TmuxChain",
          "name": "TmuxChain",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxChain",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxchain/"
        },
        {
          "id": "LibTmux.TmuxChaining",
          "name": "TmuxChaining",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxChaining",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxchaining/"
        },
        {
          "id": "LibTmux.LibTmuxInfo",
          "name": "LibTmuxInfo",
          "kind": "class",
          "qualifiedName": "LibTmux.LibTmuxInfo",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-libtmuxinfo/"
        },
        {
          "id": "LibTmux.TmuxDiagnostics",
          "name": "TmuxDiagnostics",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxDiagnostics",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxdiagnostics/"
        },
        {
          "id": "LibTmux.TmuxMenuItem",
          "name": "TmuxMenuItem",
          "kind": "struct",
          "qualifiedName": "LibTmux.TmuxMenuItem",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxmenuitem/"
        },
        {
          "id": "LibTmux.TmuxWaitChannel",
          "name": "TmuxWaitChannel",
          "kind": "class",
          "qualifiedName": "LibTmux.TmuxWaitChannel",
          "namespace": "LibTmux",
          "url": "https://libtmux.org/en/csharp/latest/reference/libtmux-tmuxwaitchannel/"
        }
      ]
    },
    {
      "title": "C# MCP tools",
      "description": "Tools, resources, and prompts advertised by the C# MCP server.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools.md",
      "headings": [
        {
          "id": "tools",
          "level": 2,
          "text": "Tools"
        },
        {
          "id": "resources",
          "level": 2,
          "text": "Resources"
        },
        {
          "id": "resource-templates",
          "level": 2,
          "text": "Resource templates"
        },
        {
          "id": "prompts",
          "level": 2,
          "text": "Prompts"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d"
      }
    },
    {
      "title": "call_read_tools_batch",
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Execute up to 16 declared inspect operations serially; inner operations receive no separate approval.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/call_read_tools_batch/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/call_read_tools_batch.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 586
      }
    },
    {
      "title": "capture_pane",
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Read the text a pane is showing, and optionally its scrollback. The newest lines are always kept; anything dropped to fit the budget is reported. To watch a pane across several turns, use capture_since instead — it returns only what is new.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/capture_pane/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/capture_pane.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 576
      }
    },
    {
      "title": "capture_since",
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Read only what a pane has printed since the last call. Pass back the cursor each time. Use this to watch a long-running process across turns: the tenth read costs what the first did, where re-capturing the pane would return everything again. Call with no cursor to start watching from now.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/capture_since/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/capture_since.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 577
      }
    },
    {
      "title": "clear_pane_scrollback",
      "description": "Delete tmux state; accepts no command payload. Delete a pane's scrollback history, keeping what the screen shows. Deleted history cannot be read back.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/clear_pane_scrollback/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/clear_pane_scrollback.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 613
      }
    },
    {
      "title": "create_session",
      "description": "Start a pane's configured process; accepts no command payload. Create a detached tmux session and return its ids. Give a width and height when nothing will attach to it: a session with no client keeps tmux's default 80x24, which truncates wide output.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/create_session/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/create_session.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 603
      }
    },
    {
      "title": "create_window",
      "description": "Start a pane's configured process; accepts no command payload. Create a window in a tmux session and return its ids.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/create_window/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/create_window.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 604
      }
    },
    {
      "title": "find_pane_by_position",
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Find the pane sitting at an index within a window. Answers nothing rather than failing when no pane is at that position.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/find_pane_by_position/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/find_pane_by_position.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 580
      }
    },
    {
      "title": "get_pane_info",
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Read one pane's size, title, running command, working directory, process ID, history size and limit, and whether it is active, dead, zoomed, in a mode or the pane this server runs in. This is metadata only; to read what the pane shows, use capture_pane or snapshot_pane.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/get_pane_info/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/get_pane_info.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 575
      }
    },
    {
      "title": "get_server_info",
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Read the tmux server's version and how many sessions, windows and panes it holds. Use to confirm a socket is alive and which tmux is running it.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/get_server_info/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/get_server_info.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 572
      }
    },
    {
      "title": "get_session_info",
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Read one session's name, ID, window count and whether a client is attached, without listing every session. Give the session, or a window ID to read the session that holds it.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/get_session_info/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/get_session_info.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 573
      }
    },
    {
      "title": "get_tmux_variables",
      "description": "Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Expand named tmux format variables for a pane, such as session_name or window_width. Use it for fields nothing else answers; get_pane_info already returns the common ones, and show_option reads configuration rather than live state.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/get_tmux_variables/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/get_tmux_variables.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 582
      }
    },
    {
      "title": "get_window_info",
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Read one window's name, index, size, layout, pane count and whether it is its session's current window, without listing every window. Give the window ID, or a pane ID to read the window that holds it.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/get_window_info/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/get_window_info.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 574
      }
    },
    {
      "title": "kill_pane",
      "description": "Delete tmux state; accepts no command payload. Close a pane and end its program. Refuses the pane this server runs in; to remove a whole window, use kill_window.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/kill_pane/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/kill_pane.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 614
      }
    },
    {
      "title": "kill_session",
      "description": "Delete tmux state; accepts no command payload. Close a session with all its windows and panes. Refuses the session this server runs in.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/kill_session/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/kill_session.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 616
      }
    },
    {
      "title": "kill_window",
      "description": "Delete tmux state; accepts no command payload. Close a window and every pane in it. Refuses the window this server runs in.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/kill_window/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/kill_window.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 615
      }
    },
    {
      "title": "list_panes",
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. List tmux panes, optionally within one session or window. Filter for isCaller=true to answer 'which pane am I in?', which finds one only when this server drives the caller's own socket — get_server_info says whose socket that is. This reads sizes and running commands, not terminal text — for that use search_panes.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/list_panes/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/list_panes.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 571
      }
    },
    {
      "title": "list_sessions",
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. List the tmux sessions. This reads names and sizes, not terminal text — to find what a pane is showing, use search_panes.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/list_sessions/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/list_sessions.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 569
      }
    },
    {
      "title": "list_windows",
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. List tmux windows, optionally within one session. This reads names and layouts, not terminal text — to find what a pane is showing, use search_panes.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/list_windows/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/list_windows.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 570
      }
    },
    {
      "title": "move_window",
      "description": "Change tmux state; no client-supplied executable input. Move a window to another index, or into another session. With replaceExisting it takes an index that is already occupied by killing the window there, which needs the teardown toolset.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/move_window/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/move_window.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 595
      }
    },
    {
      "title": "paste_text",
      "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Paste a block of text into exactly one pane through a tmux buffer. Use for multi-line text, or anything an editor would mangle if typed — bracketed paste stops auto-indent. Set enter to append a newline to that same private buffer. It refuses a target in a human-owned mode and never fans out to synchronized siblings. The temporary buffer is deleted afterwards; if cleanup fails, the result identifies what remains.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/paste_text/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/paste_text.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 610
      }
    },
    {
      "title": "rename_session",
      "description": "Change tmux state; no client-supplied executable input. Rename a tmux session. Its id does not change, so anything holding one still works.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/rename_session/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/rename_session.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 588
      }
    },
    {
      "title": "rename_window",
      "description": "Change tmux state; no client-supplied executable input. Rename a tmux window. Its id does not change.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/rename_window/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/rename_window.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 589
      }
    },
    {
      "title": "resize_pane",
      "description": "Change tmux state; no client-supplied executable input. Resize a pane, or zoom it to fill its window. Widening a pane before reading it is the fix for output that comes back wrapped across rows.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/resize_pane/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/resize_pane.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 594
      }
    },
    {
      "title": "resize_window",
      "description": "Change tmux state; no client-supplied executable input. Resize a window to a width and height in cells; its panes resize with it. To resize one pane, use resize_pane.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/resize_window/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/resize_window.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 593
      }
    },
    {
      "title": "respawn_pane",
      "description": "Start a pane's configured process; accepts no command payload. Only restarts a pane whose command has ALREADY EXITED. killExistingProcess overrides that and kills what is running first — an editor holding unsaved changes, a build part way through. It reruns the command the pane was created with rather than running something new.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/respawn_pane/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/respawn_pane.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 606
      }
    },
    {
      "title": "run_shell_command",
      "description": "Run a shell command in a pane with your user's permissions. Run a shell command in one pane, wait for it to finish, and report its singular real exit status and output. This is the tool for 'run X and tell me if it worked'. It reaches only the pane you name: the command travels through a tmux buffer, which synchronize-panes does not fan out, so the exit status is one pane's. Use send_keys when you want a synchronized cohort to receive input. Do NOT send keys and then poll a capture in a loop — this waits deterministically and costs one call. The command runs in a subshell, so cd and export do not persist. It refuses the named pane in a human-owned mode. Check linesMissed and anchorLost. A timed-out command MAY STILL BE RUNNING; inspect it and do not retry it — unless started is false, which means it never ran because something other than an idle shell was reading that pane's input.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/run_shell_command/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/run_shell_command.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 607
      }
    },
    {
      "title": "search_panes",
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Find which panes are showing text matching a regular expression. This is the tool for 'which pane has the error', 'where is the build running', or any question about what a pane CONTAINS — the list tools only see names and sizes.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/search_panes/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/search_panes.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 579
      }
    },
    {
      "title": "select_layout",
      "description": "Change tmux state; no client-supplied executable input. Arrange a window's panes with a named layout — even-horizontal, even-vertical, main-horizontal, main-vertical, tiled — or a layout string read from list_windows.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/select_layout/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/select_layout.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 592
      }
    },
    {
      "title": "select_pane",
      "description": "Change tmux state; no client-supplied executable input. Make a pane the active one in its window. This changes what a watching human sees; targeting a pane by id does not require selecting it first.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/select_pane/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/select_pane.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 591
      }
    },
    {
      "title": "select_window",
      "description": "Change tmux state; no client-supplied executable input. Make a window the current one in its session.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/select_window/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/select_window.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 590
      }
    },
    {
      "title": "send_keys",
      "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Send raw keystrokes to a pane and return immediately. Use for driving an interactive program — a key in vim, a menu choice, Ctrl-C. Set literal=false to send named keys such as C-c, Escape or F5. It refuses the named pane in a human-owned mode and, when source input expands, every synchronized input cohort peer. To run a shell command and learn whether it worked, use run_shell_command instead; this reports nothing about what happens next. Tracks what it sends — including edits such as backspace, Ctrl-U or Ctrl-C — so wait_for_text can tell this pane's echo apart from real output for a short time afterward.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/send_keys/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/send_keys.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 608
      }
    },
    {
      "title": "send_keys_batch",
      "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Send several keystrokes to one pane in order, in a single call. Use for a short interactive sequence — open a file, move, type, save — instead of one call per key. Each operation refuses the named pane in a human-owned mode and, when source input expands, every synchronized input cohort peer. A batch has at most 64 steps and 64 KiB of UTF-8 text. Each delay is 0-2000 ms and all delays together must fit the server wait ceiling.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/send_keys_batch/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/send_keys_batch.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 609
      }
    },
    {
      "title": "set_history_limit",
      "description": "Change tmux state; no client-supplied executable input. Set how many scrollback lines tmux keeps. This is a SESSION option, so it covers every window in the session rather than one pane, and the session must be named because the call can destroy data. Raise it before starting something that prints a lot: no capture can return lines tmux has already discarded. LOWERING it discards the excess from every pane immediately, and the result says how many lines went; raising the limit again does not bring them back.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/set_history_limit/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/set_history_limit.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 601
      }
    },
    {
      "title": "set_mouse_enabled",
      "description": "Change tmux state; no client-supplied executable input. Turn tmux mouse support on or off. This sets the global option, so it applies to every session on this server and changes what a human watching can do with their mouse.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/set_mouse_enabled/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/set_mouse_enabled.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 600
      }
    },
    {
      "title": "set_pane_title",
      "description": "Change tmux state; no client-supplied executable input. Set a pane's title. Useful for labelling panes you created so a human watching can tell which is which.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/set_pane_title/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/set_pane_title.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 597
      }
    },
    {
      "title": "set_synchronize_panes",
      "description": "Change tmux state; no client-supplied executable input. Turn synchronize-panes on or off for a window. Input typed into one of its panes then reaches the synchronized input cohort: every pane whose effective synchronize-panes setting is on. A pane without a setting of its own follows the window; one with its own setting stays included or excluded either way.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/set_synchronize_panes/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/set_synchronize_panes.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 611
      }
    },
    {
      "title": "show_environment",
      "description": "Read the tmux environment; accepts no client-supplied executable input. A listing answers names without values, and a named variable is still withheld when the name reads as a credential. Read what a NEW pane will inherit, at the server or session level — not what an already-running shell has.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/show_environment/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/show_environment.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 584
      }
    },
    {
      "title": "show_hooks",
      "description": "Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Read the hooks tmux will run on its own events. Read-only on purpose: a hook written here would outlive this conversation and keep firing with nobody left who knows why. Put hooks you want to keep in your tmux config file.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/show_hooks/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/show_hooks.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 585
      }
    },
    {
      "title": "show_option",
      "description": "Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Read tmux options at the server, session, window or pane level. Values set at a wider scope are included and marked inherited, because that is where nearly all tmux configuration lives. Omit the name to list them all. Reading history-limit before a long tail tells you how much output the pane can hold before it starts dropping lines.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/show_option/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/show_option.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 583
      }
    },
    {
      "title": "signal_channel",
      "description": "Change tmux state; no client-supplied executable input. Signal a tmux wait-for channel, releasing whatever waits on it. The channel latches: signalling before anyone waits still satisfies the next wait, so a handoff cannot be lost to a race.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/signal_channel/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/signal_channel.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 599
      }
    },
    {
      "title": "snapshot_pane",
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Read a pane's visible content together with its cursor position, size and running command, in one call. Prefer this over capture_pane plus list_panes: it is one round trip and the cursor is guaranteed to describe the text returned with it.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/snapshot_pane/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/snapshot_pane.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 578
      }
    },
    {
      "title": "split_window",
      "description": "Start a pane's configured process; accepts no command payload. Split a pane and return the NEW pane's id. Use that id for what you put in it — pane ids stay valid across layout changes, where window names and indexes do not.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/split_window/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/split_window.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 605
      }
    },
    {
      "title": "swap_pane",
      "description": "Change tmux state; no client-supplied executable input. Swap two panes' positions; each keeps its program, its content and its ID.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/swap_pane/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/swap_pane.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 596
      }
    },
    {
      "title": "wait_for_channel",
      "description": "Change tmux state; no client-supplied executable input. Block until something signals a tmux wait-for channel with 'tmux wait-for -S <channel>'. Use when you composed a shell command that signals it. For an ordinary command whose completion you want, run_shell_command already does this and also reports the exit status.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/wait_for_channel/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/wait_for_channel.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 598
      }
    },
    {
      "title": "wait_for_text",
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Wait until a pane prints something matching one of these patterns, then return. Use for output you did NOT start — a server's ready line, another process's progress, a person typing. A matching pattern already on screen returns PresentAtEntry. For a command you are running yourself, run_shell_command is better: it reports the real exit status instead of guessing from text. Never poll capture_pane in a loop; this call does the waiting. Control observation is required by default; pollingFallback reports activation when the operator permits fallback. Text this server itself typed is discounted while deciding what is new, for a few seconds after it is sent or submitted, so its own echo cannot be the match — except on a pane whose program has not yet configured its terminal; wait for a first prompt before typing into a freshly created pane.",
      "section": "C# MCP tools",
      "url": "https://libtmux.org/en/csharp/latest/mcp/tools/wait_for_text/",
      "markdownUrl": "https://libtmux.org/en/csharp/latest/mcp/tools/wait_for_text.md",
      "headings": [
        {
          "id": "arguments",
          "level": 2,
          "text": "Arguments"
        },
        {
          "id": "schemas",
          "level": 2,
          "text": "Schemas"
        }
      ],
      "source": {
        "repo": "libtmux/libtmux-dotnet",
        "revision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "extractedRevision": "cf34b255c896d19a97e7d7fabea58609c916012d",
        "file": "src/LibTmux.Mcp/Policy/CapabilityModel.cs",
        "line": 581
      }
    }
  ]
}
