# stop_program

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

> Change tmux state; no client-supplied executable input. End a started program and remove its pane now: SIGTERM, then SIGKILL two seconds later. Its id is forgotten, so read what you need with read_program first.

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)

* **stop_program**( [programId](https://libtmux.org/en/ts/latest/mcp/tools/stop_program/#mcp.tool.stop_program.input%2Fproperties%2FprogramId): [string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"), )

  tool \[[source](https://github.com/libtmux/libtmux-ts/blob/f7b03a361f7c97677406b4ab937b2772ddb5f7dd/packages/mcp/src/tools/programs.ts#L557)][¶](https://libtmux.org/en/ts/latest/mcp/tools/stop_program/#mcp.tool.stop_program)

  Change tmux state; no client-supplied executable input. End a started program and remove its pane now: SIGTERM, then SIGKILL two seconds later. Its id is forgotten, so read what you need with [read_program](https://libtmux.org/en/ts/latest/mcp/tools/read_program/) first.

  * MCP request method

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

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

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

    The id [start_program](https://libtmux.org/en/ts/latest/mcp/tools/start_program/) returned.

    * minLength

      `1`

    * maxLength

      `64`

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

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

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

    The program that was ended. Output [read_program](https://libtmux.org/en/ts/latest/mcp/tools/read_program/) had not returned is gone.

  No other properties are accepted.

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

  Use the complete advertised contract for validation and client integration.

  Input schema

  ```json
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {
      "programId": {
        "description": "The id start_program returned.",
        "maxLength": 64,
        "minLength": 1,
        "type": "string"
      }
    },
    "required": [
      "programId"
    ],
    "type": "object"
  }
  ```

  Output schema

  ```json
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "properties": {
      "programId": {
        "description": "The program that was ended. Output read_program had not returned is gone.",
        "type": "string"
      }
    },
    "required": [
      "programId"
    ],
    "type": "object"
  }
  ```
