Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Go Report Card Discord

Terminal recording and playback, written in Go. All terminal recordings are currently saved as secret Gist postings.

Playback Example

TermBackTime - Playback

Install / Update

Note: If Go is already installed, will use the currently installed version to install termbacktime. There is now an install script for Linux, Darwin, and Windows 10 using WSL. This will attempt to install the latest version of Go, defaulting back to 1.14. For other distributions please see the releases page. Go will be installed in $HOME/.goroot as $GOROOT and $GOPATH is set to $HOME/go.

curl -s -L | bash

To install a different version of Go:

 ./ <version>

For example, 1.19.0 would be ./ 1.19.0

If you already have Go installed, you can manually install:

go get -u
cd $GOPATH/src/
make install


In order to submit recordings to Gist you must first authorize TermBackTime with GitHub. We request access to the read:user and gist scopes. For more information, please see available scopes. You can request an auth token from ~/auth or by running the following terminal command:

termbacktime auth
  • GitHub authorization is NOT required for live terminal sharing.


After authorizing TermBackTime with GitHub simply run termbacktime record to start recording! Please see termbacktime --help for more options.

Live terminal sharing (BETA)

To start sharing your terminal over the web via WebRTC, simply run termbacktime live and give the provided link to someone. Please see termbacktime live --help for more options.

STUN options

For now TermBackTime uses Google's STUN servers unless changed at compile time.

STUNServerOne = ""
STUNServerTwo = ""

A STUN server is used to detect network addresses. Please see for more information.

TURN options
  • Use an official TURN server provided by TermBackTime:
    • termbacktime live
  • Provide your own TURN server credentials:
    • termbacktime live --turn <username>:<password>@<server>[:<port>]
    • termbacktime live --user <username> --password <password> --addr <server>[:<port>]
  • Attempt to share without any TURN server:
    • termbacktime live --no-turn

A TURN server is used to relay WebRTC data between clients. Please see for more information.


Please feel free to open a PR or an issue on GitHub. Convention for this repository is to fork it, create a branch feature/<feature name> in your fork based on master branch, and commit changes there. Once your changes are ready to merge back into this repository, squash your feature branch into one commit and open a PR from your repository's feature branch into the dev branch of this repository. Please make sure your master branch is up to date with master in this repo, and rebase your feature onto the tip of master.

Reporting Issues

Please do not report security related issues, vulnerabilities or bugs to the issue tracker, or elsewhere in public. Instead report sensitive bugs by email to

  • Open an Issue with a clear and descriptive title.
    • Until we can discover whether it is a bug or not, we ask that you label it with possible-bug.
  • Explain the behavior you would expect and the actual behavior.
  • Please provide as much context as possible and describe the reproduction steps that someone else can follow to recreate the issue on their own.
    • Describe the current behavior and explain which behavior you expected to see instead and why.
    • Any availble stack traces or screenshots.
    • OS, platform and version. (Windows, Linux, macOS, x86, ARM)
    • If possible, please provide the termbacktime --version string.
      • If manually compiling please provide go version, termbacktime version located in the VERSION file, and the revision with git rev-parse --short HEAD.


You can build your own development builds via make build-dev or make build-crosscompile-dev. I provide development server endpoints for playback + live terminal, login, and WebRTC signaling at:

Please note that these endpoints are under active development and may change or be unavailable at any time.