{"_id":"@aitoolslabs/skills","_rev":"5-a364ca0dce3d4e26ce954ecb32a93604","name":"@aitoolslabs/skills","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@aitoolslabs/skills","version":"0.1.0","license":"UNLICENSED","_id":"@aitoolslabs/skills@0.1.0","maintainers":[{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"}],"bin":{"skills":"dist/index.js"},"dist":{"shasum":"65ebe08a8831090c470196b5d0da84dfb9c81cbd","tarball":"https://registry.npmjs.org/@aitoolslabs/skills/-/skills-0.1.0.tgz","fileCount":9,"integrity":"sha512-0KJj7WRejSUSBp7io9Pb3UByygvmQLPE8okPbLQE+rRJ3X9wMEAbWj3Umnjq/4aoEqdbi4CjXRMH3Fixa+gaog==","signatures":[{"sig":"MEUCIBxYYjc7rsWX+Ix4df+L3pEbfIme2ZakaI4Wef3XmjokAiEAyXtzQCzCE7rlrgNxzmiCt4Td/8wwxFmBoiqjuRDqwIM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18726},"type":"module","engines":{"node":">=18"},"gitHead":"dc62ce0b14c36e05891bf98ffd3953de16a55796","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"},"_npmVersion":"10.8.2","description":"Install and manage aitoolslabs organisation agent skills","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.0","commander":"^12.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/skills_0.1.0_1784104441995_0.0006108529350630221","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aitoolslabs/skills","version":"0.2.0","license":"UNLICENSED","_id":"@aitoolslabs/skills@0.2.0","maintainers":[{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"}],"bin":{"skills":"dist/index.js","aitoolsskills":"dist/index.js"},"dist":{"shasum":"f17ed350f8f9a6a7ac8b2256985aaa2a713e6650","tarball":"https://registry.npmjs.org/@aitoolslabs/skills/-/skills-0.2.0.tgz","fileCount":9,"integrity":"sha512-LA9jQU+AS6qDDIiCAAIvsZnawITbveRwnBXGowAcbyIXQXPKBxUVdVX4uc+Kbc1yUzED8RI2LADaV/xFNy+ycA==","signatures":[{"sig":"MEUCICn5QGAMuBtF8RAR7qoM7ug+KJhmCEC6I01ZW/wfoXA8AiEAtJVyyLTmlbcgGp5PBMuOkZGecmAaZDJztBzDQxxSamM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24882},"type":"module","engines":{"node":">=18"},"gitHead":"2ad90b8b27232bb738f1aebac7ec3e0e878a6f87","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"},"_npmVersion":"11.18.0","description":"Install and manage aitoolslabs organisation agent skills","directories":{},"_nodeVersion":"22.23.1","dependencies":{"yaml":"^2.4.0","commander":"^12.1.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.14.0","semantic-release":"^25.0.7","@semantic-release/git":"^10.0.1"},"_npmOperationalInternal":{"tmp":"tmp/skills_0.2.0_1784270924144_0.8644369198633415","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aitoolslabs/skills","version":"0.3.0","license":"UNLICENSED","_id":"@aitoolslabs/skills@0.3.0","maintainers":[{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"}],"bin":{"skills":"dist/index.js","aitoolsskills":"dist/index.js"},"dist":{"shasum":"da29f911952eef7ca9d3557987c7aa75ab22d764","tarball":"https://registry.npmjs.org/@aitoolslabs/skills/-/skills-0.3.0.tgz","fileCount":10,"integrity":"sha512-BBiUiLbHL5ui/thNTv0AOM04C3Q5wsgbr4c108Rq7+8sl4bsj5pmKRCQOHecHnOUgy4VJg4ArFeNKTDofDNgNg==","signatures":[{"sig":"MEUCIDXoG0wgUKeroR4cQFqOglTeK/wXI5uco9RSUiGWSuyDAiEAnqcuhMcjPxzk0B2YOxn2AvINl+1i3ARX/ueNFmX6H4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26145},"type":"module","engines":{"node":">=18"},"gitHead":"1da48c3145c48fe5ed50b94ff3238666bb99b0b3","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"},"_npmVersion":"11.18.0","description":"Install and manage aitoolslabs organisation agent skills","directories":{},"_nodeVersion":"22.23.1","dependencies":{"yaml":"^2.4.0","figlet":"~1.7.0","commander":"^12.1.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.14.0","@types/figlet":"^1.7.0","semantic-release":"^25.0.7","@semantic-release/git":"^10.0.1"},"_npmOperationalInternal":{"tmp":"tmp/skills_0.3.0_1784271928227_0.7168332037018672","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aitoolslabs/skills","version":"0.4.0","license":"UNLICENSED","_id":"@aitoolslabs/skills@0.4.0","maintainers":[{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"}],"bin":{"skills":"dist/index.js","aitoolsskills":"dist/index.js"},"dist":{"shasum":"91c626f0e2957d64a416a969db60bee16d0cd42c","tarball":"https://registry.npmjs.org/@aitoolslabs/skills/-/skills-0.4.0.tgz","fileCount":10,"integrity":"sha512-CWNVe/PaRrVL60YcSZkaLvUANBp7dITYqHv7/oDKF1zSoMPIfZkYEZJDnwop0eRz5S/B+7/FsjnJNNRmyjcShw==","signatures":[{"sig":"MEUCIQCkltLld19z+4z+I2A/qXDG6ZZ8fCvC+XRDkXTx2CEw1QIgB/p02e+eGvm2nxAeXCZ2Yh/zFu2hnaNheNMdEJbsp/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26341},"type":"module","engines":{"node":">=18"},"gitHead":"8ba3f9fbea254fdc41af185d3b635a193ddd8b08","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"},"_npmVersion":"11.18.0","description":"Install and manage aitoolslabs organisation agent skills","directories":{},"_nodeVersion":"22.23.1","dependencies":{"yaml":"^2.4.0","figlet":"~1.7.0","commander":"^12.1.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.14.0","@types/figlet":"^1.7.0","semantic-release":"^25.0.7","@semantic-release/git":"^10.0.1"},"_npmOperationalInternal":{"tmp":"tmp/skills_0.4.0_1784273003851_0.5564845113793568","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@aitoolslabs/skills","version":"0.5.0","description":"Install and manage aitoolslabs organisation agent skills","license":"UNLICENSED","type":"module","bin":{"skills":"dist/index.js","aitoolsskills":"dist/index.js"},"publishConfig":{"access":"public"},"engines":{"node":">=18"},"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"dependencies":{"@clack/prompts":"^1.7.0","commander":"^12.1.0","figlet":"~1.7.0","picocolors":"^1.1.1","yaml":"^2.4.0"},"devDependencies":{"@semantic-release/git":"^10.0.1","@types/figlet":"^1.7.0","@types/node":"^20.14.0","semantic-release":"^25.0.7","typescript":"^5.4.0"},"gitHead":"4fb66c7d69bb4cf64d18c01ae300b586e2e01c5b","_id":"@aitoolslabs/skills@0.5.0","_nodeVersion":"22.23.1","_npmVersion":"11.18.0","dist":{"integrity":"sha512-8axn0mJX+tf3JnOn8y7o6yAiVH8V6MXtfcagSH3/sZpakjt3F31V7Sp1BIJ/85ZiXzbg5j6JSgE+dYqse4mVUQ==","shasum":"8847c91792d10a7657eb46721d3169873759377c","tarball":"https://registry.npmjs.org/@aitoolslabs/skills/-/skills-0.5.0.tgz","fileCount":11,"unpackedSize":29442,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAHEoBStOqNlx49JdznzDZOwpBTlT7T3fQ0/TfcQAMdTAiAwGjXIqpY6dg+GzMZSL6OLqCsSv4lXqVZVoPrt5zw16Q=="}]},"_npmUser":{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"},"directories":{},"maintainers":[{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skills_0.5.0_1784704046207_0.8682053495470312"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-15T08:34:01.885Z","modified":"2026-07-22T07:07:26.536Z","0.1.0":"2026-07-15T08:34:02.151Z","0.2.0":"2026-07-17T06:48:44.274Z","0.3.0":"2026-07-17T07:05:28.374Z","0.4.0":"2026-07-17T07:23:23.987Z","0.5.0":"2026-07-22T07:07:26.369Z"},"license":"UNLICENSED","description":"Install and manage aitoolslabs organisation agent skills","maintainers":[{"name":"prashanth9125","email":"b.prashanthbabu@gmail.com"}],"readme":"# @aitoolslabs/skills\n\nCLI for installing aitoolslabs organisation agent skills from the private catalog ([aitoolslabs/skills](https://github.com/aitoolslabs/skills)).\n\nThe package is public (it contains no secrets); the skills are private. Skill content is fetched from GitHub with **your** credentials — you must be a member of the aitoolslabs org.\n\n## Usage\n\n```bash\nnpx @aitoolslabs/skills                     # interactive picker (browse + install)\nnpx aitoolsskills                           # same thing, shorter alias\nnpx @aitoolslabs/skills search              # browse the catalog\nnpx @aitoolslabs/skills search api          # filter by keyword\nnpx @aitoolslabs/skills add api-conventions # install into the current project (.claude/skills/)\nnpx @aitoolslabs/skills add code-review-checklist -a claude cursor copilot\nnpx @aitoolslabs/skills add release-checklist --global   # ~/.claude/skills/ (claude only)\nnpx @aitoolslabs/skills list                # what's installed here (from skills.lock.json)\nnpx @aitoolslabs/skills update              # re-install anything with a newer catalog version\nnpx @aitoolslabs/skills remove api-conventions\nnpx @aitoolslabs/skills init my-new-skill   # scaffold a skill (run in the catalog repo)\n```\n\n## Authentication\n\nIn order of preference:\n\n1. `GITHUB_TOKEN` environment variable\n2. GitHub CLI: `gh auth login` (the CLI runs `gh auth token`)\n\n## Agent install targets\n\n| Agent | Written to |\n|---|---|\n| claude (default) | `.claude/skills/<name>/` (full skill directory) |\n| cursor | `.cursor/rules/<name>.md` |\n| copilot | `.github/instructions/<name>.instructions.md` |\n| codex | managed block in `AGENTS.md` |\n\n## Environment variables\n\n- `SKILLS_REPO` — override the catalog repo (default `aitoolslabs/skills`)\n- `SKILLS_DIR` — read the catalog from a local checkout instead of GitHub (development)\n- `SKILLS_REGISTRY_URL` — registry web app for anonymous install counts (optional)\n\n## Development\n\n```bash\nnpm install\nnpm run build\nSKILLS_DIR=/path/to/local/skills-catalog-checkout node dist/index.js search\n```\n\n`SKILLS_DIR` points at a local checkout of the catalog repo so you can test every command without touching GitHub.\n\n## Contributing\n\n1. Branch off `main`:\n   ```bash\n   git checkout -b feat/short-description\n   ```\n2. Make your change, then verify locally:\n   ```bash\n   npm run build\n   SKILLS_DIR=/path/to/catalog node dist/index.js <command you changed>\n   ```\n3. Commit using [Conventional Commits](https://www.conventionalcommits.org/) — the type determines the next release version — and push the branch, then open a PR against `main`:\n   ```bash\n   git add -A\n   git commit -m \"fix: short imperative summary of the change\"\n   git push -u origin feat/short-description\n   ```\n   Common types: `fix:` (patch), `feat:` (minor), `feat!:` or a `BREAKING CHANGE:` footer (major), `chore:`/`docs:`/`refactor:`/`test:` (no release).\n4. CI (`.github/workflows/ci.yml`) builds the package and smoke-tests the binary on every PR. Merge after review and a green check.\n\nDo not commit `dist/` (it's gitignored and built fresh on publish) and do not edit the version by hand — releases handle that.\n\n## Releasing\n\nPublishing is fully automatic: every push to `main` runs `.github/workflows/publish.yml`, which builds, smoke-tests, and then runs [semantic-release](https://semantic-release.gitbook.io/) (`.releaserc.json`). semantic-release inspects the Conventional Commit messages merged since the last release to decide whether a release is needed and what version it should be, then:\n\n- publishes the new version to npm,\n- creates the `vX.Y.Z` git tag and a GitHub release with generated notes,\n- commits the bumped `package.json`/`package-lock.json` back to `main` (as `chore(release): X.Y.Z [skip ci]`).\n\nThere is no manual `npm version` step, and nothing should ever be published from a laptop. A merge with only `chore:`/`docs:`/etc. commits publishes nothing.\n\n### One-time setup (already done if a release exists)\n\n1. On npmjs.com, create an **Automation** access token (Access Tokens → Generate New Token → Classic → Automation). A \"Publish\" token will fail in CI with an `EOTP` error because it requires a 2FA code.\n2. Add it as the `NPM_TOKEN` secret: repo → Settings → Secrets and variables → Actions.\n3. After the first publish, check the package's npm settings allow automation tokens: package → Settings → Publishing access → *\"Require two-factor authentication or an automation or granular access token\"*.\n4. `publish.yml` requests its own `GITHUB_TOKEN` permissions (`contents: write`, etc.) via the workflow's `permissions:` block, which is honored even if repo → Settings → Actions → General → Workflow permissions is left on the \"Read repository contents\" default — no repo setting change needed. The only thing that can still block it is an **organization-level** policy that disables per-workflow permission overrides; if the release job fails with `RequestError [HttpError]: Resource not accessible by integration`, ask an org owner to allow overrides (Organization Settings → Actions → General → Workflow permissions).\n\n### Verify a release\n\n```bash\nnpm view @aitoolslabs/skills version     # should print the new version\nnpx @aitoolslabs/skills@latest --version # run it exactly as users will\n```\n\nIf `npx` reports `skills: command not found` after a failed earlier attempt, clear the stale cache: `rm -rf ~/.npm/_npx` and retry.\n","readmeFilename":"README.md"}