noah-cursor 1.5.9 → 1.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +253 -182
  2. package/dist/commands/add.d.ts.map +1 -1
  3. package/dist/commands/add.js +2 -1
  4. package/dist/commands/add.js.map +1 -1
  5. package/dist/commands/analyze.d.ts +3 -0
  6. package/dist/commands/analyze.d.ts.map +1 -0
  7. package/dist/commands/analyze.js +48 -0
  8. package/dist/commands/analyze.js.map +1 -0
  9. package/dist/commands/auth.d.ts +3 -0
  10. package/dist/commands/auth.d.ts.map +1 -0
  11. package/dist/commands/auth.js +67 -0
  12. package/dist/commands/auth.js.map +1 -0
  13. package/dist/commands/bootstrap.d.ts +3 -0
  14. package/dist/commands/bootstrap.d.ts.map +1 -0
  15. package/dist/commands/bootstrap.js +92 -0
  16. package/dist/commands/bootstrap.js.map +1 -0
  17. package/dist/commands/config.d.ts +3 -0
  18. package/dist/commands/config.d.ts.map +1 -0
  19. package/dist/commands/config.js +109 -0
  20. package/dist/commands/config.js.map +1 -0
  21. package/dist/commands/dashboard.d.ts +3 -0
  22. package/dist/commands/dashboard.d.ts.map +1 -0
  23. package/dist/commands/dashboard.js +21 -0
  24. package/dist/commands/dashboard.js.map +1 -0
  25. package/dist/commands/doctor.d.ts.map +1 -1
  26. package/dist/commands/doctor.js +3 -2
  27. package/dist/commands/doctor.js.map +1 -1
  28. package/dist/commands/explain.d.ts +3 -0
  29. package/dist/commands/explain.d.ts.map +1 -0
  30. package/dist/commands/explain.js +27 -0
  31. package/dist/commands/explain.js.map +1 -0
  32. package/dist/commands/favorite.d.ts +3 -0
  33. package/dist/commands/favorite.d.ts.map +1 -0
  34. package/dist/commands/favorite.js +64 -0
  35. package/dist/commands/favorite.js.map +1 -0
  36. package/dist/commands/install.d.ts +3 -0
  37. package/dist/commands/install.d.ts.map +1 -0
  38. package/dist/commands/install.js +83 -0
  39. package/dist/commands/install.js.map +1 -0
  40. package/dist/commands/new.d.ts +3 -0
  41. package/dist/commands/new.d.ts.map +1 -0
  42. package/dist/commands/new.js +27 -0
  43. package/dist/commands/new.js.map +1 -0
  44. package/dist/commands/plugin.d.ts +3 -0
  45. package/dist/commands/plugin.d.ts.map +1 -0
  46. package/dist/commands/plugin.js +39 -0
  47. package/dist/commands/plugin.js.map +1 -0
  48. package/dist/commands/preview.d.ts +3 -0
  49. package/dist/commands/preview.d.ts.map +1 -0
  50. package/dist/commands/preview.js +25 -0
  51. package/dist/commands/preview.js.map +1 -0
  52. package/dist/commands/publish.d.ts +3 -0
  53. package/dist/commands/publish.d.ts.map +1 -0
  54. package/dist/commands/publish.js +22 -0
  55. package/dist/commands/publish.js.map +1 -0
  56. package/dist/commands/recent.d.ts +3 -0
  57. package/dist/commands/recent.d.ts.map +1 -0
  58. package/dist/commands/recent.js +27 -0
  59. package/dist/commands/recent.js.map +1 -0
  60. package/dist/commands/remove.d.ts.map +1 -1
  61. package/dist/commands/remove.js +2 -1
  62. package/dist/commands/remove.js.map +1 -1
  63. package/dist/commands/search.d.ts.map +1 -1
  64. package/dist/commands/search.js +39 -2
  65. package/dist/commands/search.js.map +1 -1
  66. package/dist/commands/try.d.ts +3 -0
  67. package/dist/commands/try.d.ts.map +1 -0
  68. package/dist/commands/try.js +22 -0
  69. package/dist/commands/try.js.map +1 -0
  70. package/dist/commands/undo.d.ts +3 -0
  71. package/dist/commands/undo.d.ts.map +1 -0
  72. package/dist/commands/undo.js +24 -0
  73. package/dist/commands/undo.js.map +1 -0
  74. package/dist/commands/uninstall.d.ts +3 -0
  75. package/dist/commands/uninstall.d.ts.map +1 -0
  76. package/dist/commands/uninstall.js +52 -0
  77. package/dist/commands/uninstall.js.map +1 -0
  78. package/dist/commands/update.d.ts.map +1 -1
  79. package/dist/commands/update.js +2 -1
  80. package/dist/commands/update.js.map +1 -1
  81. package/dist/commands/wizard.d.ts +3 -0
  82. package/dist/commands/wizard.d.ts.map +1 -0
  83. package/dist/commands/wizard.js +61 -0
  84. package/dist/commands/wizard.js.map +1 -0
  85. package/dist/commands/workspace.d.ts +3 -0
  86. package/dist/commands/workspace.d.ts.map +1 -0
  87. package/dist/commands/workspace.js +84 -0
  88. package/dist/commands/workspace.js.map +1 -0
  89. package/dist/constants/ides.d.ts +2 -2
  90. package/dist/constants/ides.d.ts.map +1 -1
  91. package/dist/constants/ides.js +47 -3
  92. package/dist/constants/ides.js.map +1 -1
  93. package/dist/constants/index.d.ts +4 -0
  94. package/dist/constants/index.d.ts.map +1 -1
  95. package/dist/constants/index.js +4 -0
  96. package/dist/constants/index.js.map +1 -1
  97. package/dist/core/program.d.ts.map +1 -1
  98. package/dist/core/program.js +38 -5
  99. package/dist/core/program.js.map +1 -1
  100. package/dist/index.js +36 -1
  101. package/dist/index.js.map +1 -1
  102. package/dist/metadata/user-store.d.ts +16 -0
  103. package/dist/metadata/user-store.d.ts.map +1 -0
  104. package/dist/metadata/user-store.js +99 -0
  105. package/dist/metadata/user-store.js.map +1 -0
  106. package/dist/noah-registry/manifest.json +129 -16
  107. package/dist/services/doctor-service.d.ts.map +1 -1
  108. package/dist/services/doctor-service.js +74 -7
  109. package/dist/services/doctor-service.js.map +1 -1
  110. package/dist/services/ecosystem.d.ts +17 -0
  111. package/dist/services/ecosystem.d.ts.map +1 -0
  112. package/dist/services/ecosystem.js +136 -0
  113. package/dist/services/ecosystem.js.map +1 -0
  114. package/dist/services/extras.d.ts +29 -0
  115. package/dist/services/extras.d.ts.map +1 -0
  116. package/dist/services/extras.js +164 -0
  117. package/dist/services/extras.js.map +1 -0
  118. package/dist/services/install-service.d.ts +12 -0
  119. package/dist/services/install-service.d.ts.map +1 -1
  120. package/dist/services/install-service.js +169 -12
  121. package/dist/services/install-service.js.map +1 -1
  122. package/dist/services/intelligence.d.ts +20 -0
  123. package/dist/services/intelligence.d.ts.map +1 -0
  124. package/dist/services/intelligence.js +146 -0
  125. package/dist/services/intelligence.js.map +1 -0
  126. package/dist/services/lockfile-service.d.ts +7 -0
  127. package/dist/services/lockfile-service.d.ts.map +1 -0
  128. package/dist/services/lockfile-service.js +36 -0
  129. package/dist/services/lockfile-service.js.map +1 -0
  130. package/dist/services/project-awareness.d.ts +12 -0
  131. package/dist/services/project-awareness.d.ts.map +1 -0
  132. package/dist/services/project-awareness.js +200 -0
  133. package/dist/services/project-awareness.js.map +1 -0
  134. package/dist/services/workspace-service.d.ts +49 -0
  135. package/dist/services/workspace-service.d.ts.map +1 -0
  136. package/dist/services/workspace-service.js +92 -0
  137. package/dist/services/workspace-service.js.map +1 -0
  138. package/dist/types/index.d.ts +508 -4
  139. package/dist/types/index.d.ts.map +1 -1
  140. package/dist/types/index.js +72 -0
  141. package/dist/types/index.js.map +1 -1
  142. package/dist/ui/banner.d.ts.map +1 -1
  143. package/dist/ui/banner.js +2 -3
  144. package/dist/ui/banner.js.map +1 -1
  145. package/dist/ui/homeMenu.d.ts +6 -0
  146. package/dist/ui/homeMenu.d.ts.map +1 -0
  147. package/dist/ui/homeMenu.js +72 -0
  148. package/dist/ui/homeMenu.js.map +1 -0
  149. package/dist/ui/preview.d.ts +3 -0
  150. package/dist/ui/preview.d.ts.map +1 -0
  151. package/dist/ui/preview.js +36 -0
  152. package/dist/ui/preview.js.map +1 -0
  153. package/dist/utils/assets.d.ts +7 -0
  154. package/dist/utils/assets.d.ts.map +1 -1
  155. package/dist/utils/assets.js +18 -14
  156. package/dist/utils/assets.js.map +1 -1
  157. package/dist/utils/fuzzy.d.ts +6 -0
  158. package/dist/utils/fuzzy.d.ts.map +1 -0
  159. package/dist/utils/fuzzy.js +51 -0
  160. package/dist/utils/fuzzy.js.map +1 -0
  161. package/dist/utils/registry.d.ts +8 -1
  162. package/dist/utils/registry.d.ts.map +1 -1
  163. package/dist/utils/registry.js +13 -5
  164. package/dist/utils/registry.js.map +1 -1
  165. package/dist/utils/semver.d.ts +11 -0
  166. package/dist/utils/semver.d.ts.map +1 -0
  167. package/dist/utils/semver.js +41 -0
  168. package/dist/utils/semver.js.map +1 -0
  169. package/package.json +6 -4
