# Quick start
## 1. Prefer a reviewed tree
```bash
jan use /path/to/dotfiles/jan
# or: jan use ~/.config/jan/scripts
jan --help # live subcommands from that tree
jan list # script leaves
jan cron --list # scripts with time triggers
jan packages # cached uv / pnpm / gradle envs
jan use --show # where preference is stored
```
`jan use` writes `~/.config/jan-cli/config.json` (override with `JAN_CONFIG_DIR`). Every later `jan` invocation loads that directory.
## 2. Demo trees in this repo
From `jan-cli/`:
```bash
jan use examples --root demo.spec.yaml
jan --help
jan android skills list
jan use examples --root default.spec.yaml
jan git s
jan git r rev-parse --is-inside-work-tree
jan use examples --root packages.spec.yaml
jan --cwd examples summarize-sales run
jan --cwd examples summarize-sales run --product gadget
jan --cwd examples pin-report run
jan --cwd examples kotlin-greet run --name Ada
```
## 3. Author a minimal spec
Create a directory with `jan.yaml` (or `scripts.spec.yaml` / `jan.spec.yaml`):
```yaml
metadata:
name: myapp
description: |
Short description shown at the root help level.
commands:
hello:
about: Say hello
exec:
argv: ["echo", "hello"]
run-tool:
about: Forward args to an external command
exec:
argv: ["my-tool", "start"]
passthrough: true
```
```bash
jan use /path/to/that-dir
jan hello
jan run-tool -- --flag
```
## 4. Progressive help
Place `--help` immediately after the prefix you want to inspect:
```bash
jan --help
jan scripts --help
jan scripts misc sum help
```
`--help` after passthrough argv is rejected. Forward a child `--help` with `--`:
```bash
jan git r -- --help
```
Next: [YAML spec overview](spec/overview.md) and [command-line reference](usage/cli.md).