Skip to content

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.

Built on Ratatui · Powered by Tokio · Open source, MIT

A pixel-art rat assembler in teal workwear arranging components inside a terminal frame
COMPONENTS / STATE / LAYOUT v0.12.0

01 / IN THE TERMINAL

Small surface. Real possibilities.

Task management, mouse interaction, and data views. Real Rust examples, recorded straight from the terminal.

todo_app.rs Actual terminal recording
Task management: Components, filters, and reactive state in one complete application.

Components, filters, and reactive state in one complete application.

cargo run --example todo_app Read the walkthrough
Explore all examples

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
counter.rsComponent excerpt
#[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.

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

Start building