package/README.md CHANGED
@@ -3,10 +3,12 @@
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
- <strong>The CLI for shipping Cursor setups that actually work.</strong><br />
7
- Install battle-tested Skills, Rules, and workflows into any project also works with Windsurf, Claude Code, and more.
6
+ <strong>The package manager and intelligent project bootstrapper for AI-assisted software development.</strong><br />
7
+ Bootstrap your AI development environment in one command — Noah understands your project and configures the best Skills, Rules, and workflows for Cursor, Claude Code, Windsurf, and more.
8
8
  </p>
9
9
 
10
+ > **Continuous improvement.** Noah is under active development. The CLI, registry, and DX keep evolving — expect frequent updates, new packages, and polish as the roadmap ships.
11
+
10
12
  <p align="center">
11
13
  <a href="https://www.npmjs.com/package/noah-cursor"><img src="https://img.shields.io/npm/v/noah-cursor.svg" alt="npm version" /></a>
12
14
  <a href="https://www.npmjs.com/package/noah-cursor"><img src="https://img.shields.io/npm/dm/noah-cursor.svg" alt="npm downloads" /></a>
@@ -16,109 +18,212 @@
16
18
  </p>
17
19
 
18
20
  ```bash
19
- npx noah-cursor browse
21
+ npx noah-cursor bootstrap
22
+ # or: npx noah bootstrap
20
23
  ```
