🎯

cli-skills

🎯Skill

from llama-farm/llamafarm

VibeIndex|
What it does

Provides comprehensive Go CLI development guidelines using Cobra, Bubbletea, and Lipgloss for creating robust, interactive command-line interfaces in LlamaFarm projects.

cli-skills

Installation

Install skill:
npx skills add https://github.com/llama-farm/llamafarm --skill cli-skills
9
Last UpdatedJan 26, 2026

Skill Details

SKILL.md

CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.

Overview

# CLI Skills for LlamaFarm

Framework-specific patterns for the LlamaFarm CLI. These guidelines extend the [shared Go skills](../go-skills/SKILL.md) 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:

| Link | Description |

|------|-------------|

| [go-skills/SKILL.md](../go-skills/SKILL.md) | Overview and quick reference |

| [go-skills/patterns.md](../go-skills/patterns.md) | Idiomatic Go patterns |

| [go-skills/concurrency.md](../go-skills/concurrency.md) | Goroutines, channels, sync |

| [go-skills/error-handling.md](../go-skills/error-handling.md) | Error wrapping, sentinels |

| [go-skills/testing.md](../go-skills/testing.md) | Table-driven tests, mocks |

| [go-skills/security.md](../go-skills/security.md) | Input validation, secure coding |

CLI-Specific Checklists

| File | Description |

|------|-------------|

| [cobra.md](cobra.md) | Cobra command patterns, flags, validation |

| [bubbletea.md](bubbletea.md) | Bubbletea Model/Update/View patterns |

| [performance.md](performance.md) | CLI-specific optimizations |

Key Patterns in This Codebase

Command Registration Pattern

```go

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

```go

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

```go

// 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

```go

// 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

More from this repository10

🎯
rag-skills🎯Skill

Implements robust RAG document processing and retrieval using LlamaIndex, ChromaDB, and Celery for efficient, scalable AI document workflows.

🎯
generate-subsystem-skills🎯Skill

Generates specialized Claude Code skills for each subsystem, creating shared language and subsystem-specific checklists to optimize AI code generation across the monorepo.

🎯
common-skills🎯Skill

Manages shared Python utilities for LlamaFarm, focusing on HuggingFace model handling, GGUF file management, and cross-service consistency.

🎯
electron-skills🎯Skill

Configures secure Electron desktop application architecture with isolated processes, type-safe IPC, and cross-platform packaging for LlamaFarm.

🎯
go-skills🎯Skill

Enforces Go best practices and idiomatic patterns for secure, maintainable LlamaFarm CLI development.

🎯
typescript-skills🎯Skill

Enforces strict TypeScript best practices for React and Electron frontend applications, ensuring type safety, immutability, and clean code patterns.

🎯
commit-push-pr🎯Skill

Automates git workflow by committing changes, pushing to GitHub, and opening a PR with intelligent checks and handling of edge cases.

🎯
runtime-skills🎯Skill

Optimizes ML inference runtime with best practices for PyTorch, Transformers, and FastAPI, focusing on device management, model loading, and performance tuning.

🎯
server-skills🎯Skill

Provides server-side best practices and code review guidelines for FastAPI, Celery, and Pydantic frameworks in Python.

🎯
python-skills🎯Skill

Provides comprehensive Python best practices and code review guidelines for ensuring high-quality, secure, and maintainable code across LlamaFarm's Python components.