sync is the workhorse. It runs the audit, computes the plan, and applies it: clones or updates repositories, installs or refreshes skills, and upserts MCP entries.
Flags
| Flag | Default | Description |
|---|---|---|
-s, --service | off | Run as a continuous service (daemon mode). |
-i, --interval <duration> | 5m | Polling interval in service mode (e.g. 30s, 10m, 2h). |
--dry-run | off | Preview the plan without writing anything. See Dry-run. |
--prune | off | Remove skills and MCP entries no longer in the config. See Pruning. |
--force | off | Install skills into all registered agents even when not detected. Applies only to agents: ["*"]. |
Incompatible combinations
| Combo | Result |
|---|---|
--dry-run --service | Rejected, a dry-run service loop is meaningless. |
--prune --service | Rejected, destructive operations don’t belong in a loop. |
Exit codes
| Code | Mode | Meaning |
|---|---|---|
0 | one-shot | Success, nothing to change or all changes applied. |
0 | --dry-run | No changes pending. |
1 | --dry-run | Changes are pending, run gaal sync to apply. |
2 | any | Error during planning or apply. |