The registry
gaal ships with a built-in registry that records, for every supported agent:- Project skills directory, where skills live inside a project (e.g.
.claude/skills,.cursor/skills). - Global skills directory, where skills live in the user’s home (e.g.
~/.claude/skills). - MCP config file, the JSON file gaal upserts into (e.g.
~/.config/claude/claude_desktop_config.json). - Skills search paths, additional directories
gaal auditscans when discovering existing skills. - Package-manager search paths, vendor-specific directories (
~/.cursor/extensions,~/.claude/plugins/cache) where extension-installed skills may live.
gaal agents cursor.
What “installed” means
gaal calls an agent installed when at least one of these is true on the host:- The agent’s MCP config file exists.
- The agent’s project skills directory exists.
- The agent’s global skills directory exists.
- A package-manager path for the agent exists (e.g.
~/.cursor/extensions).
agents: ["*"] wildcard in your skills entries.
Renderers
Once gaal knows what to install (the plan fromgaal sync) and where (the registry), the per-agent renderer does the actual write:
- For skills, the renderer copies the source files into the agent’s skills directory and adapts file names if the agent expects a different layout.
- For MCP servers, the renderer reads the target JSON, upserts the
mcpServersentry, and writes the file back atomically.
The “generic” agent
Some agents (Cline, Cursor in default mode, Codex, OpenCode, Warp, …) follow vendor-neutral conventions. Rather than maintaining separate redundant entries, gaal has a built-ingeneric agent that owns:
./.agents/skills(project-local)~/.agents/skills(global)
supports_generic_project: true or supports_generic_global: true install through the generic renderer. This means a single .agents/skills/ directory can serve multiple agents at once.
See Agent integrations for which agents use the generic fallback.
Extending the registry
You can teach gaal about an agent it doesn’t know yet by writing your own registry file at:| OS | Path |
|---|---|
| Linux / macOS | $XDG_CONFIG_HOME/gaal/agents.yaml (defaults to ~/.config/gaal/agents.yaml) |
| Windows | %AppData%\gaal\agents.yaml |