# LibTmux::Server::query_panes

- **Module:** LibTmux
- **Package:** LibTmux
- **Language:** Perl
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-perl/blob/352715a4fa66a96eed7763b90daaa536aa2f121d/packages/core/lib/LibTmux/Server.pm#L1002
- **Page:** https://libtmux.org/en/perl/latest/reference/libtmux-server-query_panes/

```
sub query_panes($self, %args)
```

`query_panes(where => criteria|Filter?, pushdown => auto|never|require?, native_filter => string?, on_verification => coderef?)`.

Acquire and return a new [`LibTmux::PaneSelection`](/en/perl/latest/reference/libtmux-paneselection/) in captured physical-pane order. where accepts a hash reference or [`LibTmux::Filter`](/en/perl/latest/reference/libtmux-filter/). auto verifies safe scalar candidates after complete local evaluation; never disables the native comparison. The default auto costs one extra command and supervisor when lowering is available; it does not reduce acquisition. Select never when only the captured answer is needed. require throws [`"Unsupported" in LibTmux::X`](/en/perl/latest/reference/libtmux-x-unsupported/) unless lowering is exact, or [`"QueryMismatch" in LibTmux::X`](/en/perl/latest/reference/libtmux-x-querymismatch/) on disagreement. native_filter is an exclusive expert escape hatch. Empty successful matches remain a typed selection; acquisition/evaluation failures propagate.

`on_verification` receives one detached report hashref in void context after a successful decision, including auto fallback. It runs inline once; its return is ignored and exceptions propagate unchanged unless the operation has already been cancelled. Cancellation suppresses subsequent result/error delivery. Failed queries do not invoke it. Report edits cannot change the returned selection. See [`"VERIFICATION REPORT"`](/en/perl/latest/reference/libtmux-server/#LibTmux%3A%3AServer.section.VERIFICATION%2520REPORT) and [`"explain_panes"`](/en/perl/latest/reference/libtmux-server-explain_panes/).


```perl
    my $panes = $server->query_panes(where => {active => true}, pushdown => 'auto');
```

## Methods

## Parameters

- `args`

## tmux command

The tmux commands behind `query_panes`.

- [`display-message`](/en/tmux/latest/manual/display-message/) (daemon identity or target preflight)
- [`list-clients`](/en/tmux/latest/manual/list-clients/)
- [`list-panes`](/en/tmux/latest/manual/list-panes/) `-a` server scope, [`cmd_list_panes_server`](/en/tmux/latest/reference/c-function-cmd-list-panes-c-cmd_list_panes_server/) (source: `packages/core/lib/LibTmux/Server.pm:955`)
- [`list-sessions`](/en/tmux/latest/manual/list-sessions/)
- [`list-windows`](/en/tmux/latest/manual/list-windows/) `-a` server scope, [`cmd_list_windows_exec`](/en/tmux/latest/reference/c-function-cmd-list-windows-c-cmd_list_windows_exec/) (source: `packages/core/lib/LibTmux/Server.pm:955`)

## tmux C API

The C declarations in tmux that implement these commands.

- [`cmd_display_message_entry`](/en/tmux/latest/reference/c-variable-cmd_display_message_entry/) (attribute)
- [`cmd_display_message_exec`](/en/tmux/latest/reference/c-function-cmd-display-message-c-cmd_display_message_exec/) (function)
- [`cmd_list_clients_entry`](/en/tmux/latest/reference/c-variable-cmd_list_clients_entry/) (attribute)
- [`cmd_list_clients_exec`](/en/tmux/latest/reference/c-function-cmd-list-clients-c-cmd_list_clients_exec/) (function)
- [`cmd_list_panes_entry`](/en/tmux/latest/reference/c-variable-cmd_list_panes_entry/) (attribute)
- [`cmd_list_panes_server`](/en/tmux/latest/reference/c-function-cmd-list-panes-c-cmd_list_panes_server/) (function)
- [`cmd_list_sessions_entry`](/en/tmux/latest/reference/c-variable-cmd_list_sessions_entry/) (attribute)
- [`cmd_list_sessions_exec`](/en/tmux/latest/reference/c-function-cmd-list-sessions-c-cmd_list_sessions_exec/) (function)
- [`cmd_list_windows_entry`](/en/tmux/latest/reference/c-variable-cmd_list_windows_entry/) (attribute)
- [`cmd_list_windows_exec`](/en/tmux/latest/reference/c-function-cmd-list-windows-c-cmd_list_windows_exec/) (function)

## In other ports

Filter every pane with a tmux expression

| Language | Equivalent |
| --- | --- |
| Python | [`libtmux.Server.search_panes`](/en/py/latest/reference/libtmux-server-search_panes/) (method) |
| Ruby | [`LibTmux::Server#search_panes`](/en/ruby/latest/reference/libtmux-server-search_panes/) (method) |
| Lua | [`libtmux.Server:query_panes`](/en/lua/latest/reference/libtmux-server-query_panes/) (method) |
| Haskell | No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing. |
| TypeScript | no equivalent on `Server` |
| Rust | no equivalent on `Server` |
| Go | [`tmux.Server.SearchPanes`](/en/go/latest/reference/tmux-server-searchpanes/) (method) |
| Java | no equivalent on `Server` |
| C# | [`LibTmux.Server.SearchPanesAsync`](/en/csharp/latest/reference/libtmux-server-searchpanesasync/) (method) |
| C++ | no equivalent on `Server` |
| Swift | no equivalent on `Server` |
| OCaml | No direct public OCaml equivalent is recorded for this operation. |

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