---
name: "termrec"
section: "1"
platform: "linux"
package: "termrec"
version: "0.19-2"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/termrec"
---

# termrec(1)

a tty recorder

## NAME

termrec - a tty recorder

## SYNOPSIS

**termrec** \[**-f** *format*\] \[**-e** *command*\] \[*outfile*\]

## DESCRIPTION

**Termrec** is a tty recorder; it can record the output of any text mode program which you can then replay with **termplay**, **ttyplay**, **ipbt**, **ttyplayer**, **nh-recorder**, **asciinema** or similar.

If *outfile* ends in **.gz**, **.xz**, **.bz2** or **.zst**, the data will be appropriately compressed.

If no *outfile* is given, **termrec** will produce a name like 2008-11-27.13-02-42.ttyrec.bz2

You can write directly to some remote URLs, such as **tcp://***host***:***port* but that's usually of little use.

### Options:

- **-f** *format*, **--format**

  You can specify a format other than ttyrec.  Those available are:

  - ansi

    No timing data.  This is same as the output of [**script**(1)](/script/1.md).

  - ttyrec

    Compatible with **ttyrec** by Satoru Takabayashi.

  - nh-recorder

    Compatible with **nh-recorder** by Helge Dennhardt.

  - asciicast

    Compatible with **asciinema** by Marcin Kulik; format v2.

  - asciicast-v1

    Likewise, format v1.

- **-e** *command*, **--exec**

  Runs a *command* instead of spawning a shell and records its output.

- **-r**, **--raw**

  Inhibits noting info about your terminal size and UTFness.  This data is usually a good thing, but can confuse some programs.  Also note that none of the formats provides a way to mark which exactly charset you use -- only if it's UTF-8 or one of ancient ones.

- **-a**, **--append**

  If the output file exists, it will be appended instead being overwritten.

- **-h**, **--help**

  Shows a short explanation of parameters.

## ENVIRONMENT

- SHELL

  Unless **-e** is given, this will be the shell spawned, falling back to **/bin/sh** if not set.  On Windows, COMSPEC is used instead.

## SEE ALSO

[**termplay**(1)](/termplay/1.md), [**termtime**(1)](/termtime/1.md), [**termcat**(1)](/termcat/1.md).
