# io.github.libtmux.transport.CommandRequest.CommandRequest

- **Module:** io.github.libtmux.transport.CommandRequest
- **Package:** io.github.libtmux:libtmux
- **Language:** Java
- **Kind:** struct
- **Source:** https://github.com/libtmux/libtmux-java/blob/c3517519ee799428a809ce6deb1708c8be289cd1/libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java#L29
- **Page:** https://libtmux.org/reference/java/io-github-libtmux-transport-commandrequest-commandrequest/

One tmux invocation: how to reach the server, then the commands to run there.

<p>Commands are held literally. tmux ends a command at an argument whose last byte is {@code ;},
so a value ending in one would otherwise be truncated with no error; a transport encodes for the
parser it feeds, and {@link #commands()} answers with what the caller meant.

<p>The timeout rides on the request instead of the transport because the same server serves both
a listing that should answer immediately and an attach that never returns.

## Members

- `of` (method) — A request for one command, which is every request but a batch.
- `commandLine` (method) — The full argv to hand a process builder, encoded for tmux's own argv parser.
- `toString` (method) — Counts only. Commands carry pane content and socket paths, and this value reaches log lines and failed assertions.
