Configuration-first CLI with dynamic completion, runtime eval, and container-friendly runners.
- Install via Homebrew (tap required):
brew tap gbenm/labs
brew install fire- execute
fire cli initto create afire.yml:
commands:
hello: echo "Hello Fire"- Run it:
fire hello world
# => Hello Fire world- Enable completion (zsh + bash):
fire cli completion installFire loads, merges, and executes commands defined in YAML (fire.yml, fire.yaml, *.fire.yml, *.fire.yaml). Commands can:
- run shell
execsteps - evaluate runtime snippets via
eval(node/deno/python) - rewrite arguments with
compute - use runners, fallback runners, and pre-run
beforehooks - expose nested subcommands with greedy resolution
Reserved name: cli cannot be defined under commands.
Install or refresh completion anytime:
fire cli completion install- zsh shows values + descriptions
- bash uses
complete -Cvalues
Details: see docs/completion.md.
Associate your YAML with https://raw.githubusercontent.com/gbenm/fire/main/schemas/fire.schema.json for validation (fire cli init does it):
- Add
$schemato the first line:# yaml-language-server: $schema=https://raw.githubusercontent.com/gbenm/fire/main/schemas/fire.schema.json - Or map file names in
.vscode/settings.json(yaml.schemas).
- Buy Me a Coffee: https://buymeacoffee.com/gbenm
- Bitcoin (BTC):
bc1q0l8na5gr6jgpnq6r7fj0nl3hqx2dm77l2vearuxx20s5ktes45vsxmksfu - USDC (Ethereum ERC20):
0x26D01f6fBa520D343CDAF309ba04FB9a7B26b4DE