# LibTmux.Codec

- **Module:** LibTmux
- **Package:** libtmux
- **Language:** Elixir
- **Kind:** module
- **Source:** https://github.com/libtmux/libtmux-elixir/blob/66b9b1c3f3f3186428abdfda2c76f5cf87446710/lib/libtmux/codec.ex#L1
- **Page:** https://libtmux.org/en/elixir/latest/reference/libtmux-codec/

Decodes bounded field responses and control-output bytes.

A field response contains one free-form field and one framing newline.
The default raw mode removes only its framing newline and requires a
separately qualified raw source. Use `encoding: :escaped_v1` for output
produced by `LibTmux.Format.field/1`, including tmux 3.4's print path.
This is a conservative response codec, not a multi-field row codec.

## Members

### Common operations

- [`decode_field/3`](/en/elixir/latest/reference/libtmux-codec-decode_field-3/) (function): Removes one framing newline and validates the complete field value.

### Other members

- [`decode_output/2`](/en/elixir/latest/reference/libtmux-codec-decode_output-2/) (function): Decodes tmux's three-digit octal output escapes as bytes.
- [`field_option/0`](/en/elixir/latest/reference/libtmux-codec-field_option-0/) (typealias): Field framing and value validation options; min and max apply only to integer fields.
- [`field_type/0`](/en/elixir/latest/reference/libtmux-codec-field_type-0/) (typealias): The required decoded field category; string additionally requires valid UTF-8.
