skills: block. For the conceptual model, see Concepts → Skills.
Install everything from a GitHub repo to every detected agent
global: false (project-local), every skill in the source.
Install specific skills, in specific agents
select: matches the skill directory name in the source repo.
Install globally (across every project on this machine)
~/.claude/skills/ and are visible to Claude Code in every project.
Mix project and global
Source from a local directory
gaal.yaml file. ~/-prefixed paths resolve against the user’s home directory.
Source from a full URL
Source from SSH
Force install into every registered agent
By default, the["*"] wildcard expands only to agents detected on this machine. If you want gaal to populate skill directories for agents that aren’t installed yet (for example, to pre-stage a fresh machine), use --force:
agents: ["*"]. Explicit agent lists are honoured as-is.
Behaviour at sync time
- Skills already at the right version are reported
= unchanged. - New skills are added.
- Skills no longer in the config are left in place unless you pass
--prune. - Each skill source is fetched once per sync and reused across all agents that target it.