# tmux_capability

- **Package:** libtmux_erlang
- **Language:** Erlang
- **Kind:** module
- **Source:** https://github.com/libtmux/libtmux-erlang/blob/d1b6308440cf9eb8f6647e7ae434bce60e849368/apps/libtmux_erlang/src/tmux_capability.erl#L1
- **Page:** https://libtmux.org/en/erlang/latest/reference/tmux_capability/

Look up source-derived native command declarations and feature minimums.

`commands/1` and `command/2` describe the exact source profiles in `profiles/0`.
Profiles cover every release in the supported tmux 3.3a–3.8 range. They do not
contact tmux, interpret its arguments or qualify another build.
Canonical command names are lookup keys; aliases remain metadata. A native
declaration does not mean this library provides a typed facade for it. Use
`tmux_command:raw/2` for an explicit trusted command.

`describe/1` reports selected native feature minimums. `require/2` compares a
parsed version with one of those minimums; it does not perform I/O or dispatch
the command. Numeric minimum checks also accept uncatalogued and tracking
versions, preserving the distinction from exact parser discovery. They do not
establish runtime or CI qualification. Use `tmux_server:version/1` to obtain the
version captured by a registered endpoint.

The [generated reference](commands-reference.md) records source profiles and
parser declarations. Maintaining the catalogue needs a tmux source checkout;
installed consumers use compiled data and OTP only.

## Members

### Common operations

- [`command/2`](/en/erlang/latest/reference/tmux_capability-command-2/) (function): Look up one canonical native command in an exact source profile. Returns unknown_command for aliases or unknown names, unsupported_command when a known command is absent from that profile, and unsupported_command_catalogue for uncatalogued or tracking versions. Performs no I/O.
- [`require/2`](/en/erlang/latest/reference/tmux_capability-require-2/) (function): Require a native feature's numeric major/minor floor without dispatching I/O. An older version returns unsupported_capability with capability and minimum. Patch letters and tracking markers do not promote an older minor version. Unknown features and malformed parsed versions return distinct errors.

### Other members

- [`command_info/0`](/en/erlang/latest/reference/t-tmux_capability-command_info-0/) (typealias): Native alias, flag declaration and positional bounds, with the exact source file, commit and SHA-256. none means no alias or an unbounded positional upper limit. Additional argument callbacks and runtime checks remain tmux's concern.
- [`commands/1`](/en/erlang/latest/reference/tmux_capability-commands-1/) (function): Return sorted canonical command names for an exact catalogued stable version. Tracking and uncatalogued versions return unsupported_command_catalogue. This is pure source discovery; it does not execute list-commands.
- [`describe/1`](/en/erlang/latest/reference/tmux_capability-describe-1/) (function): Return a selected native feature's source-derived minimum and sampled profiles. Unknown features return unknown_capability. Performs no I/O; `require/2` applies the minimum to a parsed version.
- [`feature_info/0`](/en/erlang/latest/reference/t-tmux_capability-feature_info-0/) (typealias): Source-sampled profiles, native commands, description and numeric minimum.
- [`feature/0`](/en/erlang/latest/reference/t-tmux_capability-feature-0/) (typealias): Selected native capabilities; these do not introduce new typed command options.
- [`profiles/0`](/en/erlang/latest/reference/tmux_capability-profiles-0/) (function): List the exact source profile names in catalogue order. Performs no I/O.

## Guides

Pages that discuss `tmux_capability`.

### Guides

- [Native API documentation](/en/erlang/latest/guides/api-documentation/)

### Reference

- [Command capabilities](/en/erlang/latest/reference/commands/)
