{
  "name": "send_keys",
  "wireName": "send_keys",
  "source": {
    "repo": "libtmux/libtmux-ts",
    "revision": "3fe1ca654b81b8cbf4a13b777a001a3298c87a6f",
    "extractedRevision": "ecc3eaca0b4e05a77360da9d56790b409282c63b",
    "file": "packages/mcp/src/tools/input.ts",
    "line": 116
  },
  "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Send keystrokes to a pane. Use for TUIs, control keys (C-c), and partial lines. For a shell command whose result you want, use run_shell_command — it waits for completion and reports exit status, which this does not.",
  "schemaStatus": "runtime",
  "inputSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {
      "enter": {
        "description": "Press Enter afterwards. Default true.",
        "type": "boolean"
      },
      "force": {
        "description": "Allow writing to the pane this server itself was called from, which is otherwise refused. It does not override the refusal to write to a pane a person is watching — a pane an attached client has on screen is still refused with force.",
        "type": "boolean"
      },
      "keys": {
        "description": "Keys to send. tmux key names like C-c work unless literal is true.",
        "type": "string"
      },
      "literal": {
        "description": "Send the text as-is, without resolving key names.",
        "type": "boolean"
      },
      "paneId": {
        "description": "Stable pane id, e.g. %1.",
        "pattern": "^%\\d+$",
        "type": "string"
      }
    },
    "required": [
      "keys",
      "paneId"
    ],
    "type": "object"
  },
  "outputSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "properties": {
      "attended": {
        "description": "A person is watching a configured cohort member.",
        "type": "boolean"
      },
      "paneId": {
        "description": "Stable pane id, e.g. %1.",
        "pattern": "^%\\d+$",
        "type": "string"
      },
      "resolvedPaneIds": {
        "description": "Configured cohort at the immediate preflight, not a delivery receipt.",
        "items": {
          "description": "Stable pane id, e.g. %1.",
          "pattern": "^%\\d+$",
          "type": "string"
        },
        "type": "array"
      },
      "sent": {
        "type": "boolean"
      }
    },
    "required": [
      "attended",
      "paneId",
      "resolvedPaneIds",
      "sent"
    ],
    "type": "object"
  },
  "annotations": {
    "destructiveHint": true,
    "idempotentHint": false,
    "openWorldHint": true,
    "readOnlyHint": false
  },
  "meta": {
    "com.git-pull.libtmux-mcp/capability": {
      "amplifiesFutureInput": false,
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Send keystrokes to a pane. Use for TUIs, control keys (C-c), and partial lines. For a shell command whose result you want, use run_shell_command — it waits for completion and reports exit status, which this does not.",
      "inputLiteralization": {},
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "enter": {
            "description": "Press Enter afterwards. Default true.",
            "type": "boolean"
          },
          "force": {
            "description": "Allow writing to the pane this server itself was called from, which is otherwise refused. It does not override the refusal to write to a pane a person is watching — a pane an attached client has on screen is still refused with force.",
            "type": "boolean"
          },
          "keys": {
            "description": "Keys to send. tmux key names like C-c work unless literal is true.",
            "type": "string"
          },
          "literal": {
            "description": "Send the text as-is, without resolving key names.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "keys",
          "paneId"
        ],
        "type": "object"
      },
      "mayExposeSecrets": true,
      "mayReturnUntrustedContent": true,
      "name": "send_keys",
      "nestedAuthority": [],
      "outputClasses": [
        "tmux-metadata"
      ],
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "attended": {
            "description": "A person is watching a configured cohort member.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "resolvedPaneIds": {
            "description": "Configured cohort at the immediate preflight, not a delivery receipt.",
            "items": {
              "description": "Stable pane id, e.g. %1.",
              "pattern": "^%\\d+$",
              "type": "string"
            },
            "type": "array"
          },
          "sent": {
            "type": "boolean"
          }
        },
        "required": [
          "attended",
          "paneId",
          "resolvedPaneIds",
          "sent"
        ],
        "type": "object"
      },
      "processReach": "pane-input",
      "title": "Send keys",
      "tmuxEffects": [
        "observe",
        "change"
      ],
      "toolset": "execute"
    }
  }
}
