- rewindtty record session.json # Runs a shell, records the session
- rewindtty replay session.json # Replays it step by step
Under the hood:
- Uses fork() to manage the pseudo-terminal
- Captures stdout/stderr with timestamps
- Stores everything in structured JSON for easy analysis, replay or transformation
Why I made this:
I wanted a minimal tool to track terminal interactions — for debugging, documentation, and reproducibility — without relying on heavier tools or external formats.
It’s still early, but the core works and I’d love feedback or suggestions.
You have scratched a long persistent itch. Good work!
And I love that you used c. Nothing against rust, or (ahem) “go”, but it’s good to see you doing something in c!
debba•1h ago
Yeah, it’s just a side project for now, but I’m hoping to make it more solid over time.
As for C, I wanted to challenge myself and step away from what I usually do — try something a bit different.
debba•10h ago
I built rewindtty, a small tool in C that lets you record a terminal session and later replay it, using a simple JSON log format that includes:
- timestamp - command (user input) - output (stdout) - stderr
It works like this:
- rewindtty record session.json # Runs a shell, records the session - rewindtty replay session.json # Replays it step by step
Under the hood:
- Uses fork() to manage the pseudo-terminal - Captures stdout/stderr with timestamps - Stores everything in structured JSON for easy analysis, replay or transformation
Why I made this: I wanted a minimal tool to track terminal interactions — for debugging, documentation, and reproducibility — without relying on heavier tools or external formats.
It’s still early, but the core works and I’d love feedback or suggestions.
GitHub: https://github.com/debba/rewindtty
sunscream89•5h ago
And I love that you used c. Nothing against rust, or (ahem) “go”, but it’s good to see you doing something in c!
debba•1h ago