# tmux choose-client

Source: https://libtmux.org/en/tmux/latest/manual/choose-client/

> Put a pane into client mode, allowing a client to be selected interactively from a list.

Put a pane into client mode, allowing a client to be selected interactively from a list.

## Syntax

```tmux-usage
tmux choose-client [-NrZ] [-F format] [-f filter] [-K key-format] [-O sort-order] [-t target-pane] [template]
```

## Behavior

Put a pane into client mode, allowing a client to be selected interactively from a list. Each client is shown on one line. A shortcut key is shown on the left in brackets allowing for immediate choice, or the list may be navigated and an item chosen or otherwise manipulated using the keys below. `-Z` zooms the pane. `-y` disables any confirmation prompts. The following keys may be used in client mode:

|                                                                   |                                                                          |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------ |
| [**Key**](https://libtmux.org/en/tmux/latest/manual/full/#Key)    | [**Function**](https://libtmux.org/en/tmux/latest/manual/full/#Function) |
| [`Enter`](https://libtmux.org/en/tmux/latest/manual/full/#Enter)  | Choose selected client                                                   |
| [`Up`](https://libtmux.org/en/tmux/latest/manual/full/#Up)        | Select previous client                                                   |
| [`Down`](https://libtmux.org/en/tmux/latest/manual/full/#Down)    | Select next client                                                       |
| `C-s`                                                             | Search by name                                                           |
| [`n`](https://libtmux.org/en/tmux/latest/manual/full/#n)          | Repeat last search forwards                                              |
| [`N`](https://libtmux.org/en/tmux/latest/manual/full/#N~2)        | Repeat last search backwards                                             |
| [`t`](https://libtmux.org/en/tmux/latest/manual/full/#t)          | Toggle if client is tagged                                               |
| [`T`](https://libtmux.org/en/tmux/latest/manual/full/#T~2)        | Tag no clients                                                           |
| `C-t`                                                             | Tag all clients                                                          |
| [`d`](https://libtmux.org/en/tmux/latest/manual/full/#d)          | Detach selected client                                                   |
| [`D`](https://libtmux.org/en/tmux/latest/manual/full/#D~2)        | Detach tagged clients                                                    |
| [`x`](https://libtmux.org/en/tmux/latest/manual/full/#x)          | Detach and HUP selected client                                           |
| [`X`](https://libtmux.org/en/tmux/latest/manual/full/#X)          | Detach and HUP tagged clients                                            |
| [`z`](https://libtmux.org/en/tmux/latest/manual/full/#z)          | Suspend selected client                                                  |
| [`Z`](https://libtmux.org/en/tmux/latest/manual/full/#Z)          | Suspend tagged clients                                                   |
| [`f`](https://libtmux.org/en/tmux/latest/manual/full/#f~2)        | Enter a format to filter items                                           |
| [`O`](https://libtmux.org/en/tmux/latest/manual/full/#O)          | Change sort order                                                        |
| [`r`](https://libtmux.org/en/tmux/latest/manual/full/#r)          | Reverse sort order                                                       |
| [`v`](https://libtmux.org/en/tmux/latest/manual/full/#v~2)        | Toggle preview                                                           |
| [`F1 or C-h`](https://libtmux.org/en/tmux/latest/manual/full/#F1) | Display help                                                             |
| [`q`](https://libtmux.org/en/tmux/latest/manual/full/#q)          | Exit mode                                                                |

After a client is chosen, ‘`%%`’ is replaced by the client name in `template` and the result executed as a command. If `template` is not given, "detach-client -t '%%'" is used.

`-O` specifies the initial sort order: one of ‘`name`’, ‘`size`’, ‘`creation`’ (time), or ‘`activity`’ (time). `-r` reverses the sort order. `-f` specifies an initial filter: the filter is a format - if it evaluates to zero, the item in the list is not shown, otherwise it is shown. If a filter would lead to an empty list, it is ignored. `-F` specifies the format for each item in the list and `-K` a format for each shortcut key; both are evaluated once for each line. `-N` starts without the preview or if given twice with the larger preview. This command works only if at least one client is attached.

## C implementation

Internal declarations in tmux 3.7c:

* [`cmd_choose_client_entry`](https://libtmux.org/en/tmux/latest/reference/c-variable-cmd_choose_client_entry/)
* [`cmd_choose_tree_exec`](https://libtmux.org/en/tmux/latest/reference/c-function-cmd-choose-tree-c-cmd_choose_tree_exec/)

## Use from a library

Each API describes its own defaults, errors and execution model.

* [Python](https://libtmux.org/en/py/latest/reference/libtmux-pane-choose_client/)
* [Go](https://libtmux.org/en/go/latest/reference/tmux-pane-chooseclient/)
* [C#](https://libtmux.org/en/csharp/latest/reference/libtmux-pane-chooseclientasync/)

tmux sources and license

Syntax comes from `tmux 3.7c list-commands`. See the [global options](https://libtmux.org/en/tmux/latest/manual/full/#DESCRIPTION) for sockets and configuration, and [command syntax and targets](https://libtmux.org/en/tmux/latest/manual/full/#COMMANDS).

Behavior is taken from the [tmux 3.7c manual](https://github.com/tmux/tmux/blob/79072dd1a9f5fb437a5859e362a496fd57ec0981/tmux.1).

[Command declaration](https://github.com/tmux/tmux/blob/79072dd1a9f5fb437a5859e362a496fd57ec0981/cmd-choose-tree.c#L47)

```
Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>

Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
```
