Sync Skill
Overview
Sync a skill from this repository by making ~/.claude/skills/<skill> the source-facing symlink to the repo skill, then making ~/.agents/skills/<skill> and ~/.codex/skills/<skill> point at the Claude skill path.
Codex discovers local functionality from ~/.codex/skills in this setup. Do not install command files into ~/.codex/commands expecting Codex to recognize them. When the source artifact is a repo command under commands/<name>.md, use $sync-command; it creates or reuses a command-backed skill for Codex.
Use the bundled script for the filesystem changes so repeated syncs update links consistently.
Workflow
- Identify the repo skill name or path. Prefer a skill name when the source is
skills/<name>. - Inspect the source skill and confirm it contains
SKILL.md. - Run the installer:
python3 <this-skill-dir>/scripts/install_local_skill.py <skill-name-or-path>
Example from this repo:
python3 skills/sync-skill/scripts/install_local_skill.py handover
- Verify the output shows all three managed links:
~/.claude/skills/<skill>-> repo skill directory~/.agents/skills/<skill>->~/.claude/skills/<skill>~/.codex/skills/<skill>->~/.claude/skills/<skill>
- For Codex, verify
~/.codex/skills/<skill>/SKILL.mdis readable through the symlink. - Tell the user to restart the relevant agent app so it reloads skill metadata.
Existing Installs
The installer replaces whatever is already at the destination:
- Missing links are created.
- Existing symlinks are replaced when they point somewhere else.
- Existing real files or directories are removed and replaced with the symlink.
Options
Use --dry-run to preview changes without writing symlinks:
python3 skills/sync-skill/scripts/install_local_skill.py handover --dry-run
Use --repo-root <path> when running from outside this repository and passing a skill name.
Only override the destination directories when the user explicitly asks for non-default install roots.