Core Library0.xAPI Reference

Choose documentation 3

latest

Current version

latest
English

Early release libtmux is released, and its APIs may still change between releases. This site's structure and URLs may change too.

method libtmux latest

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
Perl Erlang PowerShell Julia Elixir Haskell Common Lisp Ruby Lua TypeScript RustGo Java C# C++ Swift Kotlin Scala OCaml F# Clojure
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#

The tmux commands behind command_prompt.

tmux C API#

The C declarations in tmux that implement these commands.

In other ports#

Ask a client for input and run a command with it

Equivalents of Ask a client for input and run a command with it in other languages
Language Equivalent
Haskell No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing.
TypeScript no equivalent on Server
Rust server.Server.command_prompt
Go tmux.Server.CommandPrompt
Java no equivalent on Server
C# LibTmux.Server.ShowCommandPromptAsync
C++ no equivalent on Server
Swift no equivalent on Server
OCaml No direct public OCaml equivalent is recorded for this operation.
Perl No dedicated equivalent in the selected Perl surface. Explicit Server::cmd remains available for native tmux commands.

No equivalent is recorded in Ruby, Lua, PowerShell, Julia, Erlang, Elixir, Common Lisp, Clojure, Kotlin, Scala or F#.

Esc

Type to search.

Reference previewOpen reference