# snapshot_pane

Source: https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/

> Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Return bounded terminal content and pane metadata in one MCP response. The metadata and capture come from separate tmux requests and are not an atomic snapshot.

tool MCPlatest

MCP concept example

A working example of the core library. It can change without notice.

[What concept means](https://libtmux.org/en/meta/support/#concept-and-alpha)

* **snapshot_pane**( [maxLines](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.input%2Fproperties%2FmaxLines)?: [integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"), [paneId](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.input%2Fproperties%2FpaneId): [string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"), )

  tool \[[source](https://github.com/libtmux/libtmux-ts/blob/46cccfef2a546de55ce8b308249b8c76339089a0/packages/mcp/src/tools/target.ts#L305)][¶](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane)

  Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Return bounded terminal content and pane metadata in one MCP response. The metadata and capture come from separate tmux requests and are not an atomic snapshot.

  * MCP request method

    `tools/call` Send `snapshot_pane` as the tool name, with the arguments below.

  ## Arguments[#](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.parameters)

  * **[`maxLines`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.input%2Fproperties%2FmaxLines)**? ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

    Keep at most this many lines, from the end. Defaults to the server limit.

    * maximum

      `9007199254740991`

    * exclusiveMinimum

      `0`

  * **[`paneId`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.input%2Fproperties%2FpaneId)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

    Stable pane id, e.g. %1.

    * pattern

      `"^%\\d+$"`

  ## Result[#](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.result)

  Returns [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)")

  * **[`content`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fcontent)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

  * **[`cursorX`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2FcursorX)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

    * minimum

      `-9007199254740991`

    * maximum

      `9007199254740991`

  * **[`cursorY`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2FcursorY)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

    * minimum

      `-9007199254740991`

    * maximum

      `9007199254740991`

  * **[`droppedLines`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2FdroppedLines)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

    * minimum

      `-9007199254740991`

    * maximum

      `9007199254740991`

  * **[`inMode`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2FinMode)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

    * minimum

      `-9007199254740991`

    * maximum

      `9007199254740991`

  * **[`pane`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

    * **[`active`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Factive)** ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

      Whether this is its window’s active pane.

    * **[`command`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fcommand)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

      The command tmux reports running in it.

    * **[`cwd`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fcwd)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

      Its current working directory.

    * **[`dead`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fdead)** ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

      Whether its process exited and remain-on-exit kept it.

    * **[`height`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fheight)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

      * minimum

        `-9007199254740991`

      * maximum

        `9007199254740991`

    * **[`id`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fid)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

      Stable pane id. Prefer this for entity-scoped targeting.

      * pattern

        `"^%\\d+$"`

    * **[`index`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Findex)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

      * minimum

        `-9007199254740991`

      * maximum

        `9007199254740991`

    * **[`isAttended`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2FisAttended)** ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

      A person is currently looking at this pane.

    * **[`isCallerPane`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2FisCallerPane)** ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

      This is the pane this MCP server runs in.

    * **[`metadataComplete`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2FmetadataComplete)** ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

      Whether every projected metadata string is complete.

    * **[`omittedMetadataBytes`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2FomittedMetadataBytes)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

      UTF-8 bytes omitted from projected metadata strings.

      * minimum

        `0`

      * maximum

        `9007199254740991`

    * **[`omittedPlacements`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2FomittedPlacements)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

      Later placements omitted.

      * minimum

        `0`

      * maximum

        `9007199254740991`

    * **[`placements`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fplacements)** ([Array](https://json-schema.org/understanding-json-schema/reference/array "array (JSON Schema)")<[object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)")>)

      Retained session and window indexes through which this pane is reachable.

      * **[Items](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fplacements%2Fitems)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`index`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fplacements%2Fitems%2Fproperties%2Findex)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

          The window index in this session.

          * minimum

            `-9007199254740991`

          * maximum

            `9007199254740991`

        * **[`sessionId`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fplacements%2Fitems%2Fproperties%2FsessionId)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

          Stable session id, e.g. $1.

          * pattern

            `"^\\$\\d+$"`

        * **[`sessionName`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fplacements%2Fitems%2Fproperties%2FsessionName)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

        No other properties are accepted.

    * **[`placementsComplete`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2FplacementsComplete)** ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

      Whether placements contains every placement.

    * **[`title`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Ftitle)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

    * **[`width`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2Fwidth)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

      * minimum

        `-9007199254740991`

      * maximum

        `9007199254740991`

    * **[`windowId`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2FwindowId)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

      Stable window id, e.g. @1.

      * pattern

        `"^@\\d+$"`

    * **[`windowName`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2Fpane%2Fproperties%2FwindowName)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

    No other properties are accepted.

  * **[`scrollPosition`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.output%2Fproperties%2FscrollPosition)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

    * minimum

      `-9007199254740991`

    * maximum

      `9007199254740991`

  No other properties are accepted.

  ## Annotations[#](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.annotations)

  * [`destructiveHint`](https://libtmux.org/en/ts/latest/mcp/reference/glossary/#destructiveHint)

    `true`

  * [`idempotentHint`](https://libtmux.org/en/ts/latest/mcp/reference/glossary/#idempotentHint)

    `false`

  * [`openWorldHint`](https://libtmux.org/en/ts/latest/mcp/reference/glossary/#openWorldHint)

    `true`

  * [`readOnlyHint`](https://libtmux.org/en/ts/latest/mcp/reference/glossary/#readOnlyHint)

    `false`

  ## Protocol data[#](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/#mcp.tool.snapshot_pane.schemas)

  Use the complete advertised contract for validation and client integration.

  Input schema

  ```json
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {
      "maxLines": {
        "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991,
        "type": "integer"
      },
      "paneId": {
        "description": "Stable pane id, e.g. %1.",
        "pattern": "^%\\d+$",
        "type": "string"
      }
    },
    "required": [
      "paneId"
    ],
    "type": "object"
  }
  ```

  Output schema

  ```json
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "properties": {
      "content": {
        "type": "string"
      },
      "cursorX": {
        "maximum": 9007199254740991,
        "minimum": -9007199254740991,
        "type": "integer"
      },
      "cursorY": {
        "maximum": 9007199254740991,
        "minimum": -9007199254740991,
        "type": "integer"
      },
      "droppedLines": {
        "maximum": 9007199254740991,
        "minimum": -9007199254740991,
        "type": "integer"
      },
      "inMode": {
        "maximum": 9007199254740991,
        "minimum": -9007199254740991,
        "type": "integer"
      },
      "pane": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "description": "Whether this is its window's active pane.",
            "type": "boolean"
          },
          "command": {
            "description": "The command tmux reports running in it.",
            "type": "string"
          },
          "cwd": {
            "description": "Its current working directory.",
            "type": "string"
          },
          "dead": {
            "description": "Whether its process exited and remain-on-exit kept it.",
            "type": "boolean"
          },
          "height": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "id": {
            "description": "Stable pane id. Prefer this for entity-scoped targeting.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "index": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "isAttended": {
            "description": "A person is currently looking at this pane.",
            "type": "boolean"
          },
          "isCallerPane": {
            "description": "This is the pane this MCP server runs in.",
            "type": "boolean"
          },
          "metadataComplete": {
            "description": "Whether every projected metadata string is complete.",
            "type": "boolean"
          },
          "omittedMetadataBytes": {
            "description": "UTF-8 bytes omitted from projected metadata strings.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "omittedPlacements": {
            "description": "Later placements omitted.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "placements": {
            "description": "Retained session and window indexes through which this pane is reachable.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "index": {
                  "description": "The window index in this session.",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "sessionId": {
                  "description": "Stable session id, e.g. $1.",
                  "pattern": "^\\$\\d+$",
                  "type": "string"
                },
                "sessionName": {
                  "type": "string"
                }
              },
              "required": [
                "index",
                "sessionId",
                "sessionName"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "placementsComplete": {
            "description": "Whether placements contains every placement.",
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "width": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          },
          "windowName": {
            "type": "string"
          }
        },
        "required": [
          "active",
          "command",
          "cwd",
          "dead",
          "height",
          "id",
          "index",
          "isAttended",
          "isCallerPane",
          "metadataComplete",
          "omittedMetadataBytes",
          "omittedPlacements",
          "placements",
          "placementsComplete",
          "title",
          "width",
          "windowId",
          "windowName"
        ],
        "type": "object"
      },
      "scrollPosition": {
        "maximum": 9007199254740991,
        "minimum": -9007199254740991,
        "type": "integer"
      }
    },
    "required": [
      "content",
      "cursorX",
      "cursorY",
      "droppedLines",
      "inMode",
      "pane",
      "scrollPosition"
    ],
    "type": "object"
  }
  ```
