kitten-@-new-window(1)

πŸ’… NAME

ok so this is kitten-@-new-window β€” the manual page for the Open new window command, straight out of the kitten manual. buckle up bestie, we're opening windows πŸ’–


✨ USAGE

kitten @ new-window  [CMD ...]

πŸ¦‹ DESCRIPTION

DEPRECATED: use the launch command instead. like, seriously, launch is the main character now πŸ‘‘

okay so what does it do? it opens a new window in the tab you specify 🌸. if you pass the --match option, the first matching tab gets it. otherwise it just uses the currently active tab, no drama. then it prints out the id of the newly opened window (unless you used --no-response, in which case, silence 🀫).

any command line arguments you give it are assumed to be the command line used to run in the new window. if you provide none? the default shell runs. for example:

kitten @ new-window --title Email mutt

πŸŽ€ OPTIONS

  • --match, -m β€” the tab to match 🎯. match specs look like 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 you can combine them using Boolean operators πŸ”₯.

the special value all matches all tabs ✨.

for the 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, so in particular, -1 is the most recently created tab/window πŸ•.

when you use title or id, first a matching tab is looked for, and if that's 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 matches the *n*th tab in the currently active OS window. the recent number matches recently active tabs in the currently active OS window β€” zero is the currently active tab, one is the previously active tab, and so on down the line πŸ’«.

the session field matches tabs 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 using the env field to match on environment variables, you can specify just the environment variable name, or a name and value, like 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 state field matches on the state of the tab. supported states are: active, focused, needs_attention, parent_active, parent_focused and focused_os_window. active tabs are the tabs that are active in their parent OS window. there is only one focused tab, and it's the tab to which keyboard events are delivered ⌨️. if no tab is focused, the last focused tab is matched. the value focused_os_window matches all tabs in the currently focused OS window πŸͺŸ.

ngl, handy tip: you can use the kitten @ ls command to get a list of tabs πŸ“‹
  • --title β€” the title for the new window 🏷️. by default it'll use the title set by the program running in it.
  • --cwd β€” the initial working directory for the new window πŸ“. defaults to whatever the working directory is for the kitty process you're talking to.
  • --dont-take-focus, --keep-focus [=no] β€” keep the current window focused instead of switching to the newly opened window πŸ™ˆ. stay put, bestie.
  • --window-type [=kitty] β€” what kind of window to open. a kitty window or a top-level OS window πŸͺŸ.

choices: kitty, os

  • --new-tab [=no] β€” open a new tab ✨.
  • --tab-title β€” set the title of the tab, when you open a new tab πŸŽ€.
  • --no-response [=no] β€” don't wait for a response giving the id of the newly opened window.
⚠️ heads up: using this option means you will not be notified of failures, and the id of the new window will not be printed out. it's giving ghost mode πŸ‘»
  • --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 it's not specified, the environment variable KITTY_LISTEN_ON is checked. and if that's also not found? messages are sent to the controlling terminal for this process β€” i.e. they'll 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


okay that's literally the whole thing, bestie, you're officially a new-window expert πŸ§šπŸ’œ

kitten manual β€” version 0.49.2, dated Oct 01, 2026 πŸŽ€ slay, go open some windows πŸ¦‹

πŸ“¦ where this page comes from