
cli-skills
CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.
- Installs
- 53
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/llama-farm/llamafarm --skill cli-skills- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads cli-skills automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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
RunEoverRunfor error handling - Register flags in
init()functions - Use persistent flags for shared options
- Validate arguments with
Argsfield
Bubbletea TUI
- Implement
Init(),Update(),View()interface - Use message types for state changes
- Return
tea.Cmdfor 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 | Overview and quick reference |
| go-skills/patterns.md | Idiomatic Go patterns |
| go-skills/concurrency.md | Goroutines, channels, sync |
| go-skills/error-handling.md | Error wrapping, sentinels |
| go-skills/testing.md | Table-driven tests, mocks |
| go-skills/security.md | Input validation, secure coding |
CLI-Specific Checklists
| File | Description |
|---|---|
| cobra.md | Cobra command patterns, flags, validation |
| bubbletea.md | Bubbletea Model/Update/View patterns |
| performance.md | CLI-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
- User Experience First: CLI should feel responsive and provide clear feedback
- Graceful Degradation: Handle missing services, network errors, and timeouts gracefully
- Consistent Output: Use the output API for all user-facing messages
- Cross-Platform: Test on macOS, Linux, and Windows
- Terminal Compatibility: Test with different terminal emulators and sizes
FAQ
What does the cli-skills skill do?
CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.
How do I install cli-skills?
Run npx skills add https://github.com/llama-farm/llamafarm --skill cli-skills in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cli-skills/ (personal) or .claude/skills/cli-skills/ (project).
Which AI agents can use cli-skills?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is cli-skills safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains cli-skills?
It is published by llama-farm in llama-farm/llamafarm. It has 53 recorded installs.
More from llama-farm/llamafarm
code-review
llama-farm/llamafarm
Comprehensive code review for diffs. Analyzes changed code for security vulnerabilities, anti-patterns, and quality issues. Auto-detects domain (frontend/backend) from file paths.
commit-push-pr
llama-farm/llamafarm
Open the skill to read its SKILL.md instructions.
typescript-skills
llama-farm/llamafarm
Open the skill to read its SKILL.md instructions.
react-skills
llama-farm/llamafarm
React 18 patterns for LlamaFarm Designer. Covers components, hooks, TanStack Query, and testing.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.