# split_window

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

> Start a pane's configured process; accepts no command payload. Split a pane and return the new one. Direction is where the new pane goes relative to the one you split.

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)

* **split_window**( [direction](https://libtmux.org/en/ts/latest/mcp/tools/split_window/#mcp.tool.split_window.input%2Fproperties%2Fdirection)?: "above" | "below" | "left" | "right", [paneId](https://libtmux.org/en/ts/latest/mcp/tools/split_window/#mcp.tool.split_window.input%2Fproperties%2FpaneId): [string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"), [startDirectory](https://libtmux.org/en/ts/latest/mcp/tools/split_window/#mcp.tool.split_window.input%2Fproperties%2FstartDirectory)?: [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/lifecycle.ts#L190)][¶](https://libtmux.org/en/ts/latest/mcp/tools/split_window/#mcp.tool.split_window)

  Start a pane’s configured process; accepts no command payload. Split a pane and return the new one. Direction is where the new pane goes relative to the one you split.

  * MCP request method

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

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

  * **[`direction`](https://libtmux.org/en/ts/latest/mcp/tools/split_window/#mcp.tool.split_window.input%2Fproperties%2Fdirection)**? ("above" | "below" | "left" | "right")

    Default below.

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

    Stable pane id, e.g. %1.

    * pattern

      `"^%\\d+$"`

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

    Defaults to the directory the pane being split is in.

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

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

  * **[`pane`](https://libtmux.org/en/ts/latest/mcp/tools/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.output%2Fproperties%2Fpane%2Fproperties%2FwindowName)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

    No other properties are accepted.

  No other properties are accepted.

  ## Annotations[#](https://libtmux.org/en/ts/latest/mcp/tools/split_window/#mcp.tool.split_window.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/split_window/#mcp.tool.split_window.schemas)

  Use the complete advertised contract for validation and client integration.

  Input schema

  ```json
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {
      "direction": {
        "description": "Default below.",
        "enum": [
          "above",
          "below",
          "left",
          "right"
        ],
        "type": "string"
      },
      "paneId": {
        "description": "Stable pane id, e.g. %1.",
        "pattern": "^%\\d+$",
        "type": "string"
      },
      "startDirectory": {
        "description": "Defaults to the directory the pane being split is in.",
        "type": "string",
        "x-libtmux-tmux-format": "literalized-once"
      }
    },
    "required": [
      "paneId"
    ],
    "type": "object"
  }
  ```

  Output schema

  ```json
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "properties": {
      "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"
      }
    },
    "required": [
      "pane"
    ],
    "type": "object"
  }
  ```
