Core LibrarystableAPI Reference

Choose documentation 3

stable

Current version

stable
English

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

Python API

method libtmux stable

Server.command_prompt

Open a command prompt via $ tmux command-prompt.

Source and package
Qualified name
libtmux.Server.command_prompt
Module
libtmux
Declared in
Server
Package
libtmux
Source
src/libtmux/server.py
Other languages
PowerShell Julia Ruby Lua TypeScript RustGo Java C# C++ Swift Kotlin Scala F#
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

Description#

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.

tmux command command-prompt

In other ports Ask a client for input and run a command with it
  • PowerShell
    No source-verified PowerShell equivalent is recorded for this operation.
  • Julia
    No source-verified Julia equivalent is recorded for this operation.
  • Ruby
    No source-verified Ruby equivalent is recorded for this operation.
  • Lua
    No source-verified Lua equivalent is recorded for this operation.
  • TypeScript
    no equivalent on Server
  • Rust
  • Go
  • Java
    no equivalent on Server
  • C#
  • C++
    no equivalent on Server
  • Swift
    no equivalent on Server
  • Kotlin
    No source-verified Kotlin equivalent is recorded for this operation.
  • Scala
    No source-verified Scala equivalent is recorded for this operation.
  • F#
    No source-verified F# equivalent is recorded for this operation.
Esc

Type to search.

Reference preview Open reference