Skip to main content
gaal doctor [flags]
Validates gaal.yaml, checks that every source is reachable, verifies every MCP target is writable, and reports agent and telemetry status. Run it any time gaal is misbehaving, and as a CI gate.

Flags

FlagDefaultDescription
--offlineoffSkip network reachability checks.
--no-upselloffSuppress the Community Edition graduation message.
Plus all global flags.

Exit codes

CodeMeaning
0All checks passed.
1Warnings only, gaal will function.
2Errors, gaal cannot operate as configured.
gaal doctor && echo "ready to sync"

Sample output

$ gaal doctor
config:
  ✓ ./gaal.yaml parses against schema 1
  ✓ no scope-restricted fields in workspace
sources:
  ✓ anthropics/skills          reachable
  ✓ vercel-labs/agent-skills   reachable
mcps:
  ✓ ~/.config/claude/claude_desktop_config.json   writable
  ✓ ~/.cursor/mcp.json                            writable
agents:
  installed: claude-code, cursor, codex
  not installed: github-copilot, windsurf
telemetry:
  ✓ disabled (per ~/.config/gaal/config.yaml)

3 agents installed, 0 misconfigured

CI usage

- run: gaal doctor --offline
- run: gaal --sandbox "$RUNNER_TEMP/gaal-sb" sync --dry-run
- run: gaal --sandbox "$RUNNER_TEMP/gaal-sb" sync
--offline is essential in air-gapped or rate-limited CI environments.

Using gaal doctor

Common errors