# LibTmux::Client

- **Package:** LibTmux
- **Language:** Raku
- **Kind:** module
- **Source:** https://github.com/libtmux/libtmux-raku/blob/e76160bcce6e03976d49424da15b7c31afb2c68e/lib/LibTmux/Client.rakumod#L4
- **Page:** https://libtmux.org/en/raku/latest/reference/libtmux-client/

# Client commands

ClientTarget retains endpoint and daemon identity values only. Each operation
lists clients and checks the observed name, process ID and creation time before
dispatch. tmux exposes no permanent client ID: disconnect and name reuse between
this check and the command remain possible. The daemon fence does not make that
check atomic. A client target never silently selects a current client.
The read-only toggle follows tmux's paired read-only/ignore-size flag behavior;
it retains the observed session and suppresses environment updates.

Pane-context UI methods require an explicit pane belonging to the client's
current session. This avoids [display-message](/en/tmux/latest/manual/display-message/)'s missing-target fallback. Pane
modes are shared by every client viewing that pane, not private UI state.

Menu, prompt, popup and pane-number methods return Promises and require an
explicit timeout in milliseconds. Human interaction may outlast that budget.
Cancellation or timeout stops the command client; it does not retract an overlay
or command already submitted. Use close-popup explicitly when appropriate.
Results describe command completion, not rendered pixels or a human response.

Literal messages disable FORMAT and strftime interpolation. tmux display styles
still apply. Menu labels retain display styles and leading-minus disabled-entry
semantics. CommandTemplate deliberately exposes tmux template syntax and percent
substitutions; it is never compiled as Raku. Popup shell-command deliberately
requests shell execution. Other commands use argv and the shared tmux encoder.

## Members

### Other members

- [`ClientTarget`](/en/raku/latest/reference/libtmux-client-clienttarget/) (class): A value-only client target. No subprocess or connection is retained.
- [`CommandTemplate`](/en/raku/latest/reference/libtmux-client-commandtemplate/) (class): Explicit tmux command-template syntax, including percent substitutions.
- [`MenuItem`](/en/raku/latest/reference/libtmux-client-menuitem/) (class): A menu entry. Empty labels are separators; labels retain tmux display styles.
