Ratatui Kit
A COMPONENT FRAMEWORK BUILT ON RATATUI
Terminal UI.
Composed.
Components and hooks on top of Ratatui. Give your terminal application a clear structure.

01 / IN THE TERMINAL
Small surface. Real possibilities.
Task management, mouse interaction, and data views. Real Rust examples, recorded straight from the terminal.
Components, filters, and reactive state in one complete application.
cargo run --example todo_app Read the walkthrough
Hit testing, hover, press, and capture with explicit interaction boundaries.
cargo run --example mouse Read the walkthrough
Present and navigate structured data in the terminal.
cargo run --example table Read the walkthrough
Give multi-page applications a clear navigation structure.
cargo run --example router Read the walkthrough 02 / THE COMPONENT MODEL
Describe the UI. Make it reactive.
Components, props, and hooks meet the Rust type system. Keep Ratatui’s drawing power while the framework handles component lifetimes and reactive rendering.
Explore components and hooks#[component]
fn Counter(mut hooks: Hooks) -> impl Into<AnyElement<'static>> {
let mut count = hooks.use_state(|| 0_u64);
hooks.use_future(async move {
loop {
tokio::time::sleep(Duration::from_secs(1)).await;
count += 1;
}
});
element!(Border {
Text(text: Line::from(format!("Count: {}", count.get())))
})
} 03 / APPLICATION FOUNDATIONS
From a component to an application.
State with a place to live.
Local hooks, async tasks, and shared atoms. Choose state that fits its lifetime.
02Input with clear boundaries.
Central event routing, input layers, and pointer hooks coordinate keyboard and mouse interaction.
03One visual language.
Shared palettes, component themes, and local overrides keep the interface consistent and adaptable.
START / INSTALL
Your next terminal app starts here.
No extra features by default. Opt into routing, input, tables, and shared state when you need them.
cargo add ratatui-kit