charm-tui

Installation
SKILL.md

Charm TUI stack for Go

Build terminal UIs and interactive CLIs in Go with Charm libraries. All Charm libraries below are on v2 and use the charm.land/<lib>/v2 module path (v1 was github.com/charmbracelet/<lib>). BubbleZone and Harmonica keep their github.com paths.

Mental model: The Elm Architecture

Bubble Tea is the runtime; everything else plugs into it. A program is one tea.Model:

  • Init() tea.Cmd — kick off startup work (timers, IO). Return nil for none.
  • Update(tea.Msg) (tea.Model, tea.Cmd) — the only place state changes. A Msg arrives (keypress, tick, window resize, custom event), you return a new model and optionally a Cmd.
  • View() tea.View — pure render of current state to a tea.View (v2 returns tea.View, not string). Never mutate state here.

Cmd = func() tea.Msg: run side effects off the render loop; their result comes back as a Msg to Update. This unidirectional loop (Msg → Update → View) is the whole framework.

Installs
1
GitHub Stars
1
First Seen
Aug 22, 2026
charm-tui — kettleofketchup/kettleofskills