ratatui

    ratatui/ratatui

    A Rust crate for cooking up terminal user interfaces (TUIs) 👨‍🍳🐀 https://ratatui.rs

    cli
    ratatui
    rust
    terminal
    terminal-user-interface
    tui
    widgets
    Rust
    MIT
    19.8K stars
    631 forks
    19.8K watching
    Updated 4/18/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    75

    Weekly Growth

    +0

    +0.0% this week

    Contributors

    1

    Total contributors

    Open Issues

    205

    Generated Insights

    About ratatui

    Table of Contents

    Release header

    Ratatui (ˌræ.təˈtu.i) is a Rust crate for cooking up terminal user interfaces (TUIs). It provides a simple and flexible way to create text-based user interfaces in the terminal, which can be used for command-line applications, dashboards, and other interactive console programs.

    Quickstart

    Ratatui has templates available to help you get started quickly. You can use the cargo-generate command to create a new project with Ratatui:

    cargo install --locked cargo-generate
    cargo generate ratatui/templates
    

    Selecting the Hello World template produces the following application:

    use color_eyre::Result;
    use crossterm::event::{self, Event};
    use ratatui::{DefaultTerminal, Frame};
    
    fn main() -> Result<()> {
        color_eyre::install()?;
        let terminal = ratatui::init();
        let result = run(terminal);
        ratatui::restore();
        result
    }
    
    fn run(mut terminal: DefaultTerminal) -> Result<()> {
        loop {
            terminal.draw(render)?;
            if matches!(event::read()?, Event::Key(_)) {
                break Ok(());
            }
        }
    }
    
    fn render(frame: &mut Frame) {
        frame.render_widget("hello world", frame.area());
    }
    

    Documentation

    You can also watch the EuroRust 2024 talk to learn about common concepts in Ratatui and what's possible to build with it.

    Templates

    If you're looking to get started quickly, you can use one of the available templates from the templates repository using cargo-generate:

    cargo generate ratatui/templates
    

    Built with Ratatui

    Awesome

    Check out the showcase section of the website, or the awesome-ratatui repository for a curated list of awesome apps and libraries built with Ratatui!

    Alternatives

    • Cursive - a ncurses-based TUI library.
    • iocraft - a declarative TUI library.

    Contributing

    Discord Badge Matrix Badge Forum Badge

    Feel free to join our Discord server for discussions and questions! There is also a Matrix bridge available at #ratatui:matrix.org. We have also recently launched the Ratatui Forum.

    We rely on GitHub for bugs and feature requests.

    Please make sure you read the contributing guidelines before creating a pull request. We accept AI generated code, but please read the AI Contributions guidelines to ensure compliance.

    If you'd like to show your support, you can add the Ratatui badge to your project's README:

    [![Built With Ratatui](https://img.shields.io/badge/Built_With_Ratatui-000?logo=ratatui&logoColor=fff)](https://ratatui.rs/)
    

    Built With Ratatui

    Acknowledgements

    Ratatui was forked from the tui-rs crate in 2023 in order to continue its development. None of this could be possible without Florian Dehau who originally created tui-rs which inspired many Rust TUIs.

    Special thanks to Pavel Fomchenkov for his work in designing an awesome logo for the Ratatui project and organization.

    License

    This project is licensed under the MIT License.

    Discover Repositories

    Search across tracked repositories by name or description