{"_id":"@airuleshub/cli","_rev":"9-e08b853a51654455e65df9c458def4ef","name":"@airuleshub/cli","dist-tags":{"latest":"3.0.3"},"versions":{"1.0.0":{"name":"@airuleshub/cli","version":"1.0.0","keywords":[],"author":"","license":"ISC","_id":"@airuleshub/cli@1.0.0","maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"bin":{"airuleshub":"dist/bin/airuleshub.js"},"dist":{"shasum":"fcf7e2418154fa253932d8560e5f674b47c5f834","tarball":"https://registry.npmjs.org/@airuleshub/cli/-/cli-1.0.0.tgz","fileCount":3,"integrity":"sha512-xoW7wuSeXgkQq+C1Y7pFM5iDrzuZXXhgYBNkxIcvnMZt9+WuL3Sn+WlICw5dzZVE0xQcd6c38T/AI40NtAQKlw==","signatures":[{"sig":"MEUCIQDaL1MyMPnqLQIw2UWvsvoyOOEmGhvMoNmyPb+8sbTtRwIgLPSzrTV8xqIkky6fXDdDrurVfoiPAJVee8ZR0tPmlD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2459},"main":"index.js","type":"module","gitHead":"fcaa78c52a0646abbddf886d7d4bbda5f175341b","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"airuleshub","email":"airuleshub@gmail.com"},"_npmVersion":"10.9.3","description":"The official CLI tool for [Airuleshub](https://airuleshub.com) - The ultimate destination to find, share, and manage AI rules and instructions.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"fs-extra":"^11.3.3","inquirer":"^13.2.2","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.9.3","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.0_1770736646029_0.09293618579752416","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@airuleshub/cli","version":"1.0.1","keywords":[],"author":"","license":"ISC","_id":"@airuleshub/cli@1.0.1","maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"bin":{"airuleshub":"dist/bin/airuleshub.js"},"dist":{"shasum":"c8950f9601440c13c04eacf21bbfb118dcc49df8","tarball":"https://registry.npmjs.org/@airuleshub/cli/-/cli-1.0.1.tgz","fileCount":8,"integrity":"sha512-Ndp9dl/6pZJw9dGPnds8kDwksOt0JrNQakUfvyQWc2kH/Yv8xfeGGR+ZSf3VV/RaSBbTXY1J3c20DdVhfAWyBA==","signatures":[{"sig":"MEYCIQD44YQIdrdAbll1CTyWuIHtDC5s41nQV/8hGuU/NttJ8gIhAKnkCeNOKIwn410SDSIC2Tez8BhKigbykmithhwXuECY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5152},"main":"index.js","type":"module","gitHead":"fcaa78c52a0646abbddf886d7d4bbda5f175341b","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"airuleshub","email":"airuleshub@gmail.com"},"_npmVersion":"10.9.3","description":"The official CLI tool for [Airuleshub](https://airuleshub.com) - The ultimate destination to find, share, and manage AI rules and instructions.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"fs-extra":"^11.3.3","inquirer":"^13.2.2","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.9.3","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.1_1770737055142_0.9934595458995286","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@airuleshub/cli","version":"1.0.4","keywords":["ai","cli","rules","cursor","cursor-rules","windsurf","copilot","automation","scaffolding","productivity","developer-tools","airuleshub"],"author":{"url":"https://github.com/nikunjborad123","name":"Nikunj Borad","email":"boradnikunj2001@gmail.com"},"license":"ISC","_id":"@airuleshub/cli@1.0.4","maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"homepage":"https://github.com/nikunjborad123/airuleshub/tree/master/airuleshub-cli#readme","bugs":{"url":"https://github.com/nikunjborad123/airuleshub/issues"},"bin":{"airuleshub":"dist/bin/airuleshub.js"},"dist":{"shasum":"dd6ef150d94fec14d17cb2de8cf8ff706a386058","tarball":"https://registry.npmjs.org/@airuleshub/cli/-/cli-1.0.4.tgz","fileCount":8,"integrity":"sha512-s6kWem5y3+WKFnXYR/aa5L9vuc1JAuAp0rLVnZqA+1OthvXmYMqslckt6Skot+aWNS78k0yTCpNeQdLhuIVENA==","signatures":[{"sig":"MEQCIFCQz45sa9eFCuctDaM8s2QngjA4KZxJ2y1zu87Rkj/RAiBuGXLhvRYBHwhhMnzxpP/HD98wbbnQORxgTIqU14W4pA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7701},"main":"index.js","type":"module","gitHead":"fcaa78c52a0646abbddf886d7d4bbda5f175341b","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"airuleshub","email":"airuleshub@gmail.com"},"repository":{"url":"git+https://github.com/nikunjborad123/airuleshub.git","type":"git","directory":"airuleshub-cli"},"_npmVersion":"10.9.3","description":"**The CLI for AI-Native Development.**","directories":{},"_nodeVersion":"22.18.0","dependencies":{"fs-extra":"^11.3.3","inquirer":"^13.2.2","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.9.3","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.4_1770738775253_0.8301016043525973","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@airuleshub/cli","version":"1.0.5","keywords":["ai","cli","rules","cursor","cursor-rules","windsurf","copilot","automation","scaffolding","productivity","developer-tools","airuleshub"],"author":{"url":"https://github.com/nikunjborad123","name":"Nikunj Borad","email":"boradnikunj2001@gmail.com"},"license":"ISC","_id":"@airuleshub/cli@1.0.5","maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"homepage":"https://airuleshub.com","bin":{"airuleshub":"dist/bin/airuleshub.js"},"dist":{"shasum":"8b8b206ebfbf45c17aeea8a99b59ed55e5d1aa7c","tarball":"https://registry.npmjs.org/@airuleshub/cli/-/cli-1.0.5.tgz","fileCount":8,"integrity":"sha512-Encp9pr3zSCaSvKARR5yuZOfrvrhIua4GF3Y02kfN+0mAL3TIWK4SGOiRUr3/5I7KqlHGORerRv9851AfgP7Hg==","signatures":[{"sig":"MEUCIQCz9YLH92ZSEV2ycxJHfFwBc++BQWRrZs72o90tYxD/HgIgbS8aRaIkV6ktjIHMyv/LPWmOAFpOGKNq5h81EjhTHTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7348},"main":"index.js","type":"module","gitHead":"fcaa78c52a0646abbddf886d7d4bbda5f175341b","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"airuleshub","email":"airuleshub@gmail.com"},"_npmVersion":"10.9.3","description":"**The CLI for AI-Native Development.**","directories":{},"_nodeVersion":"22.18.0","dependencies":{"fs-extra":"^11.3.3","inquirer":"^13.2.2","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.9.3","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.5_1770739581218_0.08279373475583607","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@airuleshub/cli","version":"1.1.0","keywords":["ai","cli","rules","cursor","cursor-rules","windsurf","copilot","automation","scaffolding","productivity","developer-tools","airuleshub"],"author":{"url":"https://github.com/nikunjborad123","name":"Nikunj Borad","email":"boradnikunj2001@gmail.com"},"license":"ISC","_id":"@airuleshub/cli@1.1.0","maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"homepage":"https://airuleshub.com","bin":{"airuleshub":"dist/bin/airuleshub.js"},"dist":{"shasum":"7c1e0d7520dfb23b05a50d10a3efc09358edd935","tarball":"https://registry.npmjs.org/@airuleshub/cli/-/cli-1.1.0.tgz","fileCount":8,"integrity":"sha512-ONNgOSrC0aEWb5XMfMjotoIBnjssaeydgOKr0iOM8EXSt0/mWsnhfNSarWymDRD1PMEU4l1Y0PYo1oLY+xkxDQ==","signatures":[{"sig":"MEYCIQCUY5ksmunYl6dSrRf4jIlq8Hj4hzScjiCa45fUmzmVugIhAO0mHhzWUOVhaXZL1OEdncDWTfkxoBv5AqbQixbjljdz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8934},"main":"index.js","type":"module","gitHead":"16f9fa036539cd33b95107a4fab436c3c6e87c6a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"airuleshub","email":"airuleshub@gmail.com"},"_npmVersion":"11.6.2","description":"**The CLI for AI-Native Development.**","directories":{},"_nodeVersion":"24.11.1","dependencies":{"fs-extra":"^11.3.3","inquirer":"^13.2.2","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.9.3","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.1.0_1771574718032_0.9287854676968939","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@airuleshub/cli","version":"3.0.0","keywords":["ai","cli","rules","cursor","cursor-rules","windsurf","copilot","claude","gemini","codeium","automation","scaffolding","productivity","developer-tools","airuleshub"],"author":{"url":"https://github.com/nikunjborad123","name":"Nikunj Borad","email":"boradnikunj2001@gmail.com"},"license":"ISC","_id":"@airuleshub/cli@3.0.0","maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"homepage":"https://airuleshub.com","bin":{"airuleshub":"dist/bin/airuleshub.js"},"dist":{"shasum":"abfc2d4013377892b7d4ed87054cf6bb9e74da61","tarball":"https://registry.npmjs.org/@airuleshub/cli/-/cli-3.0.0.tgz","fileCount":29,"integrity":"sha512-TP9xusMeJ0y+nWaiYhCZ6CLI2bM1yYWiEbDtHE2eY9yXs4cXC63TLrZwLqpT9eaWiW0LQAF7+sKTW/5Cj8VY8A==","signatures":[{"sig":"MEUCIFjFnee4/PrqUguXktTZXBKqUI/ez6xIlespKuKo9dugAiEAmNCmzSUOKzZ3CdA3wH7FLP0M8zXKvCK5FSm+wtFJ3Tc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50576},"main":"index.js","type":"module","scripts":{"dev":"tsx bin/airuleshub.ts","test":"vitest run --config vitest.config.ts","build":"tsc","test:watch":"vitest --config vitest.config.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"airuleshub","email":"airuleshub@gmail.com"},"_npmVersion":"11.6.2","description":"Install AI rules from airuleshub.com into your AI agent config files","directories":{},"_nodeVersion":"24.13.0","dependencies":{"enquirer":"^2.4.1","fs-extra":"^11.3.3","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","memfs":"^4.56.10","vitest":"^3.0.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_3.0.0_1772086785104_0.4619990921891388","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@airuleshub/cli","version":"3.0.1","keywords":["ai","cli","rules","cursor","cursor-rules","windsurf","copilot","claude","gemini","codeium","automation","scaffolding","productivity","developer-tools","airuleshub"],"author":{"url":"https://github.com/nikunjborad123","name":"Nikunj Borad","email":"boradnikunj2001@gmail.com"},"license":"ISC","_id":"@airuleshub/cli@3.0.1","maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"homepage":"https://airuleshub.com","bin":{"airuleshub":"dist/bin/airuleshub.js"},"dist":{"shasum":"1db167fe73839ebfe45cd18214db6cf379e359a0","tarball":"https://registry.npmjs.org/@airuleshub/cli/-/cli-3.0.1.tgz","fileCount":29,"integrity":"sha512-uKKY0m2pn4vLLRnJldhV9FuV/WFJQcK04vbv9TQVjmgd5/T+KXSNGhtU11M0Jwmqvu9GdjA6NxCs6qvr0wQ1bA==","signatures":[{"sig":"MEQCIB1TKyYjUoiMEPLeFHLSvO102f/UxemceTPmjfuAbSguAiBYBlzXC5aL/yjgoIk/S3Gwh66ABOqF9hLFB530ftshKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53511},"main":"index.js","type":"module","scripts":{"dev":"tsx bin/airuleshub.ts","test":"vitest run --config vitest.config.ts","build":"tsc","test:watch":"vitest --config vitest.config.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"airuleshub","email":"airuleshub@gmail.com"},"_npmVersion":"11.6.2","description":"Install AI rules from airuleshub.com into your AI agent config files","directories":{},"_nodeVersion":"24.13.0","dependencies":{"enquirer":"^2.4.1","fs-extra":"^11.3.3","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","memfs":"^4.56.10","vitest":"^3.0.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_3.0.1_1772087093868_0.2501522414295223","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@airuleshub/cli","version":"3.0.2","keywords":["ai","cli","rules","cursor","cursor-rules","windsurf","copilot","claude","gemini","codeium","automation","scaffolding","productivity","developer-tools","airuleshub"],"author":{"url":"https://github.com/nikunjborad123","name":"Nikunj Borad","email":"boradnikunj2001@gmail.com"},"license":"ISC","_id":"@airuleshub/cli@3.0.2","maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"homepage":"https://airuleshub.com","bin":{"airuleshub":"dist/bin/airuleshub.js"},"dist":{"shasum":"5ae901066d945613d032e9a5387a55f568cfb346","tarball":"https://registry.npmjs.org/@airuleshub/cli/-/cli-3.0.2.tgz","fileCount":31,"integrity":"sha512-54oX/awDjEv36Wc+i2T1H++2l/Fm0o1g1VRIYauvQoJdV7dn9+1Czi8jKfPgsjd3AK2wyXXMQXArmrqGrysiAw==","signatures":[{"sig":"MEQCIB+CJBlh8gZSDmy28/o1nlFOt61zFrMfcrazu53nBwZeAiBovvghGFHfNuYiLNoY/IRG6aDWSFK6QxAeOPCTC69yCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56343},"main":"index.js","type":"module","gitHead":"a46a77c3b794c5a50353892e657015c0c23d63a6","scripts":{"dev":"tsx bin/airuleshub.ts","test":"vitest run --config vitest.config.ts","build":"tsc","test:watch":"vitest --config vitest.config.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"airuleshub","email":"airuleshub@gmail.com"},"_npmVersion":"10.9.3","description":"Install AI rules from airuleshub.com into your AI agent config files","directories":{},"_nodeVersion":"22.18.0","dependencies":{"enquirer":"^2.4.1","fs-extra":"^11.3.3","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","memfs":"^4.56.10","vitest":"^3.0.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_3.0.2_1772948132980_0.8483500901741283","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@airuleshub/cli","version":"3.0.3","type":"module","description":"Install AI rules from airuleshub.com into your AI agent config files","main":"index.js","scripts":{"build":"tsc","dev":"tsx bin/airuleshub.ts","prepublishOnly":"npm run build","test":"vitest run --config vitest.config.ts","test:watch":"vitest --config vitest.config.ts"},"bin":{"airuleshub":"dist/bin/airuleshub.js"},"keywords":["ai","cli","rules","cursor","cursor-rules","windsurf","copilot","claude","gemini","codeium","automation","scaffolding","productivity","developer-tools","airuleshub"],"author":{"name":"Nikunj Borad","email":"boradnikunj2001@gmail.com","url":"https://github.com/nikunjborad123"},"homepage":"https://airuleshub.com","license":"ISC","dependencies":{"commander":"^14.0.3","enquirer":"^2.4.1","fs-extra":"^11.3.3","picocolors":"^1.1.1"},"devDependencies":{"@types/fs-extra":"^11.0.4","@types/node":"^22.0.0","memfs":"^4.56.10","tsx":"^4.19.3","typescript":"^5.9.3","vitest":"^3.0.0"},"_id":"@airuleshub/cli@3.0.3","gitHead":"a46a77c3b794c5a50353892e657015c0c23d63a6","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-ee4emUVQgBMbTTlkWINLKa6zGrNWdiyu8hEP0yyA2mIdsxgCa9FClUfGhQqFR04KoRi+i+oGVLutd/zOuMA6gQ==","shasum":"fe289b7d3205f5253659a295abf8d2aa0522aff6","tarball":"https://registry.npmjs.org/@airuleshub/cli/-/cli-3.0.3.tgz","fileCount":31,"unpackedSize":56360,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCvpxIBSJYkNKyCulhc8i+Cs73AgM/rGuB8jACA3wSPgAIgHBhaSxL3Bsjr7yeDGsmI8IpvEyfTxEXFnCg3ofTBuLM="}]},"_npmUser":{"name":"airuleshub","email":"airuleshub@gmail.com"},"directories":{},"maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_3.0.3_1772949079977_0.8986270916883738"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-10T15:17:25.880Z","modified":"2026-03-08T05:51:20.219Z","1.0.0":"2026-02-10T15:17:26.175Z","1.0.1":"2026-02-10T15:24:15.291Z","1.0.4":"2026-02-10T15:52:55.414Z","1.0.5":"2026-02-10T16:06:21.354Z","1.1.0":"2026-02-20T08:05:18.185Z","3.0.0":"2026-02-26T06:19:45.252Z","3.0.1":"2026-02-26T06:24:54.031Z","3.0.2":"2026-03-08T05:35:33.140Z","3.0.3":"2026-03-08T05:51:20.113Z"},"author":{"name":"Nikunj Borad","email":"boradnikunj2001@gmail.com","url":"https://github.com/nikunjborad123"},"license":"ISC","homepage":"https://airuleshub.com","keywords":["ai","cli","rules","cursor","cursor-rules","windsurf","copilot","claude","gemini","codeium","automation","scaffolding","productivity","developer-tools","airuleshub"],"description":"Install AI rules from airuleshub.com into your AI agent config files","maintainers":[{"name":"airuleshub","email":"airuleshub@gmail.com"}],"readme":"# `@airuleshub/cli`\r\n\r\n> Install AI rules from [airuleshub.com](https://airuleshub.com) directly into your AI agent config files.\r\n\r\n[![npm](https://img.shields.io/npm/v/@airuleshub/cli)](https://www.npmjs.com/package/@airuleshub/cli)\r\n\r\n---\r\n\r\n## Quick Start\r\n\r\n```bash\r\n# Install a single rule\r\nnpx @airuleshub/cli add nextjs-clean-arch\r\n\r\n# Install multiple rules at once  ✨ new in v3\r\nnpx @airuleshub/cli add nextjs-clean-arch strict-react-typescript-rules postgresql-drizzle-performance-rules\r\n```\r\n\r\nThe CLI will:\r\n\r\n1. Fetch the rule(s) from airuleshub.com in a single batch request\r\n2. Auto-detect your AI agents (Cursor, Claude Code, Windsurf, etc.)\r\n3. Show an interactive multi-select prompt — **once** for all rules\r\n4. Install each rule into the correct config file for each selected agent\r\n\r\n---\r\n\r\n## Commands\r\n\r\n### `add <slugs...>` _(recommended)_\r\n\r\nAgent-aware installation with interactive agent selection. Accepts one or more rule slugs.\r\n\r\n```bash\r\nnpx @airuleshub/cli add <slug> [slug2 slug3 ...] [options]\r\n```\r\n\r\n**Options:**\r\n\r\n| Flag                  | Description                                             |\r\n| --------------------- | ------------------------------------------------------- |\r\n| `--agent <ids>`       | Comma-separated agent IDs to install into (skip prompt) |\r\n| `-y, --yes`           | Skip all prompts, overwrite automatically (CI mode)     |\r\n| `--dry-run`           | Preview what would be installed without writing files   |\r\n| `-f, --format <type>` | File format: `md` \\| `json` \\| `yaml` (default: `md`)   |\r\n| `--cwd <path>`        | Working directory (default: current directory)          |\r\n\r\n**Examples:**\r\n\r\n```bash\r\n# Interactive — auto-detects your agents\r\nnpx @airuleshub/cli add nextjs-clean-arch\r\n\r\n# Multiple rules in one command\r\nnpx @airuleshub/cli add nextjs-clean-arch strict-react-typescript-rules\r\n\r\n# Target specific agents\r\nnpx @airuleshub/cli add nextjs-clean-arch --agent cursor,claude\r\n\r\n# Multiple rules into specific agents\r\nnpx @airuleshub/cli add rule-a rule-b --agent cursor,claude,windsurf\r\n\r\n# CI mode — no prompts, auto-overwrite\r\nnpx @airuleshub/cli add nextjs-clean-arch --yes --agent cursor\r\n\r\n# Preview only (no files written)\r\nnpx @airuleshub/cli add nextjs-clean-arch rule-b --dry-run\r\n```\r\n\r\n---\r\n\r\n### `install [slugs...]` _(legacy — backward compatible)_\r\n\r\nInstalls rules into the legacy `./airules` directory:\r\n\r\n```bash\r\nnpx @airuleshub/cli install nextjs-clean-arch\r\n```\r\n\r\n---\r\n\r\n## Supported Agents\r\n\r\n| Agent ID    | Display Name    | Install Path (single rule)        |\r\n| ----------- | --------------- | --------------------------------- |\r\n| `cursor`    | Cursor          | `.cursor/.cursorrules`            |\r\n| `claude`    | Claude Code     | `.claude/CLAUDE.md`               |\r\n| `windsurf`  | Windsurf        | `.windsurf/windsurfrules.md`      |\r\n| `vscode`    | VS Code Copilot | `.vscode/ai-rules.md`             |\r\n| `copilot`   | GitHub Copilot  | `.github/copilot-instructions.md` |\r\n| `jetbrains` | JetBrains AI    | `.idea/ai-rules.md`               |\r\n| `zed`       | Zed AI          | `.zed/ai-rules.md`                |\r\n| `neovim`    | Neovim AI       | `.config/nvim/ai-rules.md`        |\r\n| `continue`  | Continue.dev    | `.continue/config.json`           |\r\n| `gemini`    | Gemini CLI      | `.gemini/gemini-rules.md`         |\r\n| `codeium`   | Codeium         | `.codeium/rules.md`               |\r\n| `tabnine`   | Tabnine         | `.tabnine/ai-rules.md`            |\r\n| `qoder`     | Qoder           | `.qoder/rules.md`                 |\r\n| `roo`       | Roo Code        | `.roo/rules.md`                   |\r\n| `opencode`  | OpenCode        | `.opencode/rules.md`              |\r\n| `kilocode`  | Kilo Code       | `.kilocode/rules.md`              |\r\n| `trae`      | Trae            | `.trae/rules.md`                  |\r\n| `adal`      | Adal            | `.adal/rules.md`                  |\r\n| `skills`    | Agent Skills    | `.agents/skills/<slug>.md`        |\r\n\r\n> **Note:** When installing **multiple rules**, each rule gets its own slug-named file per agent (e.g. `.cursor/rule-name.md`) so rules never overwrite each other.\r\n\r\n---\r\n\r\n## UX Flow\r\n\r\n### Agent Auto-Detection\r\n\r\nThe CLI scans your project for known agent configuration directories:\r\n\r\n- **1 agent detected** → Confirms with a single Y/n prompt, then installs\r\n- **Multiple detected** → Shows multi-select with detected agents pre-selected\r\n- **None detected** → Shows full registry list for manual selection\r\n\r\nAgent selection is always asked **once**, regardless of how many rules you're installing.\r\n\r\n### Single Rule — File Already Exists\r\n\r\nWhen the target config file already exists you'll see a full prompt:\r\n\r\n```\r\n⚠ File exists: .cursor/.cursorrules\r\n\r\n❯ Overwrite\r\n  Backup & Replace        ← saves .cursorrules.bak-YYYYMMDD-HHMM first\r\n  Save as new file        → rule-name.md\r\n  Skip\r\n  Cancel\r\n```\r\n\r\n### Multiple Rules — File Already Exists\r\n\r\nWhen installing multiple rules and any slug files already exist, a focused prompt is shown **once** for all conflicts:\r\n\r\n```\r\n⚠ 4 files already exist:\r\n  • .cursor/rule-a.md\r\n  • .claude/rule-a.md\r\n  • .cursor/rule-b.md\r\n  • .claude/rule-b.md\r\n\r\n❯ Overwrite all\r\n  Save all as new files\r\n  Cancel\r\n```\r\n\r\n### New File Naming — Automatic Counter\r\n\r\nIf you choose **\"Save as new file\"** / **\"Save all as new files\"** and the slug file itself already exists, a counter suffix is appended automatically until a free name is found:\r\n\r\n```\r\nrule-name.md      ← exists\r\nrule-name-1.md    ← exists\r\nrule-name-2.md    ← free ✓  →  written here\r\n```\r\n\r\n### Dry Run\r\n\r\nPreview exactly what would be written without touching any files:\r\n\r\n```bash\r\nnpx @airuleshub/cli add nextjs-clean-arch rule-b --dry-run\r\n```\r\n\r\n```\r\n━ nextjs-clean-arch\r\n────────────────────────────────────────────\r\n  Dry Run — No files written\r\n────────────────────────────────────────────\r\n  Would install:\r\n  • Cursor     → .cursor/nextjs-clean-arch.md\r\n  • Claude Code → .claude/nextjs-clean-arch.md\r\n\r\n━ rule-b\r\n────────────────────────────────────────────\r\n  Dry Run — No files written\r\n────────────────────────────────────────────\r\n  Would install:\r\n  • Cursor     → .cursor/rule-b.md\r\n  • Claude Code → .claude/rule-b.md\r\n```\r\n\r\n### Monorepo Support\r\n\r\nWhen a workspace (`pnpm-workspace.yaml` or `\"workspaces\"` in `package.json`) is detected, you'll be prompted:\r\n\r\n```\r\nInstall rule at:\r\n❯ Current package\r\n  Workspace root\r\n```\r\n\r\n---\r\n\r\n## CI / Non-Interactive Mode\r\n\r\nUse `--yes` to skip all prompts:\r\n\r\n```bash\r\nnpx @airuleshub/cli add rule-a rule-b --yes --agent cursor,claude\r\n```\r\n\r\nThis will:\r\n\r\n- Skip agent selection (requires `--agent` or auto-detected agents)\r\n- Overwrite existing files automatically\r\n- Exit without any confirmations\r\n\r\n---\r\n\r\n## Security\r\n\r\n- Slug names are sanitized to prevent path traversal\r\n- All paths are resolved with `path.resolve`\r\n- Cross-platform: supports Windows and Unix\r\n\r\n---\r\n\r\n## Development\r\n\r\n```bash\r\n# Install dependencies\r\nnpm install\r\n\r\n# Run in development mode\r\nnpm run dev -- add <slug>\r\n\r\n# Build\r\nnpm run build\r\n\r\n# Run tests\r\nnpm test\r\n```\r\n\r\n---\r\n\r\n## Changelog\r\n\r\n### v3.0.0\r\n\r\n- **Multi-rule installs** — `add` now accepts multiple slugs in one command\r\n- **Batch API fetch** — all slugs fetched in a single request\r\n- **Per-slug files** — multiple rules each get their own `<slug>.md` file per agent (no overwrite collisions)\r\n- **Single overwrite prompt** — conflict resolution asked once for all rules combined\r\n- **Simplified conflict prompt** for multi-rule mode (Overwrite all / Save all as new files / Cancel)\r\n- **Auto counter suffix** — \"Save as new file\" produces `rule-1.md`, `rule-2.md`, … if the base name is taken\r\n\r\n### v2.0.0\r\n\r\n- Agent-aware `add` command with interactive multi-select\r\n- Auto-detection of 19 AI agents\r\n- Monorepo support\r\n- Dry-run mode\r\n- Backup & Replace option\r\n\r\n### v1.x\r\n\r\n- Legacy `install` command (writes to `./airules/`)\r\n\r\n---\r\n\r\n## License\r\n\r\nISC © [Nikunj Borad](https://github.com/nikunjborad123)\r\n","readmeFilename":"README.md"}