Documentation Index
Fetch the complete documentation index at: https://docs.getgaal.com/llms.txt
Use this file to discover all available pages before exploring further.
skills:
- source: <string>
agents: <[string] | ["*"]>
global: <bool> # optional, default false
target_subdir: <string> # optional
select: <[string]> # optional
tools: <[ToolEntry]> # optional
Type
array[SkillEntry]
Required
No. Omit skills: if you have nothing to install.
Entry fields
source
| Field | Type | Required |
|---|
source | string | yes |
Where the skills come from. Accepts:
| Format | Example |
|---|
| GitHub shorthand | anthropics/skills |
| Full HTTPS URL | https://github.com/anthropics/skills |
| Git SSH URL | git@github.com:anthropics/skills.git |
| Local path | ./company-skills or ~/my-skills |
The source can contain one or many skills. Each top-level subdirectory containing a SKILL.md is one skill.
agents
| Field | Type | Required |
|---|
agents | array of strings | yes |
Either a list of registry names ([claude-code, cursor, codex]) or the wildcard ["*"].
["*"] resolves at sync time to agents currently detected on this machine. Use gaal sync --force to expand it to every registered agent regardless of detection.
global
| Field | Type | Required | Default |
|---|
global | bool | no | false |
| Value | Install layout |
|---|
false | ./.<agent>/skills/<name> (per-project) |
true | ~/.<agent>/skills/<name> (per-user) |
target_subdir
| Field | Type | Required |
|---|
target_subdir | string | no |
Optional subdirectory under the resolved agent skills directory. Use it when an agent supports grouping skills, or when you want two entries from the same source to land in different folders.
The value must be relative and cannot contain ...
select
| Field | Type | Required |
|---|
select | array of strings | no |
Names (matching subdirectory names in the source) of specific skills to install. Empty or omitted = install everything in the source.
| Field | Type | Required |
|---|
tools | array of ToolEntry | no |
CLI tools this skill collection depends on. Checked for presence by gaal doctor and surfaced in the gaal sync missing-tool banner. Accepts the same shorthand and full forms as the top-level tools: block — see Tools.
Example
skills:
- source: anthropics/skills
agents: ["*"]
global: false
- source: vercel-labs/agent-skills
agents: [claude-code, cursor]
select: [test-writer, code-reviewer]
global: true
- source: ./company-skills
agents: [claude-code, cursor]
global: false
- source: ./company-skills
agents: [codex]
target_subdir: team
- source: obra/superpowers
agents: ["*"]
tools:
- name: tree-sitter
hint: "brew install tree-sitter"
Behaviour
- Sources are fetched once per sync and reused across all targeted agents.
- Skills already at the right version are reported
= unchanged.
- Skills no longer in the config are left alone unless you pass
--prune.