# libtmux:show-options

- **Package:** libtmux
- **Language:** Common Lisp
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-lisp/blob/c2e5fc4ed3befda21f45dfa5d5868c38fd138311/src/configuration-acquisition.lisp#L310
- **Public owner:** libtmux
- **Page:** https://libtmux.org/en/lisp/latest/reference/libtmux-show-options/

```
(show-options client &key scope target (names nil names-p) (include-inherited t) cancel-token timeout output-limit (record-limit 4096) (value-limit 1048576))
```

Acquire decoded options; return owned record and native read-outcome vectors.
SCOPE and TARGET follow SET-OPTION. Omitted NAMES enumerates registered built-in
non-hook names in source order; explicit finite lists/vectors preserve requested
order and duplicates, including user names. At most 4096 names of at most 1 MiB
UTF-8 each are accepted, independently of RECORD-LIMIT. Explicit NIL/#() performs
no I/O after argument validation.
Each plist has :NAME, :SCOPE, :TARGET-ID, :VERSION, :TYPE, :ARRAY-P, :PRESENT-P,
:VALUE, :SOURCE-SCOPE, :SOURCE-TARGET-ID and :INHERITED-P. A present false flag
has NIL value and true presence. Arrays are vectors of (key-text . typed-value)
pairs, including sparse and supported string keys; empty arrays are present.
INCLUDE-INHERITED defaults true: use explicit ancestor tables only after local
absence and recheck every shadowing absence. Observations span an interval,
not a transaction. Read hooks can run again during bounded consistency retries.
One lease, token, deadline and aggregate byte/record budget covers all reads.
RECORD-LIMIT counts decoded rows/negative observations, including rechecks.
VALUE-LIMIT bounds each decoded UTF-8 value. Preparation and cleanup add wall time.
The ordinary printer must match its known schema; unrelated after-read output
signals a decoding failure. This assumes trusted native output, not per-leaf
origin authentication. Raw SHOW-OPTIONS-TEXT preserves unrestricted inspection.
Every requested name has a record even when absent. Read outcomes retain native
failures for expected missing names; this does not prove later hooks succeeded.
Records contain no operational handle; strings/containers own their storage.

See also: `libtmux:configuration-read-failed`, `libtmux:show-hooks`, `libtmux:show-option`, `libtmux:show-options-text`.

## Parameters

- `client`
- `scope?`
- `target?`
- `names?`
- `include-inherited?`
- `cancel-token?`
- `timeout?`
- `output-limit?`
- `record-limit?`
- `value-limit?`

## Guides

Pages that discuss `show-options`.

- [Explicit operations](/en/lisp/latest/guides/operations/)
