# tailpipe

An SSH server that plays back terminal recordings in [asciinema](https://asciinema.org) `.cast` format (both v2 and v3 supported).

    ssh demo@your-server -p 4242

## Controls

- **Space** — pause/resume
- **Left/Right** — seek backward/forward
- **o** — toggle overlay
- **q** / **Ctrl-C** — quit

## Configuration

```toml
[server]
port = 4242
host_key = "/etc/tailpipe_ed25519.key"  # optional, generates ephemeral key if omitted
host_key_rsa = "/etc/tailpipe_rsa.key"  # optional, generates ephemeral key if omitted
header = "/srv/casts/header.cast"       # played before every session
footer = "/srv/casts/footer.cast"       # played after every session

[user.demo]
castfile = "/srv/casts/demo.cast"

[user.custom]
castfile = "/srv/casts/custom.cast"
header = "none"                         # skip header/footer for this user
footer = "none"

[user.default]                          # fallback for unknown usernames
castfile = "/srv/casts/default.cast"
```

## Usage

```
tailpipe [config.toml]
```

Defaults to `tailpipe.toml` in the current directory.

## Credits

- SSH server possible thanks to [russh](https://github.com/warp-tech/russh)
- [asciinema's rust code](https://github.com/asciinema/asciinema) was a delight to read, and super helpful
- [ratatui](https://github.com/ratatui/ratatui) for the pause overlay UI
