Get best practices for building CLI tools using the Go LlamaFarm framework.

Install

mkdir -p .claude/skills/cli-skills && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5554" && unzip -o skill.zip -d .claude/skills/cli-skills && rm skill.zip

Installs to .claude/skills/cli-skills

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.
100 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Implement Cobra commands with error handling
  • Design interactive terminal user interfaces using Bubbletea
  • Apply consistent terminal styling with Lipgloss
  • Manage service orchestration for CLI applications
  • Handle build-time information and versioning

How it works

This skill provides framework-specific patterns for Go CLI development using Cobra for commands, Bubbletea for TUI, and Lipgloss for styling. It outlines best practices for directory structure, error handling, and component implementation.

Inputs & outputs

You give it
Go source code for a CLI application
You get back
A functional command-line interface with TUI and styling

When to use cli-skills

  • Create cobra cli commands
  • Build terminal ui
  • Apply lipgloss styling
  • Implement go cli best practices

About this skill

CLI Skills for LlamaFarm

Framework-specific patterns for the LlamaFarm CLI. These guidelines extend the shared Go skills with Cobra, Bubbletea, and Lipgloss best practices.

Tech Stack

  • Go 1.24+
  • Cobra (CLI framework)
  • Bubbletea (TUI framework)
  • Lipgloss (terminal styling)
  • Bubbles (TUI components)

Directory Structure

cli/
  cmd/             # Cobra command implementations
    config/        # Configuration types and loading
    orchestrator/  # Service management and process control
    utils/         # Shared utilities (HTTP, output, logging)
    version/       # Version and upgrade handling
  internal/        # Internal packages (not exported)
    tui/           # Reusable TUI components
    buildinfo/     # Build-time information

Quick Reference

Cobra Commands

  • Use RunE over Run for error handling
  • Register flags in init() functions
  • Use persistent flags for shared options
  • Validate arguments with Args field

Bubbletea TUI

  • Implement Init(), Update(), View() interface
  • Use message types for state changes
  • Return tea.Cmd for async operations
  • Keep state immutable in Update()

Lipgloss Styling

  • Define styles as package-level constants
  • Use lipgloss.NewStyle() for styling
  • Handle terminal width dynamically
  • Support color themes via style variables

Shared Go Skills

This skill extends the base Go skills. See:

LinkDescription
go-skills/SKILL.mdOverview and quick reference
go-skills/patterns.mdIdiomatic Go patterns
go-skills/concurrency.mdGoroutines, channels, sync
go-skills/error-handling.mdError wrapping, sentinels
go-skills/testing.mdTable-driven tests, mocks
go-skills/security.mdInput validation, secure coding

CLI-Specific Checklists

FileDescription
cobra.mdCobra command patterns, flags, validation
bubbletea.mdBubbletea Model/Update/View patterns
performance.mdCLI-specific optimizations

Key Patterns in This Codebase

Command Registration Pattern

var myCmd = &cobra.Command{
    Use:   "mycommand [args]",
    Short: "Brief description",
    Long:  `Extended description with examples.`,
    Args:  cobra.MaximumNArgs(1),
    RunE: func(cmd *cobra.Command, args []string) error {
        // Implementation with error returns
        return nil
    },
}

func init() {
    rootCmd.AddCommand(myCmd)
    myCmd.Flags().StringVar(&flagVar, "flag", "default", "Flag description")
}

TUI Model Pattern

type myModel struct {
    viewport viewport.Model
    textarea textarea.Model
    width    int
    height   int
    err      error
}

func (m myModel) Init() tea.Cmd {
    return tea.Batch(m.textarea.Focus(), doAsyncWork())
}

func (m myModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
    var cmds []tea.Cmd
    switch msg := msg.(type) {
    case tea.WindowSizeMsg:
        m.width = msg.Width
        m.height = msg.Height
    case tea.KeyMsg:
        switch msg.String() {
        case "ctrl+c":
            return m, tea.Quit
        }
    }
    return m, tea.Batch(cmds...)
}

func (m myModel) View() string {
    return lipgloss.JoinVertical(lipgloss.Left,
        m.viewport.View(),
        m.textarea.View(),
    )
}

Output API Pattern

// Use the output API for consistent messaging
utils.OutputInfo("Starting service %s...", serviceName)
utils.OutputSuccess("Service started successfully")
utils.OutputError("Failed to start service: %v", err)
utils.OutputProgress("Downloading model...")
utils.OutputWarning("Service already running")

Service Orchestration Pattern

// Ensure services are running before operations
factory := GetServiceConfigFactory()
config := factory.ServerOnly(serverURL)
orchestrator.EnsureServicesOrExitWithConfig(config, "server")

// Or with multiple services
config := factory.RAGCommand(serverURL)
orchestrator.EnsureServicesOrExitWithConfig(config, "server", "rag", "universal-runtime")

Guidelines

  1. User Experience First: CLI should feel responsive and provide clear feedback
  2. Graceful Degradation: Handle missing services, network errors, and timeouts gracefully
  3. Consistent Output: Use the output API for all user-facing messages
  4. Cross-Platform: Test on macOS, Linux, and Windows
  5. Terminal Compatibility: Test with different terminal emulators and sizes

When not to use it

  • When developing CLIs not based on Go
  • When not using Cobra, Bubbletea, or Lipgloss

Prerequisites

Go 1.24+

Limitations

  • Specific to Cobra, Bubbletea, and Lipgloss frameworks
  • Requires Go 1.24+

How it compares

This skill offers specific guidelines for a Go-based CLI stack, providing a structured approach to development compared to ad-hoc implementation without established patterns.

Compared to similar skills

cli-skills side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
cli-skills (this skill)36moNo flagsIntermediate
generate-subsystem-skills16moNo flagsAdvanced
go-pro-max05moReviewAdvanced
architecture-patterns552moNo flagsAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

generate-subsystem-skills

llama-farm

Generate specialized skills for each subsystem in the monorepo. Creates shared language skills and subsystem-specific checklists for high-quality AI code generation.

17

go-pro-max

vurakit

Go development intelligence. 12 domains, 10 stacks, 300+ entries. Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check Go code. Domains: pattern, package, error, perf, test, concurrency, interface, arch, idiom, anti, tooling, module. Stacks: web-g

00

architecture-patterns

wshobson

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use when architecting complex backend systems or refactoring existing applications for better maintainability.

55214

bubbletea

hmans

Browse Bubbletea TUI framework documentation and examples. Use when working with Bubbletea components, models, commands, or building terminal user interfaces in Go.

42104

workflow-orchestration-patterns

wshobson

Design durable workflows with Temporal for distributed systems. Covers workflow vs activity separation, saga patterns, state management, and determinism constraints. Use when building long-running processes, distributed transactions, or microservice orchestration.

10117

go-dev-guidelines

jumppad-labs

This skill should be used when writing, refactoring, or testing Go code. It provides idiomatic Go development patterns, TDD-based workflows, project structure conventions, and testing best practices using testify/require and mockery. Activate this skill when creating new Go features, services, packages, tests, or when setting up new Go projects.

1495

Search skills

Search the agent skills registry