We’ve rewritten Claude Code’s terminal rendering system to reduce...

We wanted to share more about why this was so difficult, how the fix works and how we used Claude Code to fix it 🧵
We now diff each cell and emit the minimal escape sequences needed to update what changed. We only do full redraws when we absolutely have to.
When you something like emacs, the terminal switches to an "alternate screen". The program controls everything: scrolling, selection, the works. When you exit, your previous terminal content reappears. This would solve flicker entirely.
We value this native experience a lot. We may explore alternate screen mode in the future, but our bar is quite high.
We started with almost no tests to verify rendering. It was humbling: fix something, break something else.
What unblocked us was property-based testing. We wrote tests that rendered components through both the old & new systems and diffed them.
This created a feedback loop that let Claude Code easily verify its work and make progress on the issue.

