packageskills helps package maintainers ship agent skills alongside their npm package.
It has two parts:
packageskills: maintainer CLI that scaffolds package-owned skill files and updatespackage.json@packageskills/runtime: tiny runtime used by the generated companion command in the published package
packageskills init adds a packageskills/ source folder to a package, generates a companion command like <primary-command>-skills, and patches the package so the runtime is available to end users.
End users then run the generated command from their project:
<primary-command>-skills install
<primary-command>-skills removeThe runtime currently installs package-owned skills into:
.claude/skills/<package-skill>/....opencode/skills/<package>/<package-skill>/....codex/skills/<package>/<package-skill>/...
Typical flow for a package maintainer:
pnpm add -D packageskills
pnpm exec packageskills init
pnpm installThen maintain skills in:
packageskills/<skill-name>/SKILL.md
init is rerunnable. It preserves maintainer-owned source skills, reconciles package.json, and refreshes package-owned generated files when safe.
- generates a companion command named
<primary-command>-skills - adds
@packageskills/runtimetodependencies - keeps an existing main CLI and adds a companion bin instead of replacing it
- copies full skill bundle folders, not just
SKILL.md - rewrites copied
SKILL.mdfrontmattername:to the installed folder name - overwrites package-owned installed skills on rerun
- removes only package-owned installed skills
- uses
process.cwd()directly; no monorepo-aware target discovery in v1 - no
postinstallbehavior
packages/packageskills maintainer CLI package
packages/runtime runtime used by generated package commands
packages/tests Vitest integration coverage
packages/fixtures fixture projects for CLI/runtime tests
apps/sandbox-maintainer
apps/sandbox-consumer
Use pnpm 10:
pnpm install
pnpm lint
pnpm testCONTRIBUTING.mdCODE_OF_CONDUCT.mdSECURITY.mdLICENSE
This repo includes two local demo apps:
apps/sandbox-maintainer: maintainer-side package where you can rerunpackageskills initapps/sandbox-consumer: consumer-side project that runs the generatedsandbox-skillscommand
Try the full flow:
cd apps/sandbox-maintainer
pnpm exec packageskills init
cd ../..
pnpm install
cd apps/sandbox-consumer
pnpm exec sandbox-skills install
pnpm exec sandbox-skills removeThat will create and remove package-owned skills in .claude/, .opencode/, and .codex/ inside apps/sandbox-consumer.