21
24
 
22
- Stop copy-pasting Cursor prompts between repos. **Noah Cursor** is a developer CLI + curated registry: reusable Skills, Rules, Prompts, MCP configs, and Presets that drop straight into `.cursor/` no clone, no sign-in, no friction.
25
+ **Recommended for first-time users.** Clone a repo, run bootstrap, and Noah detects your stack, scores project health, and shows recommended packages then asks before installing. Confirm to install and write `noah.config.json`, or skip and choose packages yourself.
23
26
 
24
- Also supports **Windsurf**, **Claude Code**, **Continue**, **VS Code**, and **Cline** — pick your IDE at install time and assets land in the right folder.
27
+ ---
25
28
 
26
- ## Works with your IDE
29
+ ## Intelligent Project Bootstrap
27
30
 
28
- Built for **Cursor** first. At install time you can also target other AI IDEs — same registry, different project folder.
31
+ One command prepares your entire AI development environment.
29
32
 
30
- **Install flow:** select IDE (default: Cursor) → browse → install
33
+ ```bash
34
+ noah bootstrap
35
+ ```
31
36
 
32
- | IDE | Flag | Project folder |
33
- | --- | ---- | -------------- |
34
- | **Cursor** | `--ide cursor` **(default)** | `.cursor/` |
35
- | Windsurf | `--ide windsurf` | `.windsurf/` |
36
- | Claude Code | `--ide claude-code` | `.claude/` |
37
- | Continue | `--ide continue` | `.continue/` |
38
- | VS Code | `--ide vscode` | `.vscode/` |
39
- | Cline | `--ide cline` | `.cline/` |
37
+ Noah automatically:
40
38
 
