{"repo":"bbkane/warg","free":true,"listed":false,"github":"https://github.com/bbkane/warg","clone":"git clone https://github.com/bbkane/warg.git","description":"Declarative CLI framework","language":"Go","stars":56,"topics":["cli","command","command-line","commandline","go","golang","golang-library","subcomm"],"license":"MIT","category":"cli-tools","readme_excerpt":"warg An opinionated CLI framework: - declarative nested commands - detailed, colored --help output (including what a flag is currently set to) - update flags from os.Args , config files, environment variables, and app defaults - extend with new flag types, config file formats, or --help output - snapshot testing support Project Status (2025-06-15) warg is still a work in progress, but the \"bones\" are where I want them - I don't intend to change the basic way warg works, but I do plan to experiment with a few APIs (make the value and config APIs simpler), and add TUI generation. I think the largest breaking changes are behind me (see the CHANGELOG). Read Go Project Notes to help understand the tooling. I'm watching issues; please open one for any questions and especially BEFORE submitting a Pull request. Examples All of the CLIs on my profile use warg. See API docs (including code examples) at pkg.go.dev Simple \"butler\" example (full source here): When to avoid warg By design, warg apps have the following requirements: - must contain at least one subcommand. This makes it easy to add further subcommands, such as a version subcommand. It is not possible to design a warg app such that calling --flag does useful work. Instead, --flag must be used. - warg does not support positional arguments. Instead, use a required flag: git clone would be git clone --url . This makes parsing much easier, and I like the simplicity of it, even though it's more to type/tab-complete. Alternatives -","default_branch":null,"files":null,"tree":[],"storefront":"/r/bbkane","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/bbkane/warg/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}