{"_id":"@avinashchby/dotai","name":"@avinashchby/dotai","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@avinashchby/dotai","version":"0.1.0","description":"One command. Every AI coding assistant configured. Auto-generates CLAUDE.md, .cursorrules, .windsurfrules, copilot-instructions.md, and codex-instructions.md from your codebase.","type":"module","bin":{"dotai":"dist/index.js"},"scripts":{"build":"tsc","test":"vitest run","dev":"tsx src/index.ts","prepublishOnly":"npm run build"},"engines":{"node":">=18"},"keywords":["ai","coding-assistant","claude","cursor","copilot","windsurf","codex","cli","developer-tools","dotfiles","codebase-analysis","static-analysis","npx"],"author":{"name":"Avinash Chaubey"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/avinashchaubey/dotai.git"},"homepage":"https://github.com/avinashchaubey/dotai","bugs":{"url":"https://github.com/avinashchaubey/dotai/issues"},"dependencies":{"@inquirer/prompts":"^7.3.2","commander":"^13.1.0","fast-glob":"^3.3.3"},"devDependencies":{"@types/node":"^22.13.4","tsx":"^4.19.3","typescript":"^5.7.3","vitest":"^3.0.5"},"gitHead":"b8f8e97115dcd17d2f102f04a0ba975f6726c953","_id":"@avinashchby/dotai@0.1.0","_nodeVersion":"25.5.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-4A/f+cI/JvM5TmeUl8YgU24WS36bDQLgcJdh0fd1/n+Cx7peCsrCUF7D1ZeaIeWS+bcgSvwp8UQkXZndMU1QKQ==","shasum":"4c3a309db2cb7a50df54e7078651f856bfc11fdc","tarball":"https://registry.npmjs.org/@avinashchby/dotai/-/dotai-0.1.0.tgz","fileCount":45,"unpackedSize":87556,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFSkO6jpuV++TiqeCxzVWZr0hOJBq3y+kZG0+OcNd4/MAiEAkIZP6jlVUu6b6iLMLoJ9Z+4u+fPfuQRFKbf7xvRtl/o="}]},"_npmUser":{"name":"avinashchby","email":"avinashchby@gmail.com"},"directories":{},"maintainers":[{"name":"avinashchby","email":"avinashchby@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dotai_0.1.0_1773906927087_0.38718475528776586"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T07:55:27.013Z","0.1.0":"2026-03-19T07:55:27.250Z","modified":"2026-03-19T07:55:27.438Z"},"maintainers":[{"name":"avinashchby","email":"avinashchby@gmail.com"}],"description":"One command. Every AI coding assistant configured. Auto-generates CLAUDE.md, .cursorrules, .windsurfrules, copilot-instructions.md, and codex-instructions.md from your codebase.","homepage":"https://github.com/avinashchaubey/dotai","keywords":["ai","coding-assistant","claude","cursor","copilot","windsurf","codex","cli","developer-tools","dotfiles","codebase-analysis","static-analysis","npx"],"repository":{"type":"git","url":"git+https://github.com/avinashchaubey/dotai.git"},"author":{"name":"Avinash Chaubey"},"bugs":{"url":"https://github.com/avinashchaubey/dotai/issues"},"license":"MIT","readme":"<p align=\"center\">\n  <h1 align=\"center\">dotai</h1>\n  <p align=\"center\"><strong>One command. Every AI coding assistant configured.</strong></p>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/dotai\"><img src=\"https://img.shields.io/npm/v/dotai.svg\" alt=\"npm version\"></a>\n  <a href=\"https://github.com/avinashchaubey/dotai/blob/main/LICENSE\"><img src=\"https://img.shields.io/npm/l/dotai.svg\" alt=\"license\"></a>\n  <a href=\"https://nodejs.org\"><img src=\"https://img.shields.io/node/v/dotai.svg\" alt=\"node version\"></a>\n</p>\n\n---\n\n`dotai` scans your codebase and auto-generates configuration files for **every major AI coding assistant** — Claude Code, Cursor, Windsurf, GitHub Copilot, and OpenAI Codex. No API keys. No accounts. Works completely offline.\n\n```bash\nnpx dotai\n```\n\nThat's it. Five config files. One command.\n\n---\n\n## The Problem\n\nEvery AI coding tool has its own config format. Setting up a new project means:\n\n```\n# Without dotai — manual, repetitive, error-prone\n\n1. Read Claude Code docs → write CLAUDE.md by hand\n2. Read Cursor docs → write .cursorrules by hand\n3. Read Windsurf docs → write .windsurfrules by hand\n4. Read Copilot docs → write .github/copilot-instructions.md by hand\n5. Read Codex docs → write codex-instructions.md by hand\n6. Repeat for every new project\n7. Keep all 5 files in sync when your stack changes\n```\n\n```\n# With dotai — automatic, consistent, always accurate\n\nnpx dotai    # done\n```\n\nYour AI tools go from \"generic JavaScript suggestions\" to \"knows you use Next.js 14 with Prisma, pnpm, Vitest, and deploy to Vercel.\"\n\n---\n\n## Quick Start\n\n```bash\n# Run in any project directory\nnpx dotai\n\n# Preview without writing files\nnpx dotai --dry-run\n\n# Generate only Claude and Cursor configs\nnpx dotai --format claude,cursor\n\n# Guided interactive setup\nnpx dotai --interactive\n```\n\n### Example Output\n\n```\n📦 my-app — Codebase Analysis\n\n  Language:         TypeScript (85%), JavaScript (15%)\n  Framework:        Next.js 14.1.0\n  Package Manager:  pnpm\n  Testing:          Vitest\n  Linter:           ESLint\n  Formatter:        Prettier\n  Database:         PostgreSQL, Redis\n  ORM:              Prisma\n  Deployment:       Docker, Vercel\n  CI/CD:            GitHub Actions\n  Monorepo:         Turborepo (3 packages)\n  API Style:        REST, tRPC\n\n✨ Generated 5 files:\n  ✓ CLAUDE.md\n  ✓ .cursorrules\n  ✓ .windsurfrules\n  ✓ .github/copilot-instructions.md\n  ✓ codex-instructions.md\n```\n\n---\n\n## Before / After\n\n### Before — no AI config\n\n```\nmy-app/\n├── src/\n├── tests/\n├── package.json\n├── tsconfig.json\n└── .eslintrc.json\n```\n\nEvery AI tool gives generic, context-free suggestions. Copilot doesn't know you use Prisma. Claude doesn't know you prefer Vitest. Cursor doesn't know your monorepo layout.\n\n### After — `npx dotai`\n\n```\nmy-app/\n├── src/\n├── tests/\n├── package.json\n├── tsconfig.json\n├── .eslintrc.json\n├── CLAUDE.md                        ← generated\n├── .cursorrules                     ← generated\n├── .windsurfrules                   ← generated\n├── .github/copilot-instructions.md  ← generated\n└── codex-instructions.md            ← generated\n```\n\nEvery AI tool now knows your exact stack, conventions, commands, and architecture.\n\n---\n\n## Output Formats\n\n| File | AI Tool | Description |\n|------|---------|-------------|\n| `CLAUDE.md` | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | Project instructions for Anthropic's CLI agent |\n| `.cursorrules` | [Cursor](https://www.cursor.com/) | Rules file for Cursor IDE's AI assistant |\n| `.windsurfrules` | [Windsurf](https://codeium.com/windsurf) | Rules file for Windsurf (Codeium) IDE |\n| `.github/copilot-instructions.md` | [GitHub Copilot](https://github.com/features/copilot) | Custom instructions for Copilot |\n| `codex-instructions.md` | [OpenAI Codex](https://openai.com/index/openai-codex/) | Instructions for the Codex CLI tool |\n\n---\n\n## Detected Technologies\n\n### Languages\n\nTypeScript, JavaScript, Python, Rust, Go, Ruby, Java, PHP, C#\n\n### Package Managers\n\n| Manager | Detected via |\n|---------|-------------|\n| npm | `package-lock.json` |\n| yarn | `yarn.lock` |\n| pnpm | `pnpm-lock.yaml` |\n| bun | `bun.lockb` / `bun.lock` |\n| cargo | `Cargo.toml` |\n| go | `go.mod` |\n| pip | `requirements.txt` / `pyproject.toml` |\n| uv | `uv.lock` |\n| poetry | `poetry.lock` |\n| bundler | `Gemfile.lock` |\n| composer | `composer.lock` |\n| maven | `pom.xml` |\n| gradle | `build.gradle` / `build.gradle.kts` |\n| dotnet | `*.csproj` / `*.sln` |\n\n### Frameworks\n\n| Category | Frameworks |\n|----------|------------|\n| React ecosystem | Next.js, React, Remix |\n| Vue ecosystem | Vue, Nuxt |\n| Other frontend | Svelte, SvelteKit, Angular |\n| Node.js backend | Express, Fastify, NestJS, Hono |\n| Python | Django, Flask, FastAPI |\n| Ruby | Rails, Sinatra |\n| Rust | Actix Web, Axum, Rocket |\n| Go | Gin, Echo, Fiber, Gorilla |\n| PHP | Laravel, Symfony |\n\n### Testing\n\n| Tool | Ecosystem |\n|------|-----------|\n| Vitest | Node.js |\n| Jest | Node.js |\n| Mocha | Node.js |\n| Playwright | Browser |\n| Cypress | Browser |\n| pytest | Python |\n| Go test | Go |\n| Rust built-in | Rust |\n| RSpec | Ruby |\n| PHPUnit | PHP |\n\n### Linters & Formatters\n\n| Tool | Type | Ecosystem |\n|------|------|-----------|\n| ESLint | Linter | JS/TS |\n| Prettier | Formatter | JS/TS |\n| Biome | Both | JS/TS |\n| Ruff | Both | Python |\n| Black | Formatter | Python |\n| Pylint / Flake8 | Linter | Python |\n| Clippy | Linter | Rust |\n| rustfmt | Formatter | Rust |\n| golangci-lint | Linter | Go |\n| RuboCop | Both | Ruby |\n\n### Databases & ORMs\n\n| Database | ORM |\n|----------|-----|\n| PostgreSQL | Prisma, Drizzle, TypeORM, Sequelize |\n| MySQL | TypeORM, Sequelize |\n| SQLite | Prisma, Drizzle |\n| MongoDB | Mongoose |\n| Redis | — |\n| — | SQLAlchemy (Python), Diesel (Rust), GORM (Go), ActiveRecord (Ruby) |\n\n### Infrastructure\n\n| Category | Detected |\n|----------|----------|\n| Deployment | Docker, Vercel, Netlify, Fly.io, Railway, Render, AWS CDK, Kubernetes, Cloudflare Workers, Heroku, Google Cloud |\n| CI/CD | GitHub Actions, GitLab CI, CircleCI, Jenkins, Travis CI, Bitbucket Pipelines |\n| Monorepo | Turborepo, Nx, Lerna, pnpm workspaces, npm/yarn workspaces, Cargo workspaces |\n| API Style | REST, GraphQL, gRPC, tRPC, WebSocket |\n\n---\n\n## CLI Reference\n\n```\nUsage: dotai [options]\n\nOptions:\n  -f, --format <formats>  Comma-separated: claude,cursor,windsurf,copilot,codex (default: all)\n  -i, --interactive        Guided setup with prompts\n  -o, --output <dir>       Target directory (default: current directory)\n  -d, --dry-run            Preview output without writing files\n  --force                  Overwrite existing config files\n  -V, --version            Show version number\n  -h, --help               Show help\n```\n\n### Examples\n\n```bash\n# Generate all configs in current directory\nnpx dotai\n\n# Only Claude and Cursor\nnpx dotai -f claude,cursor\n\n# Preview what would be generated\nnpx dotai --dry-run\n\n# Point at another project\nnpx dotai -o ~/projects/my-api\n\n# Overwrite existing configs\nnpx dotai --force\n\n# Interactive mode — confirm detections, select outputs\nnpx dotai -i\n```\n\n---\n\n## Why dotai?\n\n**The AI coding assistant landscape is fragmented.** Claude Code reads `CLAUDE.md`. Cursor reads `.cursorrules`. Copilot reads `.github/copilot-instructions.md`. Each tool has its own format, its own conventions, its own location.\n\nMost developers either:\n1. Don't configure any of them (leaving AI suggestions generic and unhelpful)\n2. Configure one and ignore the rest\n3. Manually maintain 5 different files that say roughly the same thing\n\n`dotai` solves this by **analyzing your actual codebase** — not asking you to fill out a form — and generating all five files with accurate, up-to-date information about your stack.\n\nIt's:\n- **Zero config** — no setup, no config file for the config file generator\n- **Zero cost** — no API calls, no tokens, no subscriptions\n- **Zero network** — works completely offline, on an airplane, in a submarine\n- **Fast** — pure static analysis, typically under 2 seconds\n- **Accurate** — reads your actual lock files, config files, and dependency declarations\n\n---\n\n## How It Works\n\n1. **Scan** — Collects the file tree using fast-glob (respects `.gitignore`, skips `node_modules`/`vendor`/`dist`)\n2. **Detect** — Runs 10 independent detectors in parallel: language, package manager, framework, testing, linter/formatter, database/ORM, deployment, CI/CD, monorepo, API style\n3. **Generate** — Passes the detection results through format-specific generators that produce properly structured output for each tool\n\nEverything is **static analysis**. It reads filenames, config files, and dependency manifests. Nothing is executed, uploaded, or sent anywhere.\n\n---\n\n## Contributing\n\nContributions welcome! Especially:\n- New framework/tool detections\n- Improved output templates\n- Support for additional AI coding tools\n\n```bash\ngit clone https://github.com/avinashchaubey/dotai.git\ncd dotai\nnpm install\nnpm run build\nnpm test\n\n# Test against any project\nnpm run dev -- --dry-run -o ~/some-project\n```\n\nUse [conventional commits](https://www.conventionalcommits.org/): `feat:`, `fix:`, `refactor:`, `docs:`, `test:`, `chore:`.\n\n---\n\n## License\n\n[MIT](LICENSE) — Avinash Chaubey\n","readmeFilename":"README.md","_rev":"1-9540ace55784d4aa74e05a9142b9e248"}