Ratatui

Rust library for building rich terminal user interfaces and dashboards

Library
Cargo
v0.30.2
22,766 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
88 /100 Excellent
Development Activity 96
Maintenance 100
Community 64
Maturity 52
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
86 /100 Excellent
Architecture 92
Code Quality 90
Innovation 85
Learning Curve 78

Ratatui is a Rust crate for building terminal user interfaces (TUIs) — text-based dashboards, command-line tools with interactive layouts, and full-screen console applications. It provides an immediate-mode rendering model: on every frame you describe the widget tree you want drawn, and Ratatui diffs it against the terminal buffer to produce minimal, flicker-free updates.

Forked from the now-unmaintained tui-rs crate in 2023, Ratatui has grown into a modular workspace with a stable core rendering engine (ratatui-core), a widget library (ratatui-widgets), and pluggable backends for crossterm, termion, and termwiz so applications aren’t locked into one terminal I/O library. It ships a constraint-based layout system, a broad set of built-in widgets (tables, charts, gauges, lists, paragraphs with text wrapping), and cargo-generate templates to scaffold a new TUI project in seconds.

What You Get

  • Immediate-mode rendering: describe your UI tree each frame, Ratatui diffs and redraws only what changed
  • Constraint-based layout system for splitting terminal space into rows/columns/nested areas
  • A broad built-in widget set: tables, lists, charts, gauges, tabs, paragraphs with text wrapping, and more
  • Pluggable backends (crossterm, termion, termwiz) so you aren’t locked to one terminal I/O library
  • cargo-generate project templates to scaffold a new TUI application instantly
  • A modular workspace (ratatui-core, ratatui-widgets, backend crates) so you can depend on only what you need

Common Use Cases

  • Building interactive CLI dashboards for monitoring servers, logs, or system metrics
  • Creating full-screen terminal applications (git clients, file managers, chat clients)
  • Adding a rich interactive UI layer to an existing command-line tool
  • Prototyping developer tools that need tables, charts, or forms without a GUI framework

Under The Hood

Architecture - Ratatui is organized as a Cargo workspace of focused crates rather than one monolith: ratatui-core defines the buffer/widget/layout traits that everything else builds on, ratatui-widgets implements the concrete widget set (tables, charts, gauges, lists) against that core, and separate ratatui-crossterm/ratatui-termion/ratatui-termwiz/ratatui-termina crates implement the Backend trait for each terminal I/O library, with the top-level ratatui crate re-exporting everything behind Cargo feature flags (crossterm, termion, all-widgets, macros); each render pass diffs a new Buffer against the previous frame to emit minimal terminal writes. Tech Stack - Pure Rust, edition 2024, with workspace-pinned dependencies including crossterm for the default terminal backend, kasuari (a fork of the Cassowary constraint solver) for layout resolution, bitflags, compact_str, and itertools; tooling includes cargo-generate for project templates, git-cliff for changelog generation, and deny.toml/typos.toml for dependency and spelling linting. Code Quality - The workspace carries an extensive unit and doc-test suite (40+ files under ratatui-core alone reference #[test]), enforces rustfmt/clippy config in-repo (rustfmt.toml, clippy.toml), and documents a formal breaking-changes policy (BREAKING-CHANGES.md) plus an ARCHITECTURE.md explaining the crate split — evidence of a mature, process-driven maintenance model with 286 contributors. API Design - The immediate-mode Frame/render_widget pattern keeps the core loop (terminal.draw(render)) to a handful of lines as shown in the README quickstart, feature flags let consumers opt out of unused widgets or backends to control binary size, and the widget trait design (implement Widget for custom types) is consistent across the built-in and third-party widget ecosystem documented in the separate awesome-ratatui list.

Used by 9 apps in this directory

Rust
99%
MIT

abtop

Developer Tools · Monitoring

3,669

Like htop, but for your AI coding agents — monitor Claude Code, Codex CLI, and OpenCode sessions, tokens, context windows, rate limits, and orphan ports all from one terminal screen.

View details
74
Repo Health
79
Technical
78
Dependency
Built with
Rust 99%
Updated 2 weeks ago
Rust
54%
Other

Cameleer

AI Agents

23

A local-first desktop workspace for managing AI agents in an enterprise-style workflow — agent directory, Kanban task tracking, workspace chat, and a full runtime/audit log of agent actions and tool approvals.

View details
40
Repo Health
65
Technical
76
Dependency
Built with
Rust 54%
JavaScript 24%
TypeScript 15%
Updated 2 months ago
Rust
88%
GPL 2.0

Fresh

Code Editors · Developer Tools

9,052

A zero-configuration terminal text editor with familiar keybindings, full mouse support, LSP-powered IDE features, and a built-in orchestrator for running multiple coding agents in parallel worktrees.

View details
86
Repo Health
88
Technical
71
Dependency
Built with
Rust 88%
Updated 5 days ago
Rust
94%
Apache 2.0

herdr

AI Agents · Developer Tools

41,057

A terminal-native agent multiplexer that runs Claude, Codex, Gemini, and other coding agents side by side in real, persistent panes you can detach from and reattach to from anywhere.

View details
84
Repo Health
84
Technical
72
Dependency
Built with
Rust 94%
Updated 5 days ago
Rust
37%
Other

Hook0

Devops

1,491

Open-source Webhooks-as-a-Service: deliver events to your users with auto-retry, signed payloads, and a real-time subscriber dashboard — all without building the infrastructure yourself.

View details
82
Repo Health
82
Technical
69
Dependency
Built with
Rust 37%
TypeScript 12%
Updated 1 weeks ago
Rust
71%
Apache 2.0

mesh-llm

AI Agents · AI Development

3,463

Mesh LLM pools GPUs and memory across every machine you own into one OpenAI-compatible API, so agents tap distributed compute instead of a single GPU box or a metered cloud bill.

View details
84
Repo Health
91
Technical
69
Dependency
Built with
Rust 71%
TypeScript 13%
Python 10%
Updated 4 days ago
Python
75%
AGPL 3.0

OpenViking

AI Development · AI Memory · Databases

38,819

An open-source context database that gives AI agents a unified filesystem for memory, resources, and skills with hierarchical tiered retrieval.

View details
85
Repo Health
75
Technical
64
Dependency
Built with
Python 75%
Rust 12%
Updated 4 days ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

39,975

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 4 days ago
Rust
77%
AGPL 3.0

Spacedrive

Collaboration · File Storage

39,041

One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.

View details
56
Repo Health
84
Technical
63
Dependency
Built with
Rust 77%
TypeScript 20%
Updated 2 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers