# libtmux::CommandReport

- **Module:** libtmux
- **Package:** libtmux-cxx
- **Language:** C++
- **Kind:** struct
- **Source:** https://github.com/libtmux/libtmux-cxx/blob/393d4b0ad666f18a6581f1eb281741a75a7503f0/include/libtmux/command.hpp#L214
- **Page:** https://libtmux.org/en/cxx/latest/reference/libtmux-commandreport/

Told about every command, as it finishes.

There is otherwise no way to see what this library ran: a caller debugging a tmux interaction has only the failures, and nothing at all when things succeed. The command is rendered as tmux received it, with any argument marked sensitive replaced.

Synchronous calls invoke it on their caller's thread. Asynchronous calls invoke it only on the thread calling `CommandRuntime::dispatch_ready`. No internal lock is held; a shared observer must synchronise itself.

## Members

- `command` (attribute): As tmux received it, with any argument marked sensitive replaced.
- `argv` (attribute): The same command unrendered, for a caller building structured telemetry rather than a line of text.
- `failure` (attribute): Nothing when the command succeeded.
- `elapsed` (attribute): How long the command took, measured around its dispatch.
