{
  "name": "list_panes",
  "wireName": "list_panes",
  "source": {
    "repo": "libtmux/libtmux-rs",
    "revision": "f0e37052c232636b61d095817046e6bfc8f2ca40",
    "extractedRevision": "7a5def5921b12f58d47327cf625c039de5fa8ea7",
    "file": "crates/tmux-mcp/src/tools/inspect.rs",
    "line": 137
  },
  "description": "List every pane on the server. Inspect tmux metadata; accepts no client-supplied executable input.",
  "schemaStatus": "runtime",
  "inputSchema": {
    "additionalProperties": false,
    "properties": {},
    "type": "object"
  },
  "outputSchema": {
    "$defs": {
      "PaneView": {
        "description": "One pane, as the protocol sees it.",
        "properties": {
          "active": {
            "description": "Whether this is the window's active pane.",
            "type": "boolean"
          },
          "caller": {
            "$ref": "#/$defs/Relation",
            "description": "Whether this is the pane the MCP server itself runs in.\n\n`self` only on a confirmed match of both socket and pane id; `other`\nfor every pane that is not, including one this crate cannot prove\neither way; `unknown` when the server is not running inside tmux, so\nthe question has no answer."
          },
          "command": {
            "description": "The command currently running.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The `%`-prefixed tmux identity.",
            "type": "string"
          },
          "path": {
            "description": "The pane's working directory.",
            "type": [
              "string",
              "null"
            ]
          },
          "window_id": {
            "description": "The window that contains the pane.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "window_id",
          "active",
          "caller"
        ],
        "type": "object"
      },
      "Relation": {
        "description": "How a pane relates to the process answering the request.\n\nThree values rather than a boolean, because \"not the caller's pane\" and\n\"there is no caller\" are different answers and an agent acts differently on\neach.",
        "oneOf": [
          {
            "const": "unknown",
            "description": "This process is not running inside tmux, so no pane is its own.",
            "type": "string"
          },
          {
            "const": "self",
            "description": "Confirmed: the same tmux server, and the same pane.",
            "type": "string"
          },
          {
            "const": "other",
            "description": "Some other pane, or a pane this crate cannot prove is the caller's.",
            "type": "string"
          }
        ]
      }
    },
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "panes": {
        "description": "The panes, in tmux's own order.",
        "items": {
          "$ref": "#/$defs/PaneView"
        },
        "type": "array"
      }
    },
    "required": [
      "panes"
    ],
    "type": "object"
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "List Panes"
  },
  "meta": {
    "anthropic/alwaysLoad": true,
    "com.git-pull.libtmux-mcp/capability": {
      "amplifiesFutureInput": false,
      "inputLiteralization": {},
      "mayExposeSecrets": true,
      "mayReturnUntrustedContent": true,
      "nestedAuthority": [],
      "outputClasses": [
        "tmux-metadata"
      ],
      "processReach": "none",
      "tmuxEffects": [
        "observe"
      ],
      "toolset": "inspect"
    }
  }
}
