Ttyrec

Last updated
A NetHack recording being replayed using termrec Termrec wwwwolf.png
A NetHack recording being replayed using termrec

ttyrec is a program or its file format capable of recording the TTY output of a text-mode program together with timestamps and then replaying it.

Contents

It is widely used for example in the NetHack community for storing game replays.

It is similar to the script command, but also allows for pausing, slowing down or speeding up playback. It can also stream the recording on the network and be used to transfer files with uudecode. [1]

Recorders and players

Playback only

Technical file format specification

Each chunk consists of a header using 32bit unsigned little-endian numbers:

and the actual payload written as text with vt100 control codes.

The format does not contain any information about the character set used nor about the terminal size needed to play back the file. termrec will inject this information as \e%G for UTF-8 or \e%@ for not UTF-8 and as \e[8;Y;Xt for size, but not all players will understand these codes.

Related Research Articles

Perl Interpreted programming language first released in 1987

Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was officially changed to Raku in October 2019.

The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.

UTF-8 is a variable-width character encoding used for electronic communication. Defined by the Unicode Standard, the name is derived from UnicodeTransformation Format – 8-bit.

Daemon (computing) Computer program that runs as a background process

In multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user. Traditionally, the process names of a daemon end with the letter d, for clarification that the process is in fact a daemon, and for differentiation between a daemon and a normal computer program. For example, syslogd is a daemon that implements system logging facility, and sshd is a daemon that serves incoming SSH connections.

Not a typewriter Error code

In computing, "Not a typewriter" or ENOTTY is an error code defined in the errno.h found on many Unix systems. This code is now used to indicate that an invalid ioctl number was specified in an ioctl system call.

PuTTY Free and open-source terminal emulator, serial console and network file transfer application

PuTTY is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a serial port. The name "PuTTY" has no official meaning.

Expect is an extension to the Tcl scripting language written by Don Libes. The program automates interactions with programs that expose a text terminal interface. Expect, originally written in 1990 for the Unix platform, has since become available for Microsoft Windows and other systems.

This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

init UNIX system component

In Unix-based computer operating systems, init is the first process started during booting of the computer system. Init is a daemon process that continues running until the system is shut down. It is the direct or indirect ancestor of all other processes and automatically adopts all orphaned processes. Init is started by the kernel during the booting process; a kernel panic will occur if the kernel is unable to start it. Init is typically assigned process identifier 1.

The following tables compare general and technical information between a number of notable IRC client programs which have been discussed in independent, reliable prior published sources.

Catalyst (software)

Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.

In computing, a shebang is the character sequence consisting of the characters number sign and exclamation mark at the beginning of a script. It is also called sharp-exclamation, sha-bang, hashbang, pound-bang, or hash-pling.

W3Perl

W3Perl is a free software logfile analyser, which can parse Web/FTP/Mail/CUPS/DHCP/SSH and Squid logfiles. Most major web logfile formats are supported, as well as split/compressed files. "Page tagging" and counter are also supported if you do not have logfiles access. The output is spread over HTML pages, with graphics and a sortable table. Stats can be run from a single command line or from a web browser.

Terminator (terminal emulator) Open-source terminal emulator in Java

Terminator is an open-source terminal emulator programmed in Java. It is available on Microsoft Windows, macOS, Linux and other Unix systems that use the X Window System. Terminator will run on any modern POSIX system running Java 6 or later. Terminator is licensed under the GPL-2.0-or-later license.

In Unix-like operating systems, a device file or special file is an interface to a device driver that appears in a file system as if it were an ordinary file. There are also special files in DOS, OS/2, and Windows. These special files allow an application program to interact with a device by using its device driver via standard input/output system calls. Using standard system calls simplifies many programming tasks, and leads to consistent user-space I/O mechanisms regardless of device features and functions.

The script command is a Unix utility that records a terminal session. It dates back to the 1979 3.0 BSD.

SecureCRT

SecureCRT is a commercial SSH and Telnet client and terminal emulator by VanDyke Software. Originally a Windows product, VanDyke later added a Mac OS X version in 2010 with release v6.6 and a Linux version in 2011 with release v6.7.

Command-line interface Type of computer interface based on entering text commands and viewing text output

A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and providing information to them as to what actions they are to perform. In some cases the invocation is conditional based on conditions established by the user or previous executables. Such access was first provided by computer terminals starting in the mid-1960s. This provided an interactive environment not available with punched cards or other input methods.

Amavis is an open-source content filter for electronic mail, implementing mail message transfer, decoding, some processing and checking, and interfacing with external content filters to provide protection against spam and viruses and other malware. It can be considered an interface between a mailer and one or more content filters.

In computing, tty is a command in Unix and Unix-like operating systems to print the file name of the terminal connected to standard input.

References

  1. 1 2 "Ttyrec: A tty recorder". Archived from the original on 2007-07-30. Retrieved 2006-07-06.
  2. "Term::TtyRec - handles ttyrec data - metacpan.org". Archived from the original on 2021-10-27. Retrieved 2013-09-16.
  3. "Term::TtyRec::Plus - read a ttyrec - metacpan.org". Archived from the original on 2021-10-27. Retrieved 2013-09-16.
  4. "Tie::Handle::TtyRec - write a ttyrec - metacpan.org". Archived from the original on 2021-10-27. Retrieved 2013-09-16.
  5. "1KB: Software/Termrec". Archived from the original on 2006-07-15. Retrieved 2006-07-06.
  6. "Ttyplayer". Archived from the original on 2012-02-11. Retrieved 2008-04-09.
  7. "IPBT: A high-tech ttyrec player for Unix". Archived from the original on 2006-06-30. Retrieved 2006-07-06.
  8. "Nethack Recorder/Player Version 1.0". Archived from the original on 2006-06-21. Retrieved 2006-07-06.
  9. "#68556 - [patch] adding timings to script - Debian Bug report logs". Archived from the original on 2019-04-10. Retrieved 2014-06-13.