Skip to main content
gaal.yaml is the entire user-facing surface of gaal. Everything else, commands, audit, planning, rendering, exists to read this file and reconcile it against your filesystem.

File location

gaal looks for the configuration file in this order:
  1. The path passed to --config, if any.
  2. gaal.yaml in the current working directory.
  3. ~/.config/gaal/config.yaml (user scope).
  4. /etc/gaal/config.yaml (system scope).
When multiple are present, the higher-priority file overrides the lower one. See Scopes for the merge rules.

Top-level keys

gaal.yaml
Every key is independent. A file with only skills: is a valid gaal.yaml and a sync only touches skills.

A complete example

gaal.yaml

Validate before sync

Two ways to check a gaal.yaml is well-formed:
Both surface schema errors with line numbers.

IDE auto-completion

gaal schema writes the JSON Schema for gaal.yaml. Drop it into your editor and you get inline validation and completion as you type:
See gaal schema for VS Code and JetBrains setup.

Repositories

Skills

MCP servers

Scopes