The pattern
- Create (or use your existing) dotfiles repository.
- Put your user-scope
config.yamlin there. - Optionally put per-project
gaal.yamlfiles in the repos they describe. - On every machine, after cloning, symlink the user file and run
gaal sync.
Repo layout
Bootstrap script
Per-project workspace files
A workspacegaal.yaml overrides the user file for the things it specifies. Use this for codebase-specific setup that should live with the repo:
gaal sync gets the project-specific MCP server and skills, on top of whatever’s in their personal user-scope config.
Pulling latest
The dotfiles approach degrades gracefully:- Pull your dotfiles repo (
git pullfrom the workflow you already have). - Run
gaal sync.
git pull.
What not to put in a shared gaal.yaml
- Anything secret. See Environment & secrets.
- Per-machine paths (e.g.
target: /Users/me/...). Use~/...so it works for anyone. telemetry:, workspace files can’t set it anyway. See Scopes.