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`)
- Built-in `default.spec.yaml` when no project spec is present (git, disk, net, proc, gradle, Rust, Android, Docker, Linux systemd/journal)
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