Command Line Interface Guidelines

An open source guide that distills decades of CLI design wisdom into concrete, actionable guidelines. Authored by engineers from Docker, Squarespace, and others, it covers philosophy, arguments and flags, output, errors, help, configuration, subcommands, and interactivity. A practical reference for designing modern command line tools.

API entry from apis.yml

apis.yml Raw ↑
aid: command-line-interface:design-guidelines
name: Command Line Interface Guidelines
description: An open source guide that distills decades of CLI design wisdom into concrete, actionable
  guidelines. Authored by engineers from Docker, Squarespace, and others, it covers philosophy, arguments
  and flags, output, errors, help, configuration, subcommands, and interactivity. A practical reference
  for designing modern command line tools.
humanURL: https://clig.dev/
baseURL: https://clig.dev
tags:
- Best Practices
- CLI Design
- Developer Experience
- Guidelines
- Open Source
properties:
- type: Documentation
  url: https://clig.dev/
- type: GitHubRepository
  url: https://github.com/cli-guidelines/cli-guidelines
- type: License
  url: https://creativecommons.org/licenses/by-sa/4.0/
x-features:
- Codifies nine high-level design principles for human-first CLIs
- Covers arguments, flags, subcommands, help, configuration, output, and errors
- Provides language-agnostic guidance applicable across ecosystems
- Open source under Creative Commons license, accepting community contributions
- Distinguishes human-readable from machine-readable output modes
x-useCases:
- Reviewing existing CLI tools against an industry-recognized rubric
- Bootstrapping a CLI design style guide for a new product or platform
- Educating teams on CLI conventions like POSIX flags and subcommands
- Justifying UX decisions in code reviews of CLI changes