Link installed skills into Claude Code - #140
Closed
vshulman wants to merge 2 commits into
Closed
Conversation
`parallel-cli skills install` writes to `~/.agents/skills`, the cross-agent location read by Gemini CLI, Copilot, Codex and Amp. Claude Code only scans `~/.claude/skills` (and `<project>/.claude/skills`), so skills installed by the CLI were invisible to it — the install reported success and nothing showed up. Keep `.agents/skills` as the single canonical copy and link each installed skill into Claude Code's tree when a `.claude` directory is present. Symlinks mean there is nothing to keep in sync; the folder is copied where symlinks need privileges (Windows). The step is best-effort: it never clobbers an existing skill of the same name, and any failure only warns rather than failing the primary install. Uninstall drops the links it created, and install prunes links for skills that a narrower `--skill` set removed, so no dead slash commands are left behind. Post-install output now names the actual commands. The CLI ships loose skills, so they are invoked as `/parallel-web-search`, not `/parallel:parallel-web-search` — that namespaced form belongs to the marketplace plugin, a separate install channel. README gains an Agent Skills section documenting both, and the CLI overview tree gains the `skills` group it was missing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
`skills install` writes to `~/.agents/skills`, which Gemini CLI, Copilot, Codex and Amp read. Claude Code only scans `~/.claude/skills`, so installed skills never showed up there. Symlink each installed skill into Claude Code's tree when a `.claude` directory is present, so one canonical copy serves every agent. A path that already exists is left alone, and a symlink failure warns instead of failing the install. Also print the slash commands after installing. These are loose skills, so they are `/parallel-web-search`, not `/parallel:parallel-web-search` — that form belongs to the marketplace plugin. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before:
parallel-cli skills installcopies skills into~/.agents/skills— the cross-agent location that Gemini CLI, Copilot, Codex and Amp read. Claude Code only scans~/.claude/skills, so it never found them. The install reported success and nothing appeared.After: the installer also symlinks each skill into
~/.claude/skills(or<project>/.claude/skills) when a.claudedirectory is present. One canonical copy in.agents/skillsserves every agent.Also: the install output now prints the slash commands. These are loose skills, so they are
/parallel-web-search— the/parallel:parallel-web-searchform only exists via the marketplace plugin, which is a separate install channel.Safety: a path that already exists is skipped, so a hand-written skill of the same name is never overwritten.
~/.claudeis never created for people who don't use Claude Code. A symlink failure (Windows without Developer Mode) prints a warning rather than failing the install.Verified end-to-end against the live
skills.parallel.aiindex in a sandboxedHOME: all 10 skills link, a hand-writtenparallel-findallsurvives untouched, and a HOME without~/.claudegets no directory created. 780 tests pass; ruff, tach and ty clean.