kitten-@-select-window(1)
π kitten-@-select-window
okay so bestie, real talk β this is the kitten-@-select-window page from the kitten manual, and it's genuinely one of the cutest little commands in the whole remote-control lineup. it's literally just: point at a window, click, done. let me walk you through it π«Ά
β¨ NAME β¨
kitten-@-select-window β visually select a window in the specified tab π
like, with your eyes. and your hands. and a mouse. iconique.
π USAGE π
kitten @ select-window
that's it, that's the whole vibe. no extra args needed, she's low-maintenance π
π¦ DESCRIPTION π¦
so what actually happens? it prints out the id of the selected window. that's the entire personality.
and the reason that slaps so hard is that other commands can then be chained to make use of it β you grab the id, you pipe it into something else, and suddenly you've got yourself a whole little workflow. main character energy fr fr β¨
π OPTIONS π
okay this is the long part, grab a snack π
--match,-mβ the tab to match. match specs look likefield:query, wherefieldcan be one of:id,index,title,window_id,window_title,pid,cwd,cmdline env,var,state,sessionandrecent.queryis the thing you're matching against β and it can be either a number or a regular expression, and you can combine them using Boolean operators. spicy π₯
the special value all matches all tabs. yes, all of them. every last one.
for the numeric fields β id, index, window_id, pid and recent β the expression gets interpreted as a number, not as a regex. and plot twist: negative values for id/window_id match from the highest id number down, and in particular, -1 is the most recently created tab/window. so -1 is basically "the baby of the family" π
when you use title or id, the command first looks for a matching tab, and if it doesn't find one it looks for a matching window β and then uses the tab that window lives in. sneaky but fair.
you can also use window_id and window_title to match the tab that contains the window with that id or title. nesting doll realness πͺ
the index number matches the nth tab in the currently active OS window. and recent matches recently active tabs in the currently active OS window, where 0 is the currently active tab, 1 is the previously active tab, and so on. a little walk down memory lane πΈ
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 session or the last active session when no session is active. three little magic strings, iykyk β¨
when you're 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 get matched. similarly, var matches tabs containing any window with the specified user variable. same energy, different field π
the field state 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. and focused_os_window matches all tabs in the currently focused OS window. very demure, very mindful π
--response-timeout [=60]β the time in seconds to wait for the user to select a window. default is60, so if you walk away mid-pick that's on you bestie π--self [=no]β select a window from the tab containing the window this command is run in, instead of the active tab. defaults tono. self-centered in the best way π--titleβ a title that will be displayed to the user to describe what this selection is for. like a little label on your little picker. so thoughtful π--exclude-active [=no]β exclude the currently active window from the list of windows to pick. defaults tono. no repeats, we respect the current main character π--reactivate-prev-tab [=no]β when the selection is finished, the tab in the same OS window that was activated before the selection will be reactivated. the last activated OS window will also be refocused. defaults tono. it's giving "put it back the way you found it" π§--help,-h [=no]β show help for this command. defaults tono. iconic behaviour honestly β
π GLOBAL OPTIONS π
these bad boys apply across the board, not just to this one command. big "applies to the whole friend group" energy π«Ά
--toβ an address for the kitty instance to control. corresponds to the address given to the kitty instance via the--listen-onoption or thelisten_onsetting inkitty.conf. if not specified, the environment variableKITTY_LISTEN_ONis checked. and if that's 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. so don't be shocked when it doesn't work outside, bestie π--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 inkitty.conf. to use a blank password, specify--use-passwordasalways. consent is key π--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. usefd:numto read from the file descriptornum. used if no--passwordis supplied. defaults to checking for therc-passfile in the kitty configuration directory. file-based, lowkey elegant π--password-env [=KITTY_RC_PASSWORD]β the name of an environment variable to read the password from. used if no--password-fileis supplied. defaults to checking the environment variableKITTY_RC_PASSWORD. environ- girlies rise π±--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 toalwaysorneveruse the supplied password. if set toalwaysand no password is provided, the blank password is used.
choices: if-available, always, never. pick your fighter π
β οΈ quick vibe check: those last few password options are literally about access control, so don't go setting --use-password=always with a blank password unless you actually, genuinely, fr fr mean it. kitty is trusting you here π
and that's the whole page, bestie!! you know it, you love it, you're gonna go select some windows with it πβ¨
kitten Manual β version 0.49.2 β dated Oct 01, 2026 π¦ that's the source, the version and the date all wrapped up in a bow π mwah, go forth and select π
π¦ where this page comes from
- arch rolling: kitty 0.49.2-1 Β· GPL-3.0-only
- nixpkgs unstable: kitty-bin 0.49.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms