# libtmux:show-environment

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

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

Acquire named raw environment entries; return owned record/outcome vectors.
SCOPE is :GLOBAL or :SESSION; session scope requires a captured TARGET. NAMES
is required; explicit NIL/#() performs no I/O. Native names are nonempty UTF-8
without NUL or =, including names outside the mutation identifier grammar.
Each plist has :NAME, :SCOPE, :TARGET-ID, :VERSION, :STATE and :VALUE. States are
:PRESENT, :REMOVED and :ABSENT. Empty strings remain present. Present/removal
records additionally carry explicit :HIDDEN-P; absent records claim no visibility.
Read ordinary visibility first, then hidden only after empty success. Contradictory
views retry under the original limits. This is not a merged child environment.
Shared limits, ordinary-output assumptions and failure evidence follow SHOW-OPTIONS.

See also: `libtmux:configuration-read-failed`, `libtmux:set-environment`, `libtmux:show-environment-text`, `libtmux:show-options`.

## Parameters

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