Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

Python API

Python documentation

libtmux.Server.command_prompt

Python
  • Python
  • Ruby Unavailable
  • Lua Unavailable
  • TypeScript Unavailable
  • Rust
  • Go
  • Java Unavailable
  • .NET
  • C++ Unavailable
  • Swift Unavailable

View as Markdown

Module
libtmux
Declared in
Server
Package
libtmux
Source
src/libtmux/server.py
Other languages
Ruby Lua TypeScript RustGo Java .NET C++ Swift
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.

In other ports Ask a client for input and run a command with it

0 declared, 0 inherited

Esc

Type to search.