CLI Principles
CLI Principles Section 11 Draft

11. Implementation neutrality

Source 11-implementation.md

Back to the spec index

  • The spec is language agnostic. It describes behaviour that a caller can observe. It says nothing about the language, framework, parser, or library used to build a CLI. A CLI in any language conforms if it behaves as written.
  • The spec does not require a shared library, a template, or a code generator. People may write them. They are optional aids, and they are outside this spec.
  • Rules are written as behaviour (“stdout carries data only”, “exit code 6 on conflict”), not as code structure.
  • Platform behaviour is specified where it matters, so the same rules hold on Windows, macOS, and Linux: paths (section 9), locks (section 7), and terminal detection (section 4). All three are supported equally.