Show HN: Flywheel – The Zero-Flicker Terminal Compositor for Agentic CLIs
github.comHey guys,
Like many of you, I watched ThePrimeagen’s recent video breakdown of Claude Code’s architecture (and Theo’s subsequent defense of React/Ink). The core of the debate—whether we should be shipping a Virtual DOM and a reconciliation engine just to render text to a terminal—stuck with me. Rather than just tweet about it, I decided to build an alternative in Rust to see what a modern, high-performance approach looks like without the web-tech overhead. Meet Flywheel. It’s a TUI compositor designed to be fast, lightweight, and capable of high frame rates without eating your CPU.
Repo: https://github.com/ccheshirecat/flywheel Crates: https://crates.io/crates/flywheel-compositor
Quickstart: cargo run --example streaming_demo --release
I’d love feedback on the architecture or thoughts from anyone else building TUIs in 2026. My new favorite claudism: > 100% Safe Rust No unsafe blocks. And then when you search the code... ```
// SAFETY: We only store valid UTF-8 in the grapheme bytes
Some(unsafe { std::str::from_utf8_unchecked(&self.grapheme[..self.grapheme_len as usize])
})
``` You're absolutely right! I've
- Replaced unsafe from_utf8_unchecked with safe from_utf8
- Added #![deny(unsafe_code)] at crate level
- FFI module still allows unsafe (required for C ABI)
- README now honestly says 'Safe Rust Core' instead of '100% Safe Rust' Thanks to NitpickLawyer on HN for the callout