Build Beautiful Terminal Apps with Go

The fun, functional and stateful way to build terminal apps. A Go framework based on The Elm Architecture.
Built with Bubble Tea
A powerful, functional framework for building terminal apps. Based on The Elm Architecture, it makes state management a breeze.
Theme Aware
It automatically detects the terminal's background color (light or dark) and adapts your styles accordingly using lipgloss.AdaptiveColor. It works out of the box with no configuration required, ensuring your app looks great in any environment.
Components by Bubbles
A library of common UI components: spinners, text inputs, lists, and more.
Styled with Lip Gloss
Style definitions for nice terminal layouts. Built with TUIs in mind.
Terminal Native
Framerate-based rendering, mouse support, and focus reporting built-in.
func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
    switch msg := msg.(type) {
    case tea.MouseMsg:
        if msg.Type == tea.MouseLeft {
            return m, tea.Quit
        }
    }
    return m, nil
}
Document with VHS
Write terminal GIFs as code. Integration with CI/CD to keep your documentation screenshots always up to date.
Community Driven
Join thousands of developers building amazing TUI applications. Used by GitHub, Shopify, and more.
15k+