--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
- 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/....
/tmp/gaal-test is touched.
What it’s good for
- CI, verify a
gaal.yamlchange 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
--sandboxagainst a stranger’sgaal.yamland 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.