dog is a command-line tool that captures the current terminal content and saves it to a file. It mimics the opposite behavior of the cat command, which displays file content, by capturing the terminal output.
This tool currently only supports screen and tmux as terminal emulators.
- Capture terminal content: Capture the current visible terminal content and save it to a file.
- Scrollback buffer support: Supports capturing the scrollback buffer content from tmux or screen sessions.
- Options:
--verbose: Print anything additional messages.--version: Print the version number.-a/--append: Append the content to an existing file.-n/--number: Prefix lines with the line number.-l/--length: Limit the number of lines captured from the terminal history. Default value is the visible space. 0 stands for the entire scrollback buffer.
You can use it directly from the source.
Capture the current visible content of the terminal and save it to a file:
$ dog --verbose output.txt
Detected screen. Capturing 20 lines from scrollback...
Saving to file: output.txt
Content successfully saved to output.txtAppend the terminal content to an existing file:
$ dog --verbose -a output.txt
Detected screen. Capturing 20 lines from scrollback...
Appending to file: output.txt
Content successfully saved to output.txtAdd line numbers to each line of the captured content:
$ dog --verbose -n output.txt && cat output.txt
Detected screen. Capturing 20 lines from scrollback...
Saving to file: output.txt
Content successfully saved to output.txt
1: Line 1
2: Line 2
...Capture only the last N lines from the terminal's history:
$ dog --verbose -l 50 output.txt
Detected screen. Capturing 50 lines from scrollback...
Saving to file: output.txt
Content successfully saved to output.txt- tmux (optional): For capturing the scrollback buffer in tmux sessions.
- screen (optional): For capturing the scrollback buffer in screen sessions.
- Python 3.x: Required to run the Python script (if not installed globally).