{"_id":"@blissful-infra/cli","_rev":"6-de16cce88c09f818182428d11e3f4402","name":"@blissful-infra/cli","dist-tags":{"alpha":"0.2.1","latest":"1.2.0"},"versions":{"0.1.0":{"name":"@blissful-infra/cli","version":"0.1.0","keywords":["cli","infrastructure","devops","docker","kubernetes"],"license":"MIT","_id":"@blissful-infra/cli@0.1.0","maintainers":[{"name":"cavanpage","email":"cavan100@gmail.com"}],"bin":{"blissful-infra":"dist/index.js"},"dist":{"shasum":"a3724471df8a2af8561f09dc3a37539eab44978d","tarball":"https://registry.npmjs.org/@blissful-infra/cli/-/cli-0.1.0.tgz","fileCount":344,"integrity":"sha512-ZNHehoLHcGdYmSRIRKjl2La/i9Fq2/6ffHyD7NQQGsc13BwHhTF+DLGJPrpuauPSfzuTXa8TJh4oWG+VDU3Z3Q==","signatures":[{"sig":"MEUCIGKPoLQrvelrZcO13FO4z1DpDnKSZuS9SVGuhfCCPmb6AiEArF+L1cnrSuz92PxLPvlfSJW4auQl0eTEo5jpB0yhots=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1459249},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"c7c40d4de1dc132a7270379458d1682b951a7b95","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","build":"tsc && cp -r examples dist/examples","start":"node dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cavanpage","email":"cavan100@gmail.com"},"_npmVersion":"11.10.0","description":"CLI for blissful-infra - infrastructure that thinks for itself","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ora":"^8.1.1","zod":"^4.3.6","chalk":"^5.3.0","execa":"^9.5.2","chokidar":"^4.0.3","inquirer":"^12.3.2","commander":"^12.1.0","@anthropic-ai/sdk":"^0.74.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5","@types/inquirer":"^9.0.7"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1773767359141_0.5148354070534473","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@blissful-infra/cli","version":"0.1.1","keywords":["cli","infrastructure","devops","docker","kubernetes"],"license":"MIT","_id":"@blissful-infra/cli@0.1.1","maintainers":[{"name":"cavanpage","email":"cavan100@gmail.com"}],"homepage":"https://cavanpage.github.io/blissful-infra","bugs":{"url":"https://github.com/cavanpage/blissful-infra/issues"},"bin":{"blissful-infra":"dist/index.js"},"dist":{"shasum":"7e6ff5b3bf8937bcd62753c21790aac7d285b985","tarball":"https://registry.npmjs.org/@blissful-infra/cli/-/cli-0.1.1.tgz","fileCount":344,"integrity":"sha512-HH8n4hC6RYnnOqrTJ8EDvpsrF+0c7lzS+sN3JoVY8M0RNPMzYRQkNfLvR7Pis+V6bZqxEIik3NCn7lVSGdzmEw==","signatures":[{"sig":"MEYCIQCUdwMFrrzC4do39vAFPFX/GZtSLJwVE8uod1aqmdPvhwIhANwbTtFTLn4VtidZlYN+lp9feDMrq8oZkifpl4d4BQrS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1459526},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"33bc0ac7619ae1a4da25b4d4d669927e507e7f85","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","build":"tsc && cp -r examples dist/examples","start":"node dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cavanpage","email":"cavan100@gmail.com"},"repository":{"url":"git+https://github.com/cavanpage/blissful-infra.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.10.0","description":"CLI for blissful-infra - infrastructure that thinks for itself","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ora":"^8.1.1","zod":"^4.3.6","chalk":"^5.3.0","execa":"^9.5.2","chokidar":"^4.0.3","inquirer":"^12.3.2","commander":"^12.1.0","@anthropic-ai/sdk":"^0.74.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5","@types/inquirer":"^9.0.7"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1773771221152_0.608696383329681","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@blissful-infra/cli","version":"0.2.1","keywords":["cli","infrastructure","devops","docker","kubernetes"],"license":"MIT","_id":"@blissful-infra/cli@0.2.1","maintainers":[{"name":"cavanpage","email":"cavan100@gmail.com"}],"homepage":"https://cavanpage.github.io/blissful-infra","bugs":{"url":"https://github.com/cavanpage/blissful-infra/issues"},"bin":{"blissful-infra":"dist/index.js"},"dist":{"shasum":"7dfc3db2204613c3d0db24ce5af12249ad59a4a8","tarball":"https://registry.npmjs.org/@blissful-infra/cli/-/cli-0.2.1.tgz","fileCount":345,"integrity":"sha512-4RG+lhx3KnGUY4UzoB7K36WzCXNzQJ2CrqpEzSu3gPvW5LnsSqTbl4sXQT9ujMcR/Pk/X6E/8wXaNq/1Edew9Q==","signatures":[{"sig":"MEQCIE9ZkL8eMFHoS3CEK0V344P+ED58ajJpJA+yt3rFAxBSAiBDohFafJo1CBKshr8+ItkLKuCfOGSHoL2evoUHxQRlaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1462945},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"5d3607973e85d5230e3a1591b3c9dbf447ecb8b8","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","build":"tsc && cp -r examples dist/examples","start":"node dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cavanpage","email":"cavan100@gmail.com"},"repository":{"url":"git+https://github.com/cavanpage/blissful-infra.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.10.0","description":"CLI for blissful-infra - infrastructure that thinks for itself","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ora":"^8.1.1","zod":"^4.3.6","chalk":"^5.3.0","execa":"^9.5.2","chokidar":"^4.0.3","inquirer":"^12.3.2","commander":"^12.1.0","@anthropic-ai/sdk":"^0.74.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5","@types/inquirer":"^9.0.7"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.1_1773859376327_0.6180115764435039","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@blissful-infra/cli","version":"1.0.0","keywords":["cli","infrastructure","devops","docker","kubernetes"],"license":"MIT","_id":"@blissful-infra/cli@1.0.0","maintainers":[{"name":"cavanpage","email":"cavan100@gmail.com"}],"homepage":"https://cavanpage.github.io/blissful-infra","bugs":{"url":"https://github.com/cavanpage/blissful-infra/issues"},"bin":{"blissful-infra":"dist/index.js"},"dist":{"shasum":"a0bbca6706c4b936afad7e7286a622b97171159c","tarball":"https://registry.npmjs.org/@blissful-infra/cli/-/cli-1.0.0.tgz","fileCount":345,"integrity":"sha512-/6arWEaIa0t1GgtTcF86m2FvluOnCY1HowHpSmeFbrjrMu6yZ1nRAd8OnS4dE0u/UexnMxHyOaVZmUDI6E/1dg==","signatures":[{"sig":"MEYCIQCNF9VUyvI+hCmhcU/rCRL8iLh4H56sWGvfjQKehvTTTwIhAO84vQTaEUUTTmOHXpvcgEF/iLWO5g7A1nEqhODHQTLO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1462927},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"0ae92f04887577d1ca84659d05d62d9a7f1663ed","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","build":"tsc && cp -r examples dist/examples","start":"node dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cavanpage","email":"cavan100@gmail.com"},"repository":{"url":"git+https://github.com/cavanpage/blissful-infra.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.10.0","description":"CLI for blissful-infra - infrastructure that thinks for itself","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ora":"^8.1.1","zod":"^4.3.6","chalk":"^5.3.0","execa":"^9.5.2","chokidar":"^4.0.3","inquirer":"^12.3.2","commander":"^12.1.0","@anthropic-ai/sdk":"^0.74.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5","@types/inquirer":"^9.0.7"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.0_1773859932592_0.6169700371127764","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@blissful-infra/cli","version":"1.1.0","keywords":["cli","infrastructure","devops","docker","kubernetes"],"license":"MIT","_id":"@blissful-infra/cli@1.1.0","maintainers":[{"name":"cavanpage","email":"cavan100@gmail.com"}],"homepage":"https://cavanpage.github.io/blissful-infra","bugs":{"url":"https://github.com/cavanpage/blissful-infra/issues"},"bin":{"blissful-infra":"dist/index.js"},"dist":{"shasum":"78d41b43fa267aa965a780c8fd39b0863d755f6a","tarball":"https://registry.npmjs.org/@blissful-infra/cli/-/cli-1.1.0.tgz","fileCount":352,"integrity":"sha512-BY4SpeMxB2y71ChMjDz/yxkMZL607vKAsWPFahhSk922kvlgPRjDLmPPlM6AbWfP9b7eQo1scFctZXmX8umN5Q==","signatures":[{"sig":"MEQCIC6F9CIG3tvYn4rdf+KcIT2kuFYCX3jPTgwdscr7bkAhAiAPQM/b4lywObX34zBQXkiyYj11BO29Zybu/l3oVAz1kQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1634698},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"bf8d059ad07e6774b2ba66a045eca5d72db80abc","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","build":"tsc && cp -r examples dist/examples","start":"node dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cavanpage","email":"cavan100@gmail.com"},"repository":{"url":"git+https://github.com/cavanpage/blissful-infra.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.10.0","description":"CLI for blissful-infra - infrastructure that thinks for itself","directories":{},"_nodeVersion":"25.2.1","dependencies":{"ora":"^8.1.1","zod":"^4.3.6","chalk":"^5.3.0","execa":"^9.5.2","chokidar":"^4.0.3","inquirer":"^12.3.2","commander":"^12.1.0","@anthropic-ai/sdk":"^0.74.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5","@types/inquirer":"^9.0.7"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.1.0_1774516710233_0.7238843020097889","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@blissful-infra/cli","version":"1.2.0","description":"CLI for blissful-infra - infrastructure that thinks for itself","type":"module","bin":{"blissful-infra":"dist/index.js"},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc && cp -r examples dist/examples","dev":"tsc --watch","start":"node dist/index.js","lint":"eslint src --ext .ts","typecheck":"tsc --noEmit"},"keywords":["cli","infrastructure","devops","docker","kubernetes"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/cavanpage/blissful-infra.git","directory":"packages/cli"},"homepage":"https://blissful-infra.com","bugs":{"url":"https://github.com/cavanpage/blissful-infra/issues"},"engines":{"node":">=20.0.0"},"dependencies":{"@anthropic-ai/sdk":"^0.74.0","@modelcontextprotocol/sdk":"^1.27.1","chalk":"^5.3.0","chokidar":"^4.0.3","commander":"^12.1.0","execa":"^9.5.2","inquirer":"^12.3.2","ora":"^8.1.1","zod":"^4.3.6"},"devDependencies":{"@types/inquirer":"^9.0.7","@types/node":"^22.10.5","typescript":"^5.7.3"},"gitHead":"d71b87e4eac3a594fae43ad2b0910d582f0fc4f7","_id":"@blissful-infra/cli@1.2.0","_nodeVersion":"25.2.1","_npmVersion":"11.10.0","dist":{"integrity":"sha512-FvEEGeGI9olsjy+8yBYVPJBK+BJS9ZdxscYwlicKVHeMgB7dgijbKmc2fSs252ZrW/UJjt4C0NkFHYmXmD0zbA==","shasum":"36aa6f16ab805345fe36635fd5a58467a2903303","tarball":"https://registry.npmjs.org/@blissful-infra/cli/-/cli-1.2.0.tgz","fileCount":352,"unpackedSize":1634682,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDWnoBU/X7rllajF+AsQgC/Kxut4gpS/l6yv58xWoVtlwIgfMNvEoG+T5LoBryT+fw28E8BrKbq44i3+UEG0RoUk78="}]},"_npmUser":{"name":"cavanpage","email":"cavan100@gmail.com"},"directories":{},"maintainers":[{"name":"cavanpage","email":"cavan100@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_1.2.0_1774516796766_0.27138176574717043"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-17T17:09:19.025Z","modified":"2026-03-26T09:19:57.062Z","0.1.0":"2026-03-17T17:09:19.368Z","0.1.1":"2026-03-17T18:13:41.300Z","0.2.1":"2026-03-18T18:42:56.474Z","1.0.0":"2026-03-18T18:52:12.768Z","1.1.0":"2026-03-26T09:18:30.384Z","1.2.0":"2026-03-26T09:19:56.923Z"},"bugs":{"url":"https://github.com/cavanpage/blissful-infra/issues"},"license":"MIT","homepage":"https://blissful-infra.com","keywords":["cli","infrastructure","devops","docker","kubernetes"],"repository":{"type":"git","url":"git+https://github.com/cavanpage/blissful-infra.git","directory":"packages/cli"},"description":"CLI for blissful-infra - infrastructure that thinks for itself","maintainers":[{"name":"cavanpage","email":"cavan100@gmail.com"}],"readme":"# @blissful-infra/cli\n\n**[blissful-infra.com](https://blissful-infra.com)** — full docs and guides\n\nOne command creates and runs a full-stack app with CI/CD, observability, and an AI agent — no cloud required.\n\n```bash\nnpm install -g @blissful-infra/cli\nblissful-infra start my-app\n```\n\n## What you get\n\n- **Backend** — Kotlin/Spring Boot, Python/FastAPI, Node/Express, or Go/Chi\n- **Frontend** — React + Vite or Next.js, both with TypeScript and Tailwind\n- **Database** — Postgres with Flyway migrations, Redis caching, or both\n- **Kafka** — event bus wired between backend and frontend via WebSockets + SSE\n- **Observability** — Prometheus, Grafana, Loki, and Jaeger provisioned automatically\n- **CI/CD** — Jenkins pipeline with a generated Jenkinsfile, Docker registry included\n- **AI agent** — Ask Claude or Ollama to diagnose errors, analyze logs, and explain metrics\n- **MCP server** — Let Claude orchestrate your entire local platform via natural language\n\n## Quickstart\n\n**Prerequisites:** Docker Desktop running, Node.js 18+\n\n```bash\n# Install\nnpm install -g @blissful-infra/cli\n\n# Create and start a project\nblissful-infra start my-app --backend spring-boot --database postgres\n\n# Open the dashboard\nblissful-infra dashboard\n```\n\nYour app is running at:\n\n| Service    | URL                       |\n|------------|---------------------------|\n| Frontend   | http://localhost:3000     |\n| Backend    | http://localhost:8080     |\n| Grafana    | http://localhost:3001     |\n| Dashboard  | http://localhost:3002     |\n| Jenkins    | http://localhost:8081     |\n\n## Commands\n\n```bash\nblissful-infra start <name>       # Create and run a new project\nblissful-infra up [name]          # Start an existing project\nblissful-infra down [name]        # Stop a project\nblissful-infra dashboard          # Launch the web dashboard\nblissful-infra logs [name]        # View logs\nblissful-infra mcp                # Start MCP server for Claude\nblissful-infra example [name]     # Scaffold a reference example\nblissful-infra deploy [name]      # Deploy to an environment\nblissful-infra agent [name]       # AI debugging agent\n```\n\n## Options\n\n```bash\n--backend   spring-boot | fastapi | express | go-chi  (default: spring-boot)\n--frontend  react-vite | nextjs                        (default: react-vite)\n--database  none | postgres | redis | postgres-redis   (default: postgres)\n--plugins   ai-pipeline | scraper                      (comma-separated)\n```\n\n## MCP Server\n\nblissful-infra ships an MCP server so Claude can manage your infrastructure directly.\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"blissful-infra\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@blissful-infra/cli\", \"mcp\"]\n    }\n  }\n}\n```\n\nThen ask Claude things like:\n- \"What's the health of all my projects?\"\n- \"Show me ERROR logs from the backend in my-app\"\n- \"Why is the backend restarting? Diagnose it.\"\n- \"Deploy my-app to staging\"\n\n## Examples\n\nReference implementations for real-world use cases:\n\n```bash\nblissful-infra example content-recommender\ncd content-recommender && blissful-infra up\n```\n\n| Example | Stack |\n|---------|-------|\n| `content-recommender` | Spring Boot + ALS collaborative filtering + ClickHouse + MLflow + Scrapy |\n\n## Links\n\n- [GitHub](https://github.com/cavanpage/blissful-infra)\n- [Docs](https://cavanpage.github.io/blissful-infra)\n- [Issues](https://github.com/cavanpage/blissful-infra/issues)\n","readmeFilename":"README.md"}