jan-cli 0.19.0

YAML-defined CLI trees with progressive help, optional exec aliases, merged extra specs, and SQLite audit logging keyed by git branch
Documentation
about: |
  Git workflows: concise status, rich log and blame views, reflog and bisect,
  and passthrough wrappers for checkout, push, rebase, and raw `git` when you
  need every flag. Place `--help` after a prefix (e.g. `jan git log --help`) for
  progressive help; subprocesses receive their own `--help` when forwarded.
commands:
  s:
    about: Short branch name plus working tree status (`git status -sb`).
    exec:
      argv: ["git", "status", "-sb"]
  st:
    about: Alias of `git s` — same compact status line.
    exec:
      argv: ["git", "status", "-sb"]
  d:
    about: Unstaged diff — extra args forwarded (paths, `-w`, word diff, …).
    exec:
      argv: ["git", "diff"]
      passthrough: true
  ds:
    about: Staged diff (`git diff --staged`) — forwarded paths and options.
    exec:
      argv: ["git", "diff", "--staged"]
      passthrough: true
  co:
    about: Checkout branches, commits, or paths — full `git checkout` passthrough.
    exec:
      argv: ["git", "checkout"]
      passthrough: true
  sw:
    about: Switch branches safely (`git switch`) — forwarded names and options.
    exec:
      argv: ["git", "switch"]
      passthrough: true
  br:
    about: List, create, or delete branches — `git branch` with forwarded args.
    exec:
      argv: ["git", "branch"]
      passthrough: true
  ci:
    about: Create commits — forwarded `-m`, paths, `--amend`, hooks, …
    exec:
      argv: ["git", "commit"]
      passthrough: true
  ca:
    about: Commit all tracked changes (`git commit -a`) — forwarded message/flags.
    exec:
      argv: ["git", "commit", "-a"]
      passthrough: true
  push:
    about: Push refs — forwarded remote, branch, `--force-with-lease`, tags, …
    exec:
      argv: ["git", "push"]
      passthrough: true
  pull:
    about: Fetch and integrate — forwarded remote, rebase, merge options.
    exec:
      argv: ["git", "pull"]
      passthrough: true
  fetch:
    about: Download objects and refs — forwarded remotes and refspecs.
    exec:
      argv: ["git", "fetch"]
      passthrough: true
  merge:
    about: Merge branches — forwarded strategies, messages, no-ff, …
    exec:
      argv: ["git", "merge"]
      passthrough: true
  rebase:
    about: Rebase commits — forwarded onto branch, `-i`, autosquash, …
    exec:
      argv: ["git", "rebase"]
      passthrough: true
  stash:
    about: Stash local changes — forwarded `push`, `pop`, `list`, `apply`, …
    exec:
      argv: ["git", "stash"]
      passthrough: true
  log:
    about: Full `git log` — forwarded filters, paths, `-p`, `--stat`, …
    exec:
      argv: ["git", "log"]
      passthrough: true
  lg:
    about: Recent commits as a one-line graph (`--oneline --graph --decorate -n 30`).
    exec:
      argv: ["git", "log", "--oneline", "--graph", "--decorate", "-n", "30"]
      passthrough: true
  graph:
    about: Decorative history — graph, relative dates, boundary commits (good for overviews).
    exec:
      argv:
        [
          "git",
          "log",
          "--graph",
          "--pretty=format:%C(auto)%h%d %s %C(bold blue)<%an>%Creset %C(dim green)(%cr)%Creset",
          "-n",
          "40",
        ]
      passthrough: true
  last:
    about: Latest commit only — hash, subject, body (`git log -1` with pretty format).
    exec:
      argv: ["git", "log", "-1", "--pretty=fuller"]
      passthrough: true
  files:
    about: Log with per-commit file list (`--name-status`) — see what moved where.
    exec:
      argv: ["git", "log", "--name-status"]
      passthrough: true
  follow:
    about: History of a file across renames (`git log --follow --`) — pass path after `--`.
    exec:
      argv: ["git", "log", "--follow"]
      passthrough: true
  pickaxe:
    about: Search history for code changes — pass `-S`, `-G`, paths, and revs after this prefix (`git log` passthrough).
    exec:
      argv: ["git", "log"]
      passthrough: true
  wc:
    about: What changed in each commit (`git whatchanged`) — optional path args.
    exec:
      argv: ["git", "whatchanged"]
      passthrough: true
  shortstat:
    about: Compact diff stats per commit (`git log --shortstat`) — forwarded rev ranges.
    exec:
      argv: ["git", "log", "--shortstat"]
      passthrough: true
  blame:
    about: Line-by-line author info (`git blame`) — forwarded paths and ranges.
    exec:
      argv: ["git", "blame"]
      passthrough: true
  show:
    about: Show commit, tag, or object — forwarded diff and format options.
    exec:
      argv: ["git", "show"]
      passthrough: true
  reflog:
    about: HEAD and branch motion history (`git reflog`) — recover “lost” commits.
    exec:
      argv: ["git", "reflog"]
      passthrough: true
  bisect:
    about: Binary search for regressions (`git bisect`) — forwarded subcommands.
    exec:
      argv: ["git", "bisect"]
      passthrough: true
  cherry:
    about: Apply commits by patch (`git cherry-pick`) — forwarded strategies.
    exec:
      argv: ["git", "cherry-pick"]
      passthrough: true
  reset:
    about: Move HEAD or index (`git reset`) — forwarded soft/mixed/hard and paths.
    exec:
      argv: ["git", "reset"]
      passthrough: true
  clone:
    about: Clone a repository — forwarded URL, depth, branch, directory.
    exec:
      argv: ["git", "clone"]
      passthrough: true
  init:
    about: Create a new repository — forwarded template and directory.
    exec:
      argv: ["git", "init"]
      passthrough: true
  remote:
    about: Manage remotes — forwarded `-v`, `add`, `set-url`, …
    exec:
      argv: ["git", "remote"]
      passthrough: true
  tag:
    about: List or create tags — forwarded names, messages, signed tags.
    exec:
      argv: ["git", "tag"]
      passthrough: true
  describe:
    about: Human-readable name from nearest tag (`git describe`) — forwarded tags.
    exec:
      argv: ["git", "describe"]
      passthrough: true
  r:
    about: Raw git — `jan git r …` runs `git …` with forwarded args (escape hatch).
    exec:
      argv: ["git"]
      passthrough: true