kitten-@-signal-child(1)

πŸ’… kitten-@-signal-child β€” like, the remote control manual, but make it make sense

okay so bestie, this is page one of the kitten Manual β€” it's kitten-@-signal-child(1) and it's literally about poking the foreground process in a window and being like "hey, handle this signal bestie ✨". Stay with me, it's actually so good.


🌸 NAME 🌸

kitten-@-signal-child β€” slide a signal over to the foreground process in whatever windows you pick πŸŽ€


✨ USAGE ✨

kitten @ signal-child  [SIGNAL_NAME ...]

that's it. that's the whole vibe. [SIGNAL_NAME ...] is optional (more on that in a sec πŸ‘€).


πŸ¦‹ DESCRIPTION πŸ¦‹

so you send one or more signals to the foreground process in the windows you specify. that's the whole job and it does it flawlessly, no cap πŸ’…

if you use the --match option, the signal gets sent to all the matched windows. if you don't, only the active window is affected (default behaviour, main character energy only for the window that's actually up front πŸ‘‘).

and if you don't specify any signals at all? SIGINT gets sent by default. surprise! it's giving "I didn't ask but okay" 😭

you can also map signal_child to a shortcut in kitty.conf, like this:

map f1 signal_child SIGTERM

obsessed. f1 = instant SIGTERM. periodt πŸ”₯


🌈 OPTIONS 🌈

  • --no-response [=no] β€” don't wait around for a response telling you the action succeeded. so chill, so efficient ✨ but like. heads up: using this means you won't be notified of failures. it's giving "ignorance is bliss" and honestly, valid, but be aware πŸ™ˆ
  • --match, -m β€” the window(s) you're matching. this one is the big one so buckle up bestie, the specs get detailed 🫢

Match specifications look like this: field:query. and field can be one of: id, title, pid, cwd, cmdline, num, env, var, state, neighbor, session and recent. query is the expression you're matching β€” it can be a number or a regular expression, and you can combine expressions using Boolean operators. slay πŸŽ€

the special value all matches all windows. literally all of them. every single one πŸ’€

for the numeric fields: id, pid, num and recent, the expression is interpreted as a number, not a regular expression. and 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 (which is the same as the order in which the windows are reported by the kitten @ ls command). clockwise! like a little circle of windows 🌸

the window id of the current window is available as the KITTY_WINDOW_ID environment variable. handy πŸ’–

the field recent refers to recently active windows in the currently active tab β€” zero being the currently active window, one being the previously active window, and so on down the line ⭐

the field neighbor refers to a neighbor of the active window in the specified direction, which can be: left, right, top or bottom. directionally iconic πŸ¦‹

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, . to match the currently active session, and ~ to match either the currently active session or the last active session when no session is active πŸ‘‘

when you're using the env field to match on environment variables, you can specify just 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, same 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, focused_os_window, self, overlay_parent.

  • active windows are the windows that are active in their parent tab.
  • there is only one focused window and it's the window to which keyboard events are delivered. if no window is focused, the last focused window is matched.
  • focused_os_window matches all windows in the currently focused OS window.
  • self matches the window in which the remote control command is run.
  • overlay_parent matches the window that is under the self window, when the self window is an overlay.

ngl, you can use the kitten @ ls command to get a list of windows if you need to peek at what's out there first πŸ‘€

  • --help, -h [=no] β€” show help for this command. the classic. the goat. when in doubt, -h πŸŽ€

πŸ’… GLOBAL OPTIONS πŸ’…

these are the ones that apply across the board, so pay attention bestie 🫢

  • --to β€” an address for the kitty instance to control. it corresponds to the address you gave the kitty instance via the --listen-on option, or the listen_on setting in kitty.conf. if it's not specified, the environment variable KITTY_LISTEN_ON gets checked. and if that's also not found, messages are sent to the controlling terminal for this process β€” meaning they'll only work if this process is run within a kitty window. so like, no kitty window, no vibes 😭
  • --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 to read the password from. 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. this is 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 forces 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 ✨

heads up bestie: if you're going the --use-password=always route with no password, it's literally just the blank password. that's the deal, no cap πŸ’€

okay that's the whole page, you ate it up πŸ’…βœ¨ go forth and signal responsibly β€” and remember, if you don't pass a signal, it's SIGINT whether you planned for it or not 😭🫢

β€” with love, from the kitten Manual, version 0.49.2, dated Oct 01, 2026** πŸŽ€

πŸ“¦ where this page comes from