Play back terminal recordings over SSH
Tailpipe is an SSH server that streams prerecorded terminal sessions. Your users SSH in, watch the show, and interact with playback controls.
Features
Everything you need to serve interactive terminal demos.
SSH Native
No browser needed. Connect with any SSH client and start watching immediately.
Asciinema Playback
Plays back .cast files in asciinema v2 and v3 formats with frame-accurate timing.
Multi-User
Configure different recordings per SSH username with a default fallback for unknown users.
Simple Config
One TOML file configures everything — cast files, headers, footers, and per-user overrides.
Headers & Footers
Bookend recordings with branded intro and outro sequences. Disable per-user as needed.
Pure Rust
Built with russh, tokio, and ratatui. Async, fast, and memory-safe.
Interactive Playback
Pause, seek, and navigate recordings with keyboard controls.
Configure in seconds
One TOML file is all you need.
[server]
port = 4242
host_key = "/etc/tailpipe_ed25519.key"
header = "/srv/casts/header.cast"
footer = "/srv/casts/footer.cast"
# SSH in as demo@ to see demo.cast
[user.demo]
castfile = "/srv/casts/demo.cast"
# SSH in as custom@ to see custom.cast
[user.custom]
castfile = "/srv/casts/custom.cast"
header = "none"
footer = "none"
# fallback for unknown usernames
[user.default]
castfile = "/srv/casts/default.cast"
Optional host key
Generates an ephemeral ed25519 key if you don't provide one. Great for development.
Per-user recordings
Map SSH usernames to different cast files. Unknown users fall back to the default section.
Flexible headers & footers
Set server-wide intro/outro sequences or override them per user. Set to "none" to disable.
Get started
Up and running in under a minute.
Install
$ cargo install tailpipe
Configure
$ vim tailpipe.toml
Run
$ tailpipe tailpipe.toml
Connect
$ ssh demo@localhost -p 4242