{
  "name": "get_pane_info",
  "wireName": "get_pane_info",
  "source": {
    "repo": "libtmux/libtmux-rs",
    "revision": "f0e37052c232636b61d095817046e6bfc8f2ca40",
    "extractedRevision": "7a5def5921b12f58d47327cf625c039de5fa8ea7",
    "file": "crates/tmux-mcp/src/tools/contract.rs",
    "line": 593
  },
  "description": "Return metadata for one pane. Inspect tmux metadata; accepts no client-supplied executable input.",
  "schemaStatus": "runtime",
  "inputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "properties": {
      "pane": {
        "description": "The `%`-prefixed pane id, as `list_panes` reports it.",
        "type": "string"
      }
    },
    "required": [
      "pane"
    ],
    "type": "object"
  },
  "outputSchema": {
    "$defs": {
      "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": {
      "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"
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Get Pane Info"
  },
  "meta": {
    "com.git-pull.libtmux-mcp/capability": {
      "amplifiesFutureInput": false,
      "inputLiteralization": {},
      "mayExposeSecrets": true,
      "mayReturnUntrustedContent": true,
      "nestedAuthority": [],
      "outputClasses": [
        "tmux-metadata"
      ],
      "processReach": "none",
      "tmuxEffects": [
        "observe"
      ],
      "toolset": "inspect"
    }
  }
}
