# tmux.PaneObservation.Reader

- **Module:** tmux.PaneObservation
- **Package:** github.com/libtmux/libtmux-go/tmux
- **Language:** Go
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-go/blob/52968a3181c1c9e6d1b26c565d4b170968ae61c0/tmux/control_observation.go#L453
- **Page:** https://libtmux.org/en/go/latest/reference/tmux-paneobservation-reader/

```
tmux.PaneObservation.Reader(ctx: context.Context) -> io.Reader
```

Reader returns the pane's output after the baseline as a byte stream: what the program in the pane writes to its terminal, in order, and nothing from any other pane on the connection. Reads block until the pane writes, ctx ends, or the observation closes. A lost observation ends the stream with [ErrPaneObservationLost] rather than [io.EOF]. The bytes are the terminal's: escape sequences and carriage returns arrive as written, and the echo of what is typed into the pane arrives before the reply, as it does on screen. Exactly one reader or direct notification read may run at a time.

A malformed notification on the connection is skipped, as
[PaneObservation.Notifications] skips it; every other error ends the stream.
