The terminal flickers. Your ncurses app is live, processing keystrokes and rendering screens in real time. Then a bug appears—hidden in the chaos of user input and screen updates. You need answers fast. You need ncurses session replay.
Ncurses session replay captures every input, every render cycle, and every state change. It is not a simple log. It records your program’s actual runtime behavior in a way you can play back exactly as the user saw it. The goal is simple: isolate and understand the root cause without reproducing it blind.
A true ncurses session replay must capture three layers:
- Terminal input stream: full key events, including control codes and escape sequences.
- Application state: variables, buffers, and internal flags at each frame.
- Screen output: rendered character grid, colors, and layout after every draw call.
These layers combine into a deterministic recording. You can step forward or backward, watch screen updates frame-by-frame, and inspect the variables driving the UI. This makes debugging ncurses apps faster, more predictable, and less error-prone.