# send_keys

Source: https://libtmux.org/en/dotnet/latest/mcp/tools/send_keys/

> Send input to a pane's program; a shell that receives it runs it with your user's permissions. Send raw keystrokes to a pane and return immediately. Use for driving an interactive program — a key in vim, a menu choice, Ctrl-C. Set literal=false to send named keys such as C-c, Escape or F5. It refuses the named pane in a human-owned mode and, when source input expands, every synchronized input cohort peer. To run a shell command and learn whether it worked, use run_shell_command instead; this reports nothing about what happens next. Tracks what it sends — including edits such as backspace, Ctrl-U or Ctrl-C — so wait_for_text can tell this pane's echo apart from real output for a short time afterward.

MCP is in development

Server behavior and tool contracts may change. Tool availability depends on the server configuration.

Send input to a pane’s program; a shell that receives it runs it with your user’s permissions. Send raw keystrokes to a pane and return immediately. Use for driving an interactive program — a key in vim, a menu choice, Ctrl-C. Set literal=false to send named keys such as C-c, Escape or F5. It refuses the named pane in a human-owned mode and, when source input expands, every synchronized input cohort peer. To run a shell command and learn whether it worked, use [run\_shell\_command](https://libtmux.org/en/dotnet/latest/mcp/tools/run_shell_command/) instead; this reports nothing about what happens next. Tracks what it sends — including edits such as backspace, Ctrl-U or Ctrl-C — so [wait\_for\_text](https://libtmux.org/en/dotnet/latest/mcp/tools/wait_for_text/) can tell this pane’s echo apart from real output for a short time afterward.

[All .NET tools](../) · [JSON](../send_keys.json) · [Source](https://github.com/libtmux/libtmux-dotnet/blob/320dc64f4b8b7815842471327a5e6b84a1499bf8/src/LibTmux.Mcp/Policy/CapabilityModel.cs#L597)

## Arguments

* `enter` optional · boolean

  Press Enter after the keys.

  Default: `false`.

* `keys` required · string

  Text or a tmux key name.

* `literal` optional · boolean

  Treat keys as literal text.

  Default: `true`.

* `paneId` optional · string | null

  A pane id. Omit for the active pane.

  Default: `null`.

* `suppressHistory` optional · boolean

  Keep text out of shell history on a best-effort basis.

  Default: `false`.

## Schemas

The schema defines required fields, nested values, defaults, and validation constraints.