41
- ```bash
42
- # Cursor (default) IDE picker defaults here
43
- npx noah-cursor browse
39
+ - ✓ Detects your framework and tooling
40
+ - Analyses project architecture
41
+ - ✓ Scores project health
42
+ - ✓ Recommends the best Rules and Skills
43
+ - ✓ Installs AI workflow packages
44
+ - ✓ Generates `noah.config.json`
45
+ - ✓ Configures your AI assistant
44
46
 
45
- # Other IDEs when you need them
46
- npx noah-cursor browse --ide windsurf
47
- npx noah-cursor add --skill commit-push --ide claude-code
47
+ No searching. No manual configuration. Just clone your project and bootstrap.
48
+
49
+ ### Example
50
+
51
+ ```text
52
+ $ noah bootstrap
53
+
54
+ ────────────────────────────
55
+ Scanning repository...
56
+
57
+ ✓ Laravel 12
58
+ ✓ Vue 3
59
+ ✓ PostgreSQL
60
+ ✓ Docker
61
+ ✓ GitHub Actions
62
+
63
+ Project Health
64
+ Architecture 92%
65
+ Security 88%
66
+ Testing 34%
67
+ Documentation 26%
68
+
69
+ Recommended Packages
70
+ ✓ Laravel Enterprise
71
+ ✓ Testing Workflow
72
+ ✓ Security Standards
73
+ ✓ Docker Optimisation
74
+
75
+ ? Install 4 recommended package(s)? (Y/n)
76
+
77
+ Installing...
78
+ Done.
79
+ Workspace ready.
48
80
  ```
49
81
 
50
- ## Built for your stack
82
+ ### How it works
51
83
 
52
- <p align="center">
53
- <img src="https://skillicons.dev/icons?i=nodejs,typescript,react,nextjs,vue,nuxtjs,nestjs,laravel,php,git&perline=10" alt="Tech stack" />
54
- </p>
84
+ ```text
85
+ Clone Repository
86
+
87
+ noah bootstrap
88
+
89
+ Detect Stack
90
+
91
+ Analyse Project
92
+
93
+ Recommend Packages
94
+
95
+ Install AI Workflows
96
+
97
+ Generate noah.config.json
98
+
99
+ Ready to Develop
100
+ ```
55
101
 
56
- <p align="center">
57
- <img src="https://img.shields.io/badge/Cursor-000000?style=flat-square&logo=cursor&logoColor=white" alt="Cursor" />
58
- <img src="https://img.shields.io/badge/Node.js-339933?style=flat-square&logo=nodedotjs&logoColor=white" alt="Node.js" />
59
- <img src="https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript" />
60
- <img src="https://img.shields.io/badge/React-61DAFB?style=flat-square&logo=react&logoColor=black" alt="React" />
61
- <img src="https://img.shields.io/badge/Next.js-000000?style=flat-square&logo=nextdotjs&logoColor=white" alt="Next.js" />
62
- <img src="https://img.shields.io/badge/Nuxt-00DC82?style=flat-square&logo=nuxt&logoColor=black" alt="Nuxt" />
63
- <img src="https://img.shields.io/badge/NestJS-E0234E?style=flat-square&logo=nestjs&logoColor=white" alt="NestJS" />
64
- <img src="https://img.shields.io/badge/Laravel-FF2D20?style=flat-square&logo=laravel&logoColor=white" alt="Laravel" />
65
- </p>
102
+ ---
66
103
 
67
- Curated Skills & Rules for the stacks you already ship — React dashboards, Laravel APIs, Next/Nuxt marketing sites, NestJS, and Node.
104
+ ## Why Noah Cursor?
68
105
 
69
- ## Why developers use it
106
+ Unlike traditional prompt registries, Noah understands your project before installing anything.
70
107
 
71
- | Pain | Noah Cursor |
72
- | ---- | ----------- |
73
- | Rebuilding the same Cursor setup on every project | One command installs a full workflow into `.cursor/` |
74
- | Vague AI prompts that drift between teammates | Versioned Skills & Rules from a real registry |
75
- | Hunting docs every time you switch stacks | Stack-specific rules for React, Laravel, Next, Nuxt |
76
- | Manual QA loops with lint/doctor tools | Fix Skills that run → fix → verify |
108
+ With a single command, Noah can:
77
109
 
78
- Built for people who live in the terminal and want Cursor to feel like a product, not a blank slate.
110
+ - Detect your technology stack
111
+ - Analyse project health
112
+ - Recommend the best AI workflow packages
113
+ - Configure your AI coding assistant
114
+ - Generate a reproducible workspace configuration
79
115
 
80
- ## Demo
116
+ ### Why it's different
81
117
 
82
- <p align="center">
83
- <img src="https://cdn.jsdelivr.net/npm/noah-cursor@latest/assets/noah-cursor-demo.gif" alt="Noah Cursor CLI demo" width="100%" />
84
- </p>
118
+ | Traditional Registry | Noah Cursor |
119
+ | -------------------- | ----------- |
120
+ | Browse packages manually | Automatically understands your project |
121
+ | Search for prompts | Recommends the right packages |
122
+ | Install one resource at a time | Bootstraps the entire AI development environment |
123
+ | Static downloads | Intelligent project analysis |
124
+ | Manual configuration | Zero-configuration onboarding |
125
+
126
+ ---
127
+
128
+ ## Features
85
129
 
86
- Marketing site: [GitHub Pages](https://itsmenoahpoli.github.io/noah-cursor/) (enable Pages GitHub Actions after first deploy).
130
+ 1. **Intelligent Project Bootstrap** detect, recommend, install, ready
131
+ 2. **Interactive Terminal UI** — browse Skills, Rules, Prompts, MCP, Presets
132
+ 3. **Project Detection** — frameworks, tooling, CI, Docker, AI config
133
+ 4. **AI Workflow Package Manager** — install / update / uninstall / lockfile
134
+ 5. **Smart Recommendations** — stack-aware package suggestions
135
+ 6. **Multi-AI Assistant Support** — Cursor, Claude Code, Windsurf, and more
136
+ 7. **Registry Browser** — fuzzy search, preview, trending
137
+ 8. **Skills & Rules Installation** — battle-tested agent workflows
138
+ 9. **Team Workspace Configuration** — `noah.config.json` + `sync`
139
+ 10. **Versioned AI Packages** — pins, presets, dependencies
140
+
141
+ ---
87
142
 
88
143
  ## Quick start
89
144
 
90
145
  Requires **Node.js 20+**.
91
146
 
92
147
  ```bash
