The installer is a zero-dependency Node script published as @linchpinagency/skills. It requires Node 18 or newer and needs no global install of its own.
Install into a project
Run it from the repository you want the skills available in.
npx @linchpinagency/skillsBy default this targets Claude Code and writes to .claude/skills in the current directory, alongside the vendored base layer.
Install globally
npx @linchpinagency/skills --globalGlobal is the usual choice, and the only one that works in tools like Conductor that give each workspace its own checkout.
Check what you have
npx @linchpinagency/skills --list
npx @linchpinagency/skills wp-studio-cli
npx @linchpinagency/skills --skip-upstream
Then start a new session and ask "what kind of project is this?". It should load project-context.
Choose an agent
--agent selects which directories the installer writes to. Pass all to install for every supported agent at once.
| Agent | --agent | Project scope | Global scope |
|---|---|---|---|
| Claude Code | claude-code (default) | .claude/skills | .claude/skills |
| GitHub Copilot | github-copilot | .agents/skills, .github/skills | .copilot/skills |
| Codex | codex | .codex/skills | .codex/skills |
| Cursor | cursor | .cursor/skills | .cursor/skills |
npx @linchpinagency/skills
npx @linchpinagency/skills --agent github-copilot
npx @linchpinagency/skills --agent codex
npx @linchpinagency/skills --agent cursor
Project and global scope collide
An agent reads both scopes. A skill installed in both is listed twice in every session, and its description is paid for twice in the agent's context.
npx @linchpinagency/skills --checkUpdate safely
Re-running the installer plans an update: it compares installed versions against the package and shows what would change. Nothing to change exits early.
-
Preview
Run with
--dry-runto see the diff and write nothing. -
Apply
Re-run without the flag and confirm at the prompt, or pass
--yesto skip it. -
Verify
Run
--listto confirm the installed set and versions.
The confirmation prompt is implied when the process is not attached to a terminal, so CI does not hang.
Offline and air-gapped installs
The base layer is fetched from GitHub at install time. If that fetch fails, the Linchpin skills still install and the installer warns. Re-run when online, or pass --skip-upstream to silence it and install the Linchpin layer only.