Build terminal apps in pure Ruby.
An event-driven TUI framework with declarative callbacks, a composable View DSL, terminal styling, reusable components, and zero runtime dependencies.
🌼 Chamomile — The Complete Ruby TUI FrameworkOne gem. Everything you need for terminal UIs in Ruby. gem install chamomileCore Runtime
Styling — CSS-like box model with true color, 10 border presets, padding, margin, alignment, horizontal/vertical layout composition Components — 13 reusable TUI components: TextInput, TextArea, Viewport, Table, List, FilePicker, Spinner, Progress, Timer, Stopwatch, Paginator, Cursor, Help |
🚂 Lazyrails — Flagship AppA lazygit-style TUI for Rails developers. Routes, migrations, models, tests, server, gems — all in one split-pane interface. gem install lazyrails-tui
|
require "chamomile"
class Counter
include Chamomile::Application
def initialize
@count = 0
end
on_key(:up, "k") { @count += 1 }
on_key(:down, "j") { @count -= 1 }
on_key("r") { @count = 0 }
on_key("q") { quit }
def view
panel(title: "Counter", border: :rounded, color: "#7d56f4") do
text "Count: #{@count}", bold: true, color: "#7d56f4"
text ""
status_bar "↑/k increment · ↓/j decrement · r reset · q quit"
end
end
end
Chamomile.run(Counter.new)