cli-guideline

Standardize human-first CLI design and review across Python, JavaScript, Bash, and Go.

6|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/archibate/archibate-skills --skill cli-guideline-archibate
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cli-guideline
Source: https://github.com/archibate/archibate-skills/tree/main/old-skills/redundant-skills/cli-guideline
Command: npx skills add https://github.com/archibate/archibate-skills --skill cli-guideline-archibate

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Provides a succinct, practical framework to design and review command-line interfaces so they are human-friendly, composable, and robust across interactive and scripted use-cases.

Core Features & Use Cases

  • Human-first design guidance: Prioritizes discoverability, helpful examples, and empathetic error messages for end users.
  • Composability & machine modes: Rules for stdout/stderr separation, --json and --plain outputs, and pipe-friendly behavior for automation.
  • Robustness and consistency: Flags, exit codes, TTY detection, timeouts, signal handling, config precedence, and language-specific recommendations for Python, Node/TS, Bash, and Go.
  • Use Case: Use these guidelines when writing a new CLI, reviewing a project's CLI for releases, or converting interactive utilities into scriptable tools for CI.

Quick Start

Review the provided CLI implementation and produce a prioritized checklist of violations against clig.dev principles, including suggested fixes for help text, output modes, flag names, and error handling.

Frequently Asked Questions about cli-guideline

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design a command-line interface with proper stdout and stderr separation?

Designing a command-line interface with proper stdout and stderr separation requires routing primary data and machine-readable output to stdout, while sending diagnostic logs and error messages to stderr to ensure pipe-friendly composability in automation workflows.

What are the best practices for writing CLI help text and error messages?

Best practices for writing CLI help text and error messages involve prioritizing discoverability with clear examples, standardizing flag naming, and providing empathetic error messages that guide users toward corrections instead of just failing.

How do I review a CLI project for release readiness and automation safety?

Review a CLI project for release readiness by checking it against a prioritized checklist of violations covering help text, output modes, flag names, exit codes, TTY detection, and signal handling to ensure robust scripted and interactive use.

Can I use these CLI design guidelines for tools written in Python, Bash, and Go?

Yes, you can use these CLI design guidelines for tools written in Python, JavaScript/TypeScript, Bash, and Go, providing language-specific recommendations for config precedence, timeouts, and prompt handling across utilities and automation workflows.

How do I make an interactive utility scriptable for CI pipelines?

Make an interactive utility scriptable for CI pipelines by implementing machine-readable output modes like --json, detecting TTY behavior to adjust prompts, and enforcing consistent exit codes for automated command-line workflows.

Why does my CLI tool break when piped to another command in automation?

Your CLI tool breaks when piped to another command if it lacks machine-readable output modes, mixes stdout with stderr, or fails to detect TTY behavior, violating composability conventions required for robust automation workflows.