https://github.com/jdx/usage
A specification for CLIs
https://github.com/jdx/usage
Last synced: 4 months ago
JSON representation
A specification for CLIs
- Host: GitHub
- URL: https://github.com/jdx/usage
- Owner: jdx
- License: mit
- Created: 2023-08-12T05:20:17.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2026-01-26T16:04:18.000Z (5 months ago)
- Last Synced: 2026-01-26T17:56:45.109Z (4 months ago)
- Language: Rust
- Homepage: https://usage.jdx.dev
- Size: 4.55 MB
- Stars: 486
- Watchers: 3
- Forks: 26
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome - jdx/usage - A specification for CLIs (Rust)
README
# Usage
Usage is a spec and CLI for defining CLI tools. Arguments, flags, environment variables, and config files
can all be defined in a Usage spec. It can be thought of like [OpenAPI (swagger)](https://www.openapis.org/)
for CLIs. Here are some potential reasons for defining your CLI with a Usage spec:
- Generate autocompletion scripts
- Generate markdown documentation
- Generate man pages
- Use an advanced arg parser in any language
- Scaffold one spec into different CLI frameworks—even different languages
- [coming soon] Host your CLI documentation on usage.sh
See more at [usage.jdx.dev](https://usage.jdx.dev/).