93
- # Interactive install (recommended)
94
- npx noah-cursor browse
148
+ # Recommended bootstrap your AI environment from the project
149
+ npx noah-cursor bootstrap
95
150
 
96
151
  # Or install globally
97
152
  npm install -g noah-cursor
98
- noah-cursor browse
153
+ noah bootstrap
99
154
  ```
100
155
 
101
- The registry ships inside the package. Nothing to clone. Nothing to authenticate.
156
+ The registry ships inside the package. Nothing to clone for official assets.
102
157
 
103
- ### 30-second wins
158
+ ### Other ways to install packages
104
159
 
105
160
  ```bash
106
- # Cursor (default) cleaner commits
107
- npx noah-cursor add --skill commit-push
161
+ # Interactive browse (Skills / Rules / Prompts / MCP / Presets)
162
+ npx noah-cursor browse
163
+
164
+ # Install by package name
165
+ npx noah-cursor install commit-push
166
+ npx noah-cursor install laravel-api --target claude
167
+ npx noah-cursor install laravel-enterprise
168
+ ```
169
+
170
+ ---
171
+
172
+ ## Demo
173
+
174
+ <p align="center">
175
+ <img src="https://cdn.jsdelivr.net/npm/noah-cursor@latest/assets/noah-cursor-demo.gif" alt="Noah Cursor CLI demo" width="100%" />
176
+ </p>
177
+
178
+ Marketing site: [GitHub Pages](https://itsmenoahpoli.github.io/noah-cursor/)
179
+
180
+ ---
181
+
182
+ ## Built for your stack
183
+
184
+ <p align="center">
185
+ <img src="https://skillicons.dev/icons?i=nodejs,typescript,react,nextjs,vue,nuxtjs,nestjs,laravel,php,git&perline=10" alt="Tech stack" />
186
+ </p>
187
+
188
+ <p align="center">
189
+ <img src="https://img.shields.io/badge/Cursor-000000?style=flat-square&logo=cursor&logoColor=white" alt="Cursor" />
190
+ <img src="https://img.shields.io/badge/Node.js-339933?style=flat-square&logo=nodedotjs&logoColor=white" alt="Node.js" />
191
+ <img src="https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript" />
192
+ <img src="https://img.shields.io/badge/React-61DAFB?style=flat-square&logo=react&logoColor=black" alt="React" />
193
+ <img src="https://img.shields.io/badge/Next.js-000000?style=flat-square&logo=nextdotjs&logoColor=white" alt="Next.js" />
194
+ <img src="https://img.shields.io/badge/Nuxt-00DC82?style=flat-square&logo=nuxt&logoColor=black" alt="Nuxt" />
195
+ <img src="https://img.shields.io/badge/NestJS-E0234E?style=flat-square&logo=nestjs&logoColor=white" alt="NestJS" />
196
+ <img src="https://img.shields.io/badge/Laravel-FF2D20?style=flat-square&logo=laravel&logoColor=white" alt="Laravel" />
197
+ </p>
108
198
 
109
- # Same skill into Windsurf
110
- npx noah-cursor add --skill commit-push --ide windsurf
199
+ Curated Skills & Rules for React dashboards, Laravel APIs, Next/Nuxt marketing sites, NestJS, and Node — selected automatically when you bootstrap, or installed by name when you prefer.
111
200
 
112
- # Auto-generate a solid project README
113
- npx noah-cursor add --skill generate-readme
201
+ ---
114
202
 
115
- # React health pass: run doctor → fix → verify
116
- npx noah-cursor add --skill react-doctor-fix
203
+ ## Works with your IDE
204
+
205
+ Built for **Cursor** first. Same registry, different project folder via `--ide` or `--target`.
206
+
207
+ | IDE | Flag | Project folder |
208
+ | --- | ---- | -------------- |
209
+ | **Cursor** | `--ide cursor` **(default)** | `.cursor/` |
210
+ | Windsurf | `--ide windsurf` | `.windsurf/` |
211
+ | Claude Code | `--ide claude-code` / `--target claude` | `.claude/` |
212
+ | Continue | `--ide continue` | `.continue/` |
213
+ | VS Code | `--ide vscode` | `.vscode/` |
214
+ | Cline | `--ide cline` | `.cline/` |
215
+ | Gemini CLI | `--ide gemini` | `.gemini/` |
216
+ | Codex CLI | `--ide codex` | `.codex/` |
217
+ | Roo Code | `--ide roo` | `.roo/` |
218
+ | Aider | `--ide aider` | `.aider/` |
117
219
 
118
- # Stack rules for a Laravel API + React dashboard
119
- npx noah-cursor add --rule laravel-api --rule react-spa-dashboard
220
+ ```bash
221
+ noah bootstrap --target claude
222
+ noah install commit-push --ide windsurf
120
223
  ```
121
224
 
225
+ ---
226
+
122
227
  ## What you get
123
228
 
124
229
  ### Skills — agent workflows you can reuse
@@ -142,176 +247,142 @@ npx noah-cursor add --rule laravel-api --rule react-spa-dashboard
142
247
  | `nextjs-marketing` | Next.js | Next.js App Router marketing / branding sites |
143
248
  | `nuxt-marketing` | Nuxt | Nuxt 3+ marketing / branding sites |
144
249
 
145
- Prompts, MCP configs, and Presets are supported by the CLI — more shipping soon.
146
-
147
- ## Commands
148
-
149
- | Command | Description |
150
- | ------- | ----------- |
151
- | `browse` | Pick IDE → browse categories → install assets |
152
- | `add` | Install Skills, Rules, Prompts, MCP, or Presets |
153
- | `search` | Search the registry |
154
- | `list` | List registry or installed assets |
155
- | `remove` | Uninstall an asset |
156
- | `update` | Re-fetch and update installed assets |
157
- | `doctor` | Diagnose environment health |
250
+ ### Presets one install, many packages
158
251
 
159
- ### browse
252
+ | Preset | Includes |
253
+ | ------ | -------- |
254
+ | `laravel-enterprise` | Laravel API + Larastan + README + git + architecture |
255
+ | `react-performance` | React SPA rules + react-doctor + git + architecture |
160
256
 
161
- ```text
162
- Select IDE → Select categories → Select assets → Confirm → Install
163
- ```
257
+ Prompts and MCP configs are supported by the CLI — more shipping as the registry grows.
164
258
 
165
- ```bash
166
- noah-cursor browse
167
- noah-cursor browse --ide windsurf
168
- noah-cursor browse --browse-skills
169
- noah-cursor browse --browse-rules
170
- noah-cursor browse --browse-prompts
171
- noah-cursor browse --browse-mcp
172
- noah-cursor browse --browse-presets
173
- ```
259
+ ---
174
260
 
175
- Controls: ↑↓ navigate · Space select · A toggle all · I invert · Enter confirm · Esc cancel
261
+ ## Commands
176
262
 
177
- ### add
263
+ | Command | Description |
264
+ | ------- | ----------- |
265
+ | **`bootstrap`** | **Detect stack → recommend → confirm → install → write workspace (flagship)** |
266
+ | `analyze` / `doctor` | Project analysis and health scores |
267
+ | `wizard` | Interactive “what are you building?” setup |
268
+ | `browse` | Interactive Skills / Rules / Prompts / MCP / Presets |
269
+ | `install` / `i` | Install by package name (`id`, `type/id`, `@version`) |
270
+ | `add` | Install via `--skill` / `--rule` / … flags |
271
+ | `search` / `preview` | Fuzzy search and package preview |
272
+ | `list` / `update` / `uninstall` | Manage installed packages |
273
+ | `workspace` / `sync` | Team `noah.config.json` + sync |
274
+ | `explain` / `upgrade` | Package explain + upgrade assistant |
275
+ | `publish` / `trending` | Scaffold packages / trending list |
276
+ | `dashboard` / `diff` / `try` / `undo` / `new` | DX extras |
277
+ | `login` / `config` / `audit` | Auth, settings, audit log |
278
+
279
+ Use `--ide` or `--target` on install / bootstrap / doctor. Default: `cursor`.
280
+
281
+ ### Bootstrap & project-aware flow
178
282
 
179
283
  ```bash
