bubble-tea-scaffolder

Generate Bubble Tea (Go) TUI application structure with models, commands, and views using the Elm architecture.

509 stars

Best use case

bubble-tea-scaffolder is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Generate Bubble Tea (Go) TUI application structure with models, commands, and views using the Elm architecture.

Teams using bubble-tea-scaffolder should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/bubble-tea-scaffolder/SKILL.md --create-dirs "https://raw.githubusercontent.com/a5c-ai/babysitter/main/library/specializations/cli-mcp-development/skills/bubble-tea-scaffolder/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/bubble-tea-scaffolder/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How bubble-tea-scaffolder Compares

Feature / Agentbubble-tea-scaffolderStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Generate Bubble Tea (Go) TUI application structure with models, commands, and views using the Elm architecture.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Bubble Tea Scaffolder

Generate Bubble Tea TUI applications with Go and Elm architecture.

## Capabilities

- Generate Bubble Tea project structure
- Create models with Init, Update, View
- Set up commands and messages
- Implement component composition
- Create styling with Lip Gloss
- Set up testing patterns

## Usage

Invoke this skill when you need to:
- Build terminal UIs in Go
- Create interactive CLI with Elm architecture
- Implement complex TUI applications
- Set up Bubble Tea project structure

## Inputs

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| projectName | string | Yes | Project name |
| modulePath | string | Yes | Go module path |
| components | array | No | Component definitions |

## Generated Patterns

### Main Application

```go
package main

import (
    "fmt"
    "os"

    tea "github.com/charmbracelet/bubbletea"
)

func main() {
    p := tea.NewProgram(initialModel(), tea.WithAltScreen())
    if _, err := p.Run(); err != nil {
        fmt.Printf("Error: %v", err)
        os.Exit(1)
    }
}
```

### Model Definition

```go
package main

import (
    "github.com/charmbracelet/bubbles/list"
    "github.com/charmbracelet/bubbles/textinput"
    tea "github.com/charmbracelet/bubbletea"
    "github.com/charmbracelet/lipgloss"
)

type model struct {
    list       list.Model
    textInput  textinput.Model
    err        error
    quitting   bool
}

func initialModel() model {
    ti := textinput.New()
    ti.Placeholder = "Enter search term..."
    ti.Focus()

    items := []list.Item{
        item{title: "Option 1", desc: "First option"},
        item{title: "Option 2", desc: "Second option"},
    }

    l := list.New(items, list.NewDefaultDelegate(), 0, 0)
    l.Title = "Select an option"

    return model{
        textInput: ti,
        list:      l,
    }
}

func (m model) Init() tea.Cmd {
    return textinput.Blink
}

func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
    switch msg := msg.(type) {
    case tea.KeyMsg:
        switch msg.String() {
        case "ctrl+c", "q":
            m.quitting = true
            return m, tea.Quit
        case "enter":
            // Handle selection
            return m, nil
        }
    case tea.WindowSizeMsg:
        m.list.SetSize(msg.Width, msg.Height-4)
    }

    var cmd tea.Cmd
    m.list, cmd = m.list.Update(msg)
    return m, cmd
}

func (m model) View() string {
    if m.quitting {
        return "Goodbye!\n"
    }

    return lipgloss.JoinVertical(
        lipgloss.Left,
        m.textInput.View(),
        m.list.View(),
    )
}
```

### List Item

```go
package main

type item struct {
    title string
    desc  string
}

func (i item) Title() string       { return i.title }
func (i item) Description() string { return i.desc }
func (i item) FilterValue() string { return i.title }
```

### Styles

```go
package main

import "github.com/charmbracelet/lipgloss"

var (
    titleStyle = lipgloss.NewStyle().
        Bold(true).
        Foreground(lipgloss.Color("205")).
        MarginBottom(1)

    selectedStyle = lipgloss.NewStyle().
        Foreground(lipgloss.Color("170")).
        Bold(true)

    normalStyle = lipgloss.NewStyle().
        Foreground(lipgloss.Color("252"))

    helpStyle = lipgloss.NewStyle().
        Foreground(lipgloss.Color("241"))
)
```

## Dependencies

```go
require (
    github.com/charmbracelet/bubbletea v0.25.0
    github.com/charmbracelet/bubbles v0.17.0
    github.com/charmbracelet/lipgloss v0.9.0
)
```

## Target Processes

- tui-application-framework
- dashboard-monitoring-tui
- interactive-form-implementation

Related Skills

yargs-scaffolder

509
from a5c-ai/babysitter

Generate Yargs-based CLI applications with commands, positional args, middleware, and TypeScript support. Creates a complete scaffolded CLI application with modern patterns.

textual-scaffolder

509
from a5c-ai/babysitter

Generate Textual (Python) TUI application structure with widgets, screens, and CSS styling.

oclif-scaffolder

509
from a5c-ai/babysitter

Generate oclif CLI framework projects with plugin support, topics, hooks, and TypeScript. Creates enterprise-grade CLI applications with extensibility.

commander-js-scaffolder

509
from a5c-ai/babysitter

Generate Commander.js CLI project structure with TypeScript, commands, options, and best practices. Creates a complete scaffolded CLI application ready for development.

cobra-scaffolder

509
from a5c-ai/babysitter

Generate Cobra/Viper-based Go CLI applications with persistent flags, subcommands, and configuration management. Creates production-ready Go CLI with modern patterns.

click-scaffolder

509
from a5c-ai/babysitter

Generate Click-based Python CLI applications with decorators, groups, context, and modern Python patterns. Creates complete scaffolded CLI with proper project structure.

clap-scaffolder

509
from a5c-ai/babysitter

Generate Clap-based Rust CLI applications with derive macros, subcommands, and modern Rust patterns. Creates production-ready Rust CLI with proper cargo structure.

bats-test-scaffolder

509
from a5c-ai/babysitter

Generate BATS test structure and fixtures for shell script testing with setup/teardown, assertions, and mocking.

argparse-scaffolder

509
from a5c-ai/babysitter

Generate argparse-based Python CLI applications with subparsers, type converters, and standard library patterns. Creates lightweight Python CLIs without external dependencies.

process-builder

509
from a5c-ai/babysitter

Scaffold new babysitter process definitions following SDK patterns, proper structure, and best practices. Guides the 3-phase workflow from research to implementation.

Workflow & Productivity

babysitter

509
from a5c-ai/babysitter

Orchestrate via @babysitter. Use this skill when asked to babysit a run, orchestrate a process or whenever it is called explicitly. (babysit, babysitter, orchestrate, orchestrate a run, workflow, etc.)

yolo

509
from a5c-ai/babysitter

Run Babysitter autonomously with minimal manual interruption.