Skip to content

Prior art & credits

These guidelines stand on a lot of prior work. They are the agent-facing complement to the classic CLI canon, grounded in published guidance on building tools for LLMs and in a survey of the real-world crop of agent CLIs.

  • Command Line Interface Guidelines (clig.dev) — the modern reference for human-facing CLI UX. Much of Foundations is its stream discipline, exit-code conventions, and “human-first but scriptable” stance, carried into the agent setting.
  • 12-Factor CLI Apps — great help, flags over args, stdout/stderr discipline, never require a prompt.
  • POSIX/GNU argument conventions and the Unix philosophy — do one thing well; text streams as a universal interface; output of one program is input to the next.
  • Terraform plan-then-apply (the saved-plan = approval model behind reviewed-plan apply); kubectl --dry-run tiers; git --force-with-lease (conditional override); gh (a bare --yes can’t act on an implicit target).

The antipatterns and the ranking behind these rules come from a survey of the 2025–2026 wave of agent CLIs (the tools that emerged around the “give every app a CLI for your agent” moment). The recurring finding: these tools are strong on structured output and weak on safety, self-description, and token discipline — and “read-only by default,” the property everyone talks about, is the one most of them don’t actually implement. That gap is why this standard leads with it.

Authored and maintained by Ryan Wolfe. Prose and rationale are licensed CC BY 4.0 — reuse and adapt with attribution. Contributions and challenges welcome via GitHub (see Evolution).