Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CLI Inspection

Shadowtree exposes recipe behavior before execution. Use inspection commands before running unfamiliar recipes, writes, deletes, installs, regeneration, or sync-out.

Help

shadowtree help prints CLI usage, active config/profile, and resolved recipes with their help text.

shadowtree help
shadowtree help test
shadowtree help test color=false

shadowtree help <recipe> prints these fields when present or applicable:

  • recipe name and help text
  • command
  • sandboxed marker for unsandboxed recipes
  • tool requirements
  • pre and post
  • for_each
  • workdir
  • typed arguments with help, info, and configured values
  • sync-out paths for sandboxed recipes

Recipe Listing

shadowtree recipes prints resolved recipe names and help text. If a recipe has no help, Shadowtree falls back to a compact command summary.

shadowtree recipes

Plan Printing

--print prints the resolved execution plan without running it:

shadowtree --print test ./internal/runner
shadowtree --print --expanded test ./internal/runner

The plan includes fields such as recipe name, profile, config path, unsandboxed marker, declared requirements, stages, for_each, workdir, main command, post commands, and sync-out paths.

--print --expanded also prints normalized defaults for absent fields, expanded script bodies, the selected preset, resolved typed arguments, leftover variadic args, computed vars, recipe-local env, expanded log settings, and expanded sync-out paths.

Checks

--check validates the selected resolved recipe without running commands:

shadowtree --check test
shadowtree --check --shell test

It validates nested @recipe and @path:recipe references, reports missing references, rejects reference cycles, and validates resolved log and workdir paths.

--check does not check host tool availability declared in requires; those are checked only before real execution.

--check --shell additionally parses expanded sh and bash script bodies after placeholder expansion and shell prelude insertion.