180
- noah-cursor add
181
- --skill <name>
182
- --rule <name>
183
- --prompt <name>
184
- --mcp <name>
185
- --preset <name>
186
- --ide <name> # cursor (default) | windsurf | claude-code | continue | vscode | cline
187
- --all
188
- --force
189
- --dry-run
190
- --yes
191
- --verbose
284
+ noah bootstrap # recommended entrypoint (asks before install)
285
+ noah bootstrap -y # skip confirmation and install
286
+ noah bootstrap --all # recommend all matches (not just top 5)
287
+ noah bootstrap --dry-run
288
+ noah analyze
289
+ noah doctor
290
+ noah wizard
192
291
  ```
193
292
 
194
- Always installs from **Noah's bundled registry**.
293
+ ### Browse & install
195
294
 
196
295
  ```bash
197
- npx noah-cursor add --skill commit-push
198
- npx noah-cursor add --skill commit-push --ide claude-code
199
- npx noah-cursor add --rule nextjs-marketing
200
- npx noah-cursor add --all
296
+ noah browse
297
+ noah browse --browse-skills
298
+ noah install laravel-api
299
+ noah install rule/laravel-api@1.0.0 --target claude
300
+ noah install laravel-enterprise
201
301
  ```
202
302
 
203
- ### search / list / remove / update / doctor
204
-
205
- Pass `--ide` when managing installs for a non-Cursor target (default: `cursor`).
303
+ ### Team sync
206
304
 
207
305
  ```bash
