link — Symlink existing skills to a platform
Symlink skills that already exist in the canonical directory to a specified platform directory. Unlike add, link does not download or install any skills from remote sources — it only operates on locally existing skills.
xskill link [OPTIONS] --skill <SKILL> --agent <AGENT>
Options:
-s, --skill <SKILL>— Skill name (use'*'for all skills)-a, --agent <AGENT>— Target platform (use'*'for all platforms)-g, --global— Operate on global~/.agents/skills/directory-A, --all— Shorthand for--skill '*' --agent '*'
Link behavior
| Flag | Behavior |
|---|---|
-s s1 -a codebuddy | Symlink .agents/skills/s1 to .codebuddy/skills/s1 (auto-creates platform dir) |
-s s1 -a codebuddy -g | Symlink ~/.agents/skills/s1 to ~/.codebuddy/skills/s1 |
-s s1 -a '*' | Link s1 to all existing platform directories |
-s '*' -a claude | Link all existing skills to claude platform |
-s '*' -a '*' | Link all existing skills to all existing platforms |
-A | Same as -s '*' -a '*' |
Key rules
linkdoes not require a-fparameter (no remote source involved).- No lock file update: skills were already installed and recorded by
add;linkonly creates symlinks. - Skills must already exist in the canonical directory (with
SKILL.md), otherwise an error is shown. -s '*'scans all subdirectories containingSKILL.mdin the canonical directory.- Symlinks use relative paths, following the same rules as
add. - Falls back to file copy if symlink creation fails.
agents_compat
Platforms with agents_compat: true are skipped (they read the canonical directory directly). Single platform: Skipped: <name> (agents_compat) (dimmed); -a '*': silently skipped with summary.
Examples
# Link a single skill to a specific platform
xskill link -s vue -a claude
# Link all existing skills to a platform
xskill link -s '*' -a claude
# Link a skill to all platforms
xskill link -s vue -a '*'
# Link everything to everything
xskill link -A
# Global mode
xskill link -s vue -a claude -g