# LibTmux.ServerConnectionOptions.Interceptor

- **Module:** LibTmux.ServerConnectionOptions
- **Package:** LibTmux
- **Language:** .NET
- **Kind:** property
- **Source:** https://github.com/libtmux/libtmux-dotnet/blob/320dc64f4b8b7815842471327a5e6b84a1499bf8/src/LibTmux/Connection/TmuxConnectionOptions.cs#L253
- **Page:** https://libtmux.org/en/dotnet/latest/reference/libtmux-serverconnectionoptions-interceptor/

Gets what every tmux invocation on this connection passes through, or null.

It sees each tmux client the connection starts to run a command:
single commands, chains, and the version probe and server discovery a
connection makes first. A control-mode client is one long-lived process
and does not pass through it.

It sees what tmux is asked, which is more than was requested for a
command against a pane, window, session, or one of their tables: two
commands in front check that the server is still the one the handle was
read from. An answer made in tmux's place has to start with that
server's generation line.

A command runs its interceptor inside <see cref="CommandTimeout" /> and
the command's span, so a retry shares both. The version probe and the
discovery a connection makes first are bounded by the same timeout but
are not recorded as commands. An exception the interceptor throws
reaches the caller unchanged. Running a command again repeats whatever
it did; <see cref="LibTmuxException.Dispatch" /> on a failure says
whether tmux may already have acted.
