libtmux Reference MCP Search
On this page

libtmux.Server.command_prompt

View as Markdown

Module
libtmux
Declared in
Server
Package
libtmux
Source
src/libtmux/server.py
command_prompt
( 14 parameters ) ( self , template : str , prompt : str | None = None , inputs : str | None = None , target_client : str | None = None , one_key : bool | None = None , key_only : bool | None = None , on_input_change : bool | None = None , numeric : bool | None = None , prompt_type : t.Literal["command", "search", "target", "window-target"] | None = None , expand_format : bool | None = None , literal : bool | None = None , bspace_exit : bool | None = None , no_freeze : bool | None = None )
None
method [source]
method [source]
command_prompt

Open a command prompt via $ tmux command-prompt.

Always uses -b (background) to avoid blocking the command queue. Use send-keys -K -c <client> to type into the prompt and submit.

Requires tmux 3.3+ for -b flag support.

Examples

Interactive prompts require tmux 3.4+; the wrapper itself works on 3.3+ but the send-keys -K -c <client> round-trip used here is unreliable on 3.3a:

>>> from libtmux.common import has_gte_version
>>> if has_gte_version("3.4"):
...     with control_mode() as ctl:
...         server.command_prompt(
...             "set -g @cp_test '%1'",
...             target_client=ctl.client_name,
...         )
...         for key in ['h', 'i', 'Enter']:
...             _ = server.cmd('send-keys', '-K', '-c', ctl.client_name, key)
...         result = server.cmd('show-options', '-gv', '@cp_test').stdout[0]
... else:
...     result = 'hi'
>>> result
'hi'
Parameters
  • template ( str ) – Tmux command template. Use %1, %2 for prompt values.

  • prompt ( str | None ) – Custom prompt text (-p flag). Commas separate multiple prompts.

  • inputs ( str | None ) – Pre-fill prompt input (-I flag). Commas separate multiple.

  • target_client ( str | None ) – Target client (-t flag).

  • one_key ( bool | None ) – Accept only one key press (-1 flag).

  • key_only ( bool | None ) – Only accept key presses, not text (-k flag).

  • on_input_change ( bool | None ) – Run template on each keystroke (-i flag).

  • numeric ( bool | None ) – Accept only numeric input (-N flag).

  • prompt_type ( t.Literal["command", "search", "target", "window-target"] | None ) – Prompt type (-T flag).

  • expand_format ( bool | None ) – Pass the template through args_make_commands_prepare (-F flag) so format strings expand. Requires tmux 3.3+.

  • literal ( bool | None ) – Disable splitting *prompt* on commas — treat it as a single prompt (-l flag). Requires tmux 3.6+.

  • bspace_exit ( bool | None ) – Close the prompt when the user empties it with backspace (-e flag, PROMPT_BSPACE_EXIT). Requires tmux 3.7+ (upstream master).

  • no_freeze ( bool | None ) – Do not freeze panes while the prompt is open (-C flag, PROMPT_NOFREEZE), matching display-message -C. Requires tmux 3.7+; warns and is ignored on older tmux.

0 declared, 0 inherited

Esc

Type to search.