Provided by: kitty_0.43.1-1_amd64 bug

Name

       kitten-@-send-key - Send arbitrary key presses to the specified windows

Usage

       kitten @ send-key  [KEYS TO SEND ...]

Description

       Send  arbitrary  key presses to specified windows. All specified keys are sent first as press events then
       as release events in reverse order. Keys are sent to the programs running in the windows. They  are  sent
       only  if  the  current  keyboard  mode for the program supports the particular key. For example: send-key
       ctrl+a ctrl+b. Note that errors are not reported, for technical reasons,  so  send-key  always  succeeds,
       even if no key was sent to any window.

Options

       --match, -m
              The window to match. Match specifications are of the form: field:query. Where field can be one of:
              id,  title,  pid,  cwd,  cmdline, num, env, var, state, neighbor, session and recent. query is the
              expression to match. Expressions can be either a number  or  a  regular  expression,  and  can  be
              combined using Boolean operators.

              The special value all matches all windows.

              For  numeric  fields:  id,  pid,  num and recent, the expression is interpreted as a number, not a
              regular expression. Negative values for id match from the highest id number down,  in  particular,
              -1 is the most recently created window.

              The  field  num  refers to the window position in the current tab, starting from zero and counting
              clockwise (this is the same as the order in which the windows are reported  by  the  kitten  @  ls
              command).

              The window id of the current window is available as the KITTY_WINDOW_ID environment variable.

              The  field  recent  refers to recently active windows in the currently active tab, with zero being
              the currently active window, one being the previously active window and so on.

              The field neighbor refers to a neighbor of the active window in the specified direction, which can
              be: left, right, top or bottom.

              The field session matches windows that were created in the specified session. Use  the  expression
              ^$ to match windows that were not created in a session and . to match the currently active session
              and  ~  to match either the currently active sesison or the last active session when no session is
              active.

              When using the env field to match on environment variables, you can specify only  the  environment
              variable name or a name and value, for example, env:MY_ENV_VAR=2.

              Similarly, the var field matches on user variables set on the window. You can specify name or name
              and value as with the env field.

              The  field  state  matches  on  the  state  of  the window. Supported states are: active, focused,
              needs_attention, parent_active, parent_focused, self,  overlay_parent.   Active  windows  are  the
              windows that are active in their parent tab. There is only one focused window and it is the window
              to  which  keyboard  events  are  delivered.  If  no window is focused, the last focused window is
              matched. The value self matches the window in which the remote control command is run.  The  value
              overlay_parent  matches  the  window  that  is  under  the self window, when the self window is an
              overlay.

              Note that you can use the kitten @ ls command to get a list of windows.

       --match-tab, -t
              The tab to match. Match specifications are of the form: field:query. Where field can  be  one  of:
              id,  index, title, window_id, window_title, pid, cwd, cmdline env, var, state, session and recent.
              query is the expression to match. Expressions can be either a number or a regular expression,  and
              can be combined using Boolean operators.

              The special value all matches all tabs.

              For  numeric  fields:  id,  index,  window_id,  pid and recent, the expression is interpreted as a
              number, not a regular expression. Negative values for  id/window_id  match  from  the  highest  id
              number down, in particular, -1 is the most recently created tab/window.

              When  using title or id, first a matching tab is looked for, and if not found a matching window is
              looked for, and the tab for that window is used.

              You can also use window_id and window_title to match the tab that contains  the  window  with  the
              specified id or title.

              The index number is used to match the nth tab in the currently active OS window. The recent number
              matches  recently  active  tabs  in  the currently active OS window, with zero being the currently
              active tab, one the previously active tab and so on.

              The field session matches tabs that were created in the specified session. Use the  expression  ^$
              to  match  windows  that were not created in a session and . to match the currently active session
              and ~ to match either the currently active sesison or the last active session when no  session  is
              active.

              When  using  the env field to match on environment variables, you can specify only the environment
              variable name or a name and value, for example, env:MY_ENV_VAR=2. Tabs containing any window  with
              the specified environment variables are matched. Similarly, var matches tabs containing any window
              with the specified user variable.

              The  field  state  matches  on  the  state  of  the  tab.  Supported  states are: active, focused,
              needs_attention, parent_active and parent_focused. Active tabs are the tabs  that  are  active  in
              their  parent  OS window. There is only one focused tab and it is the tab to which keyboard events
              are delivered. If no tab is focused, the last focused tab is matched.

              Note that you can use the kitten @ ls command to get a list of tabs.

       --all [=no]
              Match all windows.

       --exclude-active [=no]
              Do not send text to the active window, even if it is one of the matched windows.

       --help, -h [=no]
              Show help for this command

Global options

       --to   An address for the kitty instance to control. Corresponds  to  the  address  given  to  the  kitty
              instance  via the --listen-on option or the listen_on setting in kitty.conf. If not specified, the
              environment variable KITTY_LISTEN_ON is checked. If that is also not found, messages are  sent  to
              the  controlling terminal for this process, i.e. they will only work if this process is run within
              a kitty window.

       --password
              A password to use when contacting kitty. This will cause kitty to ask the user for  permission  to
              perform the specified action, unless the password has been accepted before or is pre-configured in
              kitty.conf. To use a blank password specify --use-password as always.

       --password-file [=rc-pass]
              A  file  from  which  to  read  the  password.  Trailing whitespace is ignored. Relative paths are
              resolved from the kitty configuration directory. Use - to read from STDIN. Use fd:num to read from
              the file descriptor num. Used if no --password is supplied. Defaults to checking for  the  rc-pass
              file in the kitty configuration directory.

       --password-env [=KITTY_RC_PASSWORD]
              The  name  of  an  environment  variable  to read the password from. Used if no --password-file is
              supplied. Defaults to checking the environment variable KITTY_RC_PASSWORD.

       --use-password [=if-available]
              If no password is available, kitty will usually just send the remote  control  command  without  a
              password. This option can be used to force it to always or never use the supplied password. If set
              to always and no password is provided, the blank password is used.

              Choices: if-available, always, never

0.43.1                                            Oct 18, 2025                              kitten-@-send-key(1)