A registry of copy-and-own terminal UI components.

BentoTUI is a collection of components built on Bubble Tea v2 and Lip Gloss v2. Run bento add input and the source lands in your project. You own it — read it, modify it, delete what you don't need. No framework lock-in, no lifecycle hooks, no "extend" API to learn.

Early development - APIs and registry paths will change.
go install github.com/cloudboy-jh/bentotui/cmd/bento@latest

How it works

Two things live in this repo: components (atomic UI pieces you copy) and bentos (pre-built layout compositions you copy wholesale).

# Copy components into your project
bento add input bar surface

# Run the starter app to see it in action
go run ./cmd/starter-app

Available Components

Grouped by what you can use now versus what is actively planned.

Available now

8
  • surfaceCell-buffer rendering with Ultraviolet
  • barStatus/nav bar with left and right slots
  • inputSingle-line input with accent border
  • panelTitled and focusable content container
  • dialogModal manager (Confirm, Custom, ThemePicker)
  • listScrollable log-style list
  • tableHeader and data rows
  • textStatic styled label

Tier 1 next

4
  • badgeInline colored label
  • kbdKeyboard shortcut display
  • wordmarkLarge centered app identity
  • statusbarStandalone registry bar

Tier 2 and 3

9
  • selectInline single-choice picker
  • checkboxToggle boolean values
  • textareaMulti-line input
  • spinnerLoading indicator
  • progressProgress bar with label support
  • commandFuzzy command palette
  • toastStacked auto-dismiss notifications
  • tabsHorizontal tab switcher
  • separatorHorizontal or vertical rule

15 Built-in Themes

Click a theme to update the snippet. Components should call theme.CurrentTheme() in each View render and should not cache the value.

theme.SetTheme("catppuccin-mocha")
t := theme.CurrentTheme()

Architecture

Components are copied into your project while core packages (theme, styles, layout) stay as normal imports from the bentotui module.

01
Your app code Compose screens with copied components.
02
registry/components/ surface, input, bar, dialog, panel, list, table, text
03
bentotui module deps theme, styles, layout
04
Charm stack Bubble Tea v2, Lip Gloss v2, Ultraviolet

Read the architecture guide or explore on GitHub.

Current Status

Starter app — Home screen with surface-backed rendering (v0.2)
Tier 1 components — badge, kbd, wordmark, statusbar
home-screen bento — First bento, mirrors starter app
Tier 2 components — select, checkbox, textarea, spinner, progress
Remaining bentos — app-shell, dashboard, detail-view, form
Tier 3 components & CLI wiring — command, toast, tabs, bento init