# session.Session.cmd

- **Module:** session.Session
- **Package:** libtmux
- **Language:** Rust
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-rs/blob/8a648c0894dfffc9303583f753b6c8ae01f2fe76/crates/libtmux/src/session.rs#L611
- **Page:** https://libtmux.org/reference/rs/session-session-cmd/

```
session.Session.cmd(self, command: Command) -> Result<CommandResult, Error>
```

Run a raw tmux command against this session.

The escape hatch for anything this crate does not wrap. `-t` is placed
after the subcommand for you, because tmux stops reading flags at the
first positional: a target appended after one is taken as text, and the
command then succeeds having acted on something else.

A non-zero exit status comes back in the [`CommandResult`] rather than
as an error, the same as [`crate::Server::cmd`].

# Errors

Returns an error when the process cannot be started, captured, or
awaited.

## Example

```rust
let guard = libtmux::test::TestServer::new().await?;
let session = guard.server().new_session("raw").await?;

let result = session
    .cmd(libtmux::Command::new("display-message").arg("-p").arg("#{session_name}"))
    .await?;
assert_eq!(result.stdout_lossy().trim(), "raw");

guard.shutdown().await?;
```