208
- noah-cursor search doctor
209
- noah-cursor list
210
- noah-cursor list --installed
211
- noah-cursor list --installed --ide windsurf
212
- noah-cursor remove skill test --yes
213
- noah-cursor remove skill test --ide windsurf --yes
214
- noah-cursor update --yes
215
- noah-cursor doctor
216
- noah-cursor doctor --ide claude-code
306
+ noah workspace init
307
+ noah workspace add rule/laravel-api
308
+ noah sync -y
309
+ # noah.config.json + noah.lock stay in sync on install
217
310
  ```
218
311
 
219
- ## How it works
312
+ ---
220
313
 
221
- By default, assets install under **`.cursor/`**. Choose another IDE and the folder follows:
314
+ ## Project layout after bootstrap
222
315
 
223
316
  ```
224
317
  your-project/
225
- .cursor/ # Cursor (default) primary target
226
- .windsurf/ # --ide windsurf
227
- .claude/ # --ide claude-code
228
- .continue/ # --ide continue
229
- .vscode/ # --ide vscode
230
- .cline/ # --ide cline
231
- ```
232
-
233
- Inside the IDE root (e.g. `.cursor/`):
234
-
318
+ .cursor/ # AI assets (or .claude/, .windsurf/, …)
319
+ skills/
320
+ rules/
321
+ noah.json # per-IDE install ledger
322
+ noah.config.json # team workspace package list
323
+ noah.lock # pinned versions
235
324
  ```
236
- skills/
237
- rules/
238
- prompts/
239
- mcp/
240
- noah.json # tracks installed assets + ide
241
- ```
242
-
243
- Example after a default browse install:
244
325
 
245
- ```
246
- .cursor/
247
- skills/commit-push/
248
- rules/laravel-api/
249
- noah.json
250
- ```
326
+ User preferences (favorites, recent, auth) live in `~/.noah/`.
251
327
 
252
- `noah.json` keeps versions, IDE, and registry metadata so `update` and `remove` stay reliable across machines and teammates.
328
+ ---
253
329
 
254
330
  ## Build your own registry assets
255
331
 
256
- This repo is both the **CLI** and the **registry**. At the project root:
332
+ This repo is both the **CLI** and the **registry**:
257
333
 
258
334
  ```
259
335
  manifest.json
260
- skills/
261
- rules/
262
- prompts/
263
- mcp/
264
- presets/
336
+ skills/ rules/ prompts/ mcp/ presets/
265
337
  ```
266
338
 
267
- Add an asset folder, register it in `manifest.json`, ship. Each `id` maps to a folder under the matching directory (or set an explicit `path`).
268
-
269
- ```json
270
- {
271
- "name": "noah-registry",
272
- "version": "1.0.0",
273
- "description": "My AI IDE assets",
274
- "skills": [
275
- {
276
- "id": "my-workflow",
277
- "version": "1.0.0",
278
- "description": "What this skill does",
279
- "tags": ["git"]
280
- }
281
- ],
282
- "rules": [],
283
- "prompts": [],
284
- "mcp": [],
285
- "presets": []
286
- }
339
+ ```bash
340
+ noah login
341
+ noah publish
287
342
  ```
288
343
 
344
+ Manifest entries can include `tags`, `downloads`, `rating`, `verified`, `dependsOn`, and `changelog`.
345
+
346
+ ---
347
+
289
348
  ## Development
290
349
 
291
350
  ```bash
292
351
  npm install
293
352
  npm run build # TypeScript + bundle registry → dist
294
353
  npm test
295
- npm run dev -- doctor
354
+ npm run dev -- bootstrap
296
355
  ```
297
356
 
298
- `npm run build` copies `manifest.json` plus `skills/`, `rules/`, `prompts/`, `mcp/`, and `presets/` into `dist/noah-registry/` so published installs never need GitHub access.
357
+ `npm run build` copies the registry into `dist/noah-registry/` so published installs never need GitHub access for official assets.
358
+
359
+ ---
360
+
361
+ ## Vision
362
+
363
+ > Noah Cursor isn't just a package installer.
364
+ >
365
+ > It is an intelligent developer experience platform that understands your project, recommends best practices, and prepares your AI coding assistant automatically.
366
+
367
+ The long-term vision is to become **the package manager for AI-assisted software development** — project-aware, workflow-focused, and zero-config for teams who ship with AI every day.
368
+
369
+ ---
299
370
 
300
371
  ## Contributing
301
372
 
302
- Ideas for Skills, Rules, or MCP configs? Open an issue or PR. The best assets are ones you already use on real projects — share them so other developers can install them in one command.
373
+ Ideas for Skills, Rules, or MCP configs? Open an issue or PR. The best assets are ones you already use on real projects.
303
374
 
