symlink-skillslisted
Install: claude install-skill usrrname/agent-skills
# Symlink Skills
Symlinks every directory under `<repo>/skills/` into each configured target,
making each skill in the registry globally discoverable. Edits in the repo are
picked up live because the symlinks point at the real files.
Default targets:
- `~/.claude/skills/` (Claude Code's standard skill directory)
- `~/.agents/skills/` (other agents that follow the same convention)
- `~/.cursor/skills/`
- `~/.config/opencode/skills/` on macOS, `~/.opencode/skills/` elsewhere (auto-detected via `$OSTYPE`; override with `OPENCODE_SKILLS_DIR`)
## Run
From the repo root:
```sh
./skills/symlink-skills/link.sh # link into both default targets
./skills/symlink-skills/link.sh --dry-run # preview without changes
./skills/symlink-skills/link.sh --force # replace existing files / mis-pointed symlinks
./skills/symlink-skills/link.sh --unlink # remove only the symlinks created by this skill
```
Pick targets explicitly (skips the defaults entirely once `--target` is set):
```sh
# Just Claude Code:
./skills/symlink-skills/link.sh --target ~/.claude/skills
# Multiple custom targets:
./skills/symlink-skills/link.sh --target ~/.claude/skills --target /work/.agents/skills
```
Or override any default via env var:
```sh
CLAUDE_SKILLS_DIR=/tmp/fake-claude/skills \
AGENTS_SKILLS_DIR=/tmp/fake-agents/skills \
CURSOR_SKILLS_DIR=/tmp/fake-cursor/skills \
OPENCODE_SKILLS_DIR=/tmp/fake-opencode/skills \
./skills/symlink-skills/link.sh
```
## Behaviour
- **Idempotent.**