Skip to main content
--sandbox redirects every filesystem write gaal would normally do to a directory of your choice. Use it whenever you want to run a real sync, including --prune, without touching your actual home directory or workspace.

The basics

After this command:
  • Repositories are cloned into /tmp/gaal-test/<original-path>.
  • Skill directories that would have been written to ~/.claude/skills/... land in /tmp/gaal-test/.claude/skills/....
  • MCP target files are created (or upserted) under /tmp/gaal-test/....
Nothing outside /tmp/gaal-test is touched.

What it’s good for

  • CI, verify a gaal.yaml change applies cleanly without affecting the runner.
  • Testing a new MCP server. See what the JSON would look like before letting gaal write it.
  • Auditing an unfamiliar config, run --sandbox against a stranger’s gaal.yaml and inspect the result.
  • Reproducing a bug, give support team a minimal test case that runs in a known-clean directory.

Combining with other flags

CI example

gaal doctor validates the YAML, --sandbox sync --dry-run proves the plan computes, and --sandbox sync proves it applies. None of it touches the runner’s real home.

Dry-run

gaal doctor

gaal sync