304
- ## Feedback & requests
375
+ Noah is continuously improved; feedback and PRs shape what ships next.
305
376
 
306
- Have feedback, suggestions, or feature requests? I'd love to hear from you.
377
+ ## Feedback & requests
307
378
 
308
379
  📧 **Email:** [patrickpolicarpio08@gmail.com](mailto:patrickpolicarpio08@gmail.com)
309
380
 
310
- Whether it's a Skill you want added, a Rule for your stack, a bug report, or an idea to improve the CLI — send a note. Every message helps shape the product.
381
+ Whether it's a Skill you want added, a Rule for your stack, a bug report, or an idea to improve bootstrap — send a note.
311
382
 
312
383
  ## Support
313
384
 
314
- If Noah Cursor saves you time, consider buying me a coffee — it helps keep the CLI and registry maintained.
385
+ If Noah saves you time, consider buying me a coffee — it helps keep the CLI and registry maintained.
315
386
 
316
387
  <p align="center">
317
388
  <a href="https://www.buymeacoffee.com/klnaufr">
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4DzD"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6DzD"}
@@ -13,6 +13,7 @@ export function registerAddCommand(program) {
13
13
  .option("--preset <name>", "Install a preset (expands to included assets)")
14
14
  .option("--all", "Install all assets from the registry", false)
15
15
  .option("--ide <name>", `Target IDE (${IDE_IDS.join("|")})`, "cursor")
16
+ .option("--target <name>", "Alias for --ide")
16
17
  .option("--force", "Overwrite existing assets", false)
17
18
  .option("--dry-run", "Show what would be installed without writing files", false)
18
19
  .option("-y, --yes", "Skip confirmation prompts", false)
@@ -20,7 +21,7 @@ export function registerAddCommand(program) {
20
21
  .action(async (opts) => {
21
22
  const spinner = createSpinner("Loading registry…");
22
23
  try {
23
- const ide = parseIdeId(opts.ide);
24
+ const ide = parseIdeId(opts.target ?? opts.ide);
24
25
  spinner.start();
25
26
  const options = {
26
27
  skill: opts.skill,
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerAnalyzeCommand(program: Command): void;
3
+ //# sourceMappingURL=analyze.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4C7D"}
@@ -0,0 +1,48 @@
1
+ import chalk from "chalk";
2
+ import { createSpinner, handleCommandError, logTitle } from "../core/logger.js";
3
+ import { IDE_IDS, parseIdeId } from "../constants/index.js";
4
+ import { runAnalyze } from "../services/intelligence.js";
5
+ export function registerAnalyzeCommand(program) {
6
+ program
7
+ .command("analyze")
8
+ .description("Analyze the project for stack, health, and missing workflows")
9
+ .option("--ide <name>", `Target IDE (${IDE_IDS.join("|")})`, "cursor")
10
+ .option("--target <name>", "Alias for --ide")
11
+ .option("-v, --verbose", "Verbose output", false)
12
+ .action(async (opts) => {
13
+ const spinner = createSpinner("Analyzing…");
14
+ try {
15
+ const ide = parseIdeId(opts.target ?? opts.ide);
16
+ spinner.start();
17
+ const analysis = await runAnalyze(ide, opts.verbose);
18
+ spinner.stop();
19
+ logTitle("Stack");
20
+ console.log(` Frameworks: ${analysis.stack.frameworks.join(", ") || "—"}`);
21
+ console.log(` Languages: ${analysis.stack.languages.join(", ") || "—"}`);
22
+ console.log(` Tools: ${analysis.stack.tools.join(", ") || "—"}`);
23
+ logTitle("Health");
24
+ const h = analysis.health;
25
+ console.log(` Architecture ${chalk.bold(h.architecture)}`);
26
+ console.log(` Security ${chalk.bold(h.security)}`);
27
+ console.log(` Documentation ${chalk.bold(h.documentation)}`);
28
+ console.log(` Testing ${chalk.bold(h.testing)}`);
29
+ console.log(` Overall ${chalk.bold(h.overall)} (${Math.round(h.overall * 10)}%)`);
30
+ if (analysis.missing.length) {
31
+ logTitle("Missing");
32
+ for (const m of analysis.missing)
33
+ console.log(` • ${m}`);
34
+ }
35
+ if (analysis.recommendations.length) {
36
+ logTitle("Suggested installs");
37
+ for (const r of analysis.recommendations) {
38
+ console.log(` ${chalk.cyan(r.type)}/${chalk.bold(r.id)}`);
39
+ }
40
+ }
41
+ }
42
+ catch (error) {
43
+ spinner.stop();
44
+ handleCommandError(error, opts.verbose);
45
+ }
46
+ });
47
+ }
48
+ //# sourceMappingURL=analyze.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerAuthCommands(program: Command): void;
3
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2D3D"}