Skip to content

HumanFirstCliDesign

Dennis Lee edited this page Jul 18, 2026 · 1 revision

title: Human-First CLI Design radar_quadrant: Techniques radar_ring: Assess radar_position: inner

Human-First CLI Design

Command-line tools carry decades of accumulated design wisdom that most new tools ignore, which produces interfaces that are clumsy, inconsistent, and hard to script. Human-First CLI Design is the practice of building command-line programs against a codified set of principles rather than by improvisation. The reference guide Command Line Interface Guidelines blends traditional UNIX conventions with modern usability practice and was written by four engineers including two co-creators of Docker Compose.

Radar Assessment

Assess. The guide is an evergreen design reference directly relevant to CLI-heavy tooling work, but it is listed at Assess rather than higher because it has not yet been adopted first-person as a deliberate standard across the user's own tools. Inner position reflects how directly applicable the principles are.

Core Principles

The guidance is organized around a human-first but composable stance:

  • Composability: send primary output to stdout and messages to stderr, and return zero on success and non-zero on failure, so tools behave in pipelines.
  • Discoverability: expose help with -h or --help, validate input early, and return actionable error messages; show progress for long-running operations.
  • Well-behaved defaults: respect the NO_COLOR convention and the terminal environment, never require secrets as flag values, and make the default behavior serve most users.
  • Consistency: follow existing conventions so a new tool feels intuitive to anyone who already uses the command line.

Why It Matters

Applying these principles reduces user friction and surprise, and keeps tools predictable and scriptable, which compounds across a toolbox of many small command-line utilities.

References

Clone this wiki locally