name: jan-cli
description: |
YAML-defined CLI command trees for agents and humans:
- Nested subcommands with progressive `--help` at each level
- Leaf nodes that delegate to real programs (`exec.argv`)
- Optional passthrough of extra CLI args (`exec.passthrough`)
- Script `path`, `dependencies` (other scripts on PATH), `requires` (external tools), and `env`
- Global framework flags (`jan --help`, `-v`/`--verbose`, `--extra-spec`, `--stdin-spec`, …)
- Runtime merge of extra YAML fragments (comma-separated `JAN_EXTRA_SPEC` or repeated `--extra-spec`)
- SQLite audit log of invocations keyed by git branch (override with `--branch` / `JAN_BRANCH`)
- Well-known spec directory (`~/.config/jan/scripts`, `JAN_INSTALL_DIR`) when no explicit spec flags are set
- `jan bundle` / `jan alias` for portable spec export and shell aliases
language: rust
tags:
- rust
- cli
- yaml
- sqlite
- agents
scripts:
build:
command: cargo build --release
test:
command: cargo test
fmt:
command: cargo fmt
clippy:
command: cargo clippy
run:
command: cargo run --bin jan -- --help
package:
command: cargo package
publish:
command: cargo publish