rooibos is a gem in the RatatuiRuby ecosystem. ratatui_ruby is a community wrapper that is not affiliated with the Ratatui team.
Warning
rooibos is currently in BETA. The API may change with minor versions.
Why RatatuiRuby? β Native Rust performance, zero runtime overhead, and Ruby's expressiveness. See how we compare to CharmRuby, raw Rust, and Go.
Please join the announce mailing list at https://lists.sr.ht/~kerrick/ratatui_ruby-announce to stay up-to-date on new releases and announcements. See the trunk branch for pre-release updates.
RatatuiRuby: Core engine β’ Tea: MVU architecture β’ Kit: Component architecture (Planned) β’ DSL: Glimmer syntax (Planned) β’ Framework: Omakase framework (Planned) β’ UI: Polished widgets (Planned) β’ UI Pro: More polished widgets (Planned)
Get Started: Quickstart β’ Examples βΈΊ Stay Informed: Announce List β’ FAQ βΈΊ Reach Out: Discuss List β’ Bug Tracker
Get Started: Contributing Guide β’ Code of Conduct βΈΊ Stay Informed: Announce List β’ Project History βΈΊ Reach Out: Development List β’ Bug Tracker
rooibos is designed to run on everything Ruby does, including:
- GNU/Linux, macOS, Windows, OpenBSD, and FreeBSD; and
- x86_64 (AMD, Intel) and ARM (Apple Silicon, Raspberry Pi).
We support the latest minor version of every non-eol Ruby version, including Ruby 4.
Add this line to your application's Gemfile:
gem "rooibos"And then execute:
bundle installOr install it yourself with:
gem install rooibosrooibos uses the Model-View-Update (MVU) pattern. You provide an immutable model, a view function, and an update function.
Model = Data.define(:text)
Init = -> do
Model.new(text: "Hello, Ratatui! Press 'q' to quit.")
end
View = -> (model, tui) do
tui.paragraph(
text: model.text,
alignment: :center,
block: tui.block(
title: "My Ruby TUI App",
borders: [:all],
border_style: { fg: "cyan" }
)
)
end
Update = -> (msg, model) do
if msg.q? || msg.ctrl_c?
Rooibos::Command.exit
else
model
end
end
def run
Rooibos.run(VerifyReadmeUsage)
endFor a full tutorial, see the Quickstart. For an explanation of the application architecture, see Application Architecture.
Because this gem is in alpha, it lacks documentation. Please check the source files.
| Resource | Description |
|---|---|
| Quickstart | Get running in 5 minutes |
| Application Architecture | Patterns for scaling your app |
| Guides | Tutorials, examples, and more |
| API Reference | To generate full RDoc documentation, run bundle exec rake rdoc |
| Wiki | Learn more about the RatatuiRuby ecosystem |
Bug reports and pull requests are welcome on sourcehut at https://sr.ht/~kerrick/ratatui_ruby/. This project is intended to be a safe, productive collaboration, and contributors are expected to adhere to the Code of Conduct.
Want to help develop rooibos? Check out the contribution guide on the wiki.
Note: Active development happens on the trunk branch. Use trunk if you are a contributor or want the latest cutting-edge features. stable is for stable releases only.
rooibos is copyright 2026, Kerrick Long.
The library is LGPL-3.0-or-later: you can use it in proprietary applications, but you must share changes you make to rooibos itself. Documentation snippets and widget examples are MIT-0: copy and use them without attribution.
Documentation is CC-BY-SA-4.0. Build tooling and full app examples are LGPL-3.0-or-later. See each file's SPDX comment for specifics.
Some parts of this program are copied from other sources under appropriate reuse licenses, and the copyright belongs to their respective owners. See the REUSE Specification β Version 3.3 for details.
This program was created with significant assistance from multiple LLMs. The process was human-controlled through creative prompts, with human contributions to each commit. See commit footers for model attribution. declare-ai.org
