TermBackTime turns terminal sessions into recordings you can replay, inspect, and share. Written in Go, it keeps recordings on your computer by default and combines a command-line interface, an interactive library manager, and a browser player for published sessions.

It is useful for build walkthroughs, bug reports, tutorials, and debugging command failures. You can capture an interactive shell or a single command, review the result locally, then choose whether to publish it to GitHub or share a live session with viewers.

Key Features

  • Local recording library: Save .tbt files, browse and filter sessions in the terminal manager, pin recordings, and recover interrupted captures from partial journals.
  • Interactive playback: Pause, seek, step through events, adjust playback speed, limit idle time, and loop a section. Optional playback history lets you resume later.
  • GitHub publishing: Upload to a recordings repository or Gist, review descriptive metadata, retain share receipts, and queue uploads for a later explicit run.
  • Review before sharing: Scan for potential secrets, create a redacted copy, and optionally encrypt recording content. Secret Gists are accessible to anyone with their URL; repository publications are public.
  • Encrypted live sharing: Share a read-only view of your terminal, manage viewer admission, and pause or end sharing while keeping the shell running. Local recording is optional.
  • Exports and embeds: Create text or Markdown transcripts from the CLI. The browser player adds offline HTML, GIF, WebM, and iframe embeds for unencrypted shares.
  • Failed-command capture in CI: A composite GitHub Action records a command and attaches a cleaned recording when it fails, preserving the command’s exit status.

Quick Start

With Go 1.27.1 or automatic Go toolchain selection, install the CLI and capture a command:

BASH
1
2
3
go install github.com/termbacktime/termbacktime@latest
termbacktime record --output demo.tbt -- go test ./...
termbacktime play demo.tbt --speed 2 --idle-limit 2s

The executable’s install directory must be on PATH. To record an interactive shell instead, run termbacktime record --title "Build walkthrough" and type exit when finished.

Open termbacktime manage to browse your library. Before publishing a session, use termbacktime scan demo.tbt and replay the recording. termbacktime auth --storage repo --open sets up repository authorization; termbacktime upload demo.tbt then opens the upload review. For a live walkthrough, run termbacktime live and send the complete viewer link.

Why This Project Matters

A terminal transcript can show output, but timing and the sequence of interactions often explain how a problem developed. TermBackTime preserves a session as something another person can explore at their own pace, making a long build, an intermittent failure, or a command-line tutorial easier to follow.

The same workflow connects local debugging, recorded demonstrations, live walkthroughs, and CI failure artifacts. Keeping capture local by default also gives the author time to inspect and clean a session before publishing it.

Stack

  • Go for the CLI, recording, playback, and library management
  • .tbt recordings and partial journals for saved sessions and recovery
  • GitHub repositories and Gists for publishing recordings
  • Browser playback and iframe embeds for sharing sessions on the web
  • GitHub Actions for recording failed commands in CI

See the current README for installation options, command details, platform support, and sharing controls.