protovibe 1.1.5 → 1.1.7
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.
- package/README.md +146 -112
- package/dist/index.mjs +8 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
> Vibecode your prototypes.
|
|
4
4
|
|
|
5
|
-
ProtoVibe is a CLI launchpad built on top of [Claude Code](https://claude.ai/code). It gives you a **structured, guided workflow** for turning a rough idea into a fully scoped, spec'd, and initialized project — before a single line of code is written.
|
|
5
|
+
ProtoVibe is a globally installable CLI launchpad built on top of [Claude Code](https://claude.ai/code). It gives you a **structured, guided workflow** for turning a rough idea into a fully scoped, spec'd, and initialized project — before a single line of code is written.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
It makes **zero AI calls itself**. All intelligence comes from Claude Code, which ProtoVibe launches and drives through a 7-stage workflow prompt.
|
|
7
|
+
It makes **zero AI calls itself**. All intelligence comes from Claude Code, which ProtoVibe launches and drives through a 7-stage workflow. ProtoVibe also **auto-updates itself** every time you run it — you never need to reinstall manually.
|
|
10
8
|
|
|
11
9
|
---
|
|
12
10
|
|
|
@@ -28,7 +26,7 @@ Before installing ProtoVibe, make sure you have:
|
|
|
28
26
|
```bash
|
|
29
27
|
npm install -g @anthropic-ai/claude-code
|
|
30
28
|
```
|
|
31
|
-
Then run `claude` once and log in. ProtoVibe
|
|
29
|
+
Then run `claude` once and log in. ProtoVibe checks your credentials automatically.
|
|
32
30
|
|
|
33
31
|
---
|
|
34
32
|
|
|
@@ -38,202 +36,238 @@ Before installing ProtoVibe, make sure you have:
|
|
|
38
36
|
npm install -g protovibe
|
|
39
37
|
```
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
protovibe --version
|
|
45
|
-
```
|
|
39
|
+
ProtoVibe checks for newer versions on every run and updates itself automatically. You only ever need to install it once.
|
|
46
40
|
|
|
47
41
|
---
|
|
48
42
|
|
|
49
43
|
## How to use it
|
|
50
44
|
|
|
51
|
-
Simply run:
|
|
52
|
-
|
|
53
45
|
```bash
|
|
54
46
|
protovibe
|
|
55
47
|
```
|
|
56
48
|
|
|
57
|
-
|
|
49
|
+
The boot screen renders instantly. Auth is verified automatically. Then you choose your mode:
|
|
58
50
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
51
|
+
```
|
|
52
|
+
◆ What would you like to do?
|
|
53
|
+
│ ● Start a new project
|
|
54
|
+
│ ○ Continue with an existing project
|
|
55
|
+
```
|
|
63
56
|
|
|
64
57
|
---
|
|
65
58
|
|
|
66
|
-
##
|
|
67
|
-
|
|
68
|
-
When you run `protovibe`, you'll see this boot screen instantly:
|
|
59
|
+
## Path A — New project
|
|
69
60
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
╚██╗ ██╔╝██║██╔══██╗██╔══╝ ██╔═══╝ ██╔══██╗██║ ██║
|
|
75
|
-
╚████╔╝ ██║██████╔╝███████╗██║ ██║ ██║╚██████╔╝
|
|
76
|
-
╚═══╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝
|
|
77
|
-
```
|
|
78
|
-
*(rendered in a purple → blue gradient in your terminal)*
|
|
61
|
+
1. **Enter a project name** — letters, numbers, hyphens, underscores only
|
|
62
|
+
2. **Browse to a parent directory** — interactive folder browser starting from your home directory
|
|
63
|
+
3. ProtoVibe creates the project folder and writes the workflow files into it
|
|
64
|
+
4. A launch prompt appears:
|
|
79
65
|
|
|
80
66
|
```
|
|
81
67
|
╭──────────────────────────────────────────╮
|
|
82
|
-
│
|
|
83
|
-
│
|
|
84
|
-
│
|
|
85
|
-
|
|
86
|
-
│
|
|
68
|
+
│ │
|
|
69
|
+
│ Claude Code is loading your project. │
|
|
70
|
+
│ │
|
|
71
|
+
│ Type "Hello" or "What's up?" to begin. │
|
|
72
|
+
│ │
|
|
87
73
|
╰──────────────────────────────────────────╯
|
|
88
74
|
```
|
|
89
75
|
|
|
90
|
-
|
|
76
|
+
5. Claude Code opens. Type anything — the ProtoVibe workflow starts immediately.
|
|
91
77
|
|
|
92
|
-
|
|
78
|
+
### If the project name already exists
|
|
93
79
|
|
|
94
80
|
```
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
81
|
+
✗ A project named 'my-app' already exists at this location.
|
|
82
|
+
◆ What would you like to do?
|
|
83
|
+
│ ● Choose a different name for my new project
|
|
84
|
+
│ ○ Continue with the existing project
|
|
85
|
+
```
|
|
98
86
|
|
|
99
|
-
|
|
87
|
+
- **Choose a different name** — re-enter the name, same folder stays selected
|
|
88
|
+
- **Continue with the existing project** — ProtoVibe writes the workflow files to the existing folder, Claude opens and starts the workflow fresh
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Path B — Existing project
|
|
93
|
+
|
|
94
|
+
1. **Enter the full path** to your existing project folder (supports `~` shorthand)
|
|
95
|
+
2. ProtoVibe writes an `/analyse` command into the project
|
|
96
|
+
3. Claude Code opens, silently reads all files, and presents a structured summary:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Project: my-app
|
|
100
|
+
What it does: A client portal for agencies to manage deliverables and feedback.
|
|
101
|
+
Tech Stack: Next.js, TypeScript, Supabase, Tailwind CSS
|
|
102
|
+
Key Features:
|
|
103
|
+
- Client login and dashboard
|
|
104
|
+
- File upload and approval workflow
|
|
105
|
+
- Comment threads per deliverable
|
|
106
|
+
- Email notifications on status change
|
|
107
|
+
Project Structure: App router in src/app/, shared components in src/components/,
|
|
108
|
+
Supabase client in src/lib/. API routes handle upload and notification logic.
|
|
109
|
+
Current State: Partially built — auth and dashboard complete, approval flow in progress.
|
|
100
110
|
```
|
|
101
111
|
|
|
102
|
-
Claude
|
|
112
|
+
4. Claude says: *"I've analysed your project. I'm ready to help — what would you like to work on?"*
|
|
113
|
+
5. You drive from here. No workflow constraints — Claude works normally.
|
|
103
114
|
|
|
104
115
|
---
|
|
105
116
|
|
|
106
|
-
## The 7-Stage Workflow
|
|
117
|
+
## The 7-Stage Workflow (new project path)
|
|
107
118
|
|
|
108
|
-
|
|
119
|
+
After Claude opens, type anything. Claude's first response is always:
|
|
109
120
|
|
|
110
|
-
|
|
111
|
-
|
|
121
|
+
```
|
|
122
|
+
Welcome to ProtoVibe. What would you like to do?
|
|
112
123
|
|
|
113
|
-
|
|
114
|
-
|
|
124
|
+
1. Build from scratch — start a new project
|
|
125
|
+
2. Work on an existing project — analyse and enhance an existing codebase
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Choose **1** to begin:
|
|
115
129
|
|
|
116
130
|
### Stage 1 — Idea Capture
|
|
117
131
|
Claude asks: *"Describe the idea for your project."*
|
|
118
|
-
|
|
132
|
+
Speak naturally. No format required.
|
|
119
133
|
|
|
120
134
|
### Stage 2 — Deep Requirements Probing
|
|
121
|
-
Claude asks
|
|
122
|
-
|
|
123
|
-
|
|
135
|
+
Claude asks grouped questions covering:
|
|
136
|
+
- Who are the target users?
|
|
137
|
+
- What does each feature do exactly?
|
|
138
|
+
- Step-by-step user flow
|
|
139
|
+
- Platform (web, mobile, desktop, CLI)?
|
|
140
|
+
- Authentication — required? What type?
|
|
141
|
+
- Data — what's created, stored, deleted? Real-time?
|
|
142
|
+
- Third-party integrations?
|
|
143
|
+
- Constraints — performance, offline, accessibility, timeline?
|
|
144
|
+
|
|
145
|
+
Claude keeps probing until everything is clear. Then it presents a full structured summary and asks you to confirm before moving on.
|
|
124
146
|
|
|
125
147
|
### Stage 3 — Architecture Options
|
|
126
148
|
Claude proposes **3 distinct architectural approaches**, each with:
|
|
127
|
-
-
|
|
149
|
+
- Full tech stack (frontend, backend, database, auth, hosting)
|
|
128
150
|
- How the system works end-to-end
|
|
129
151
|
- Tradeoffs — what it's best for and what it sacrifices
|
|
130
|
-
- One option marked
|
|
152
|
+
- One option marked **Recommended** with a specific reason
|
|
131
153
|
|
|
132
154
|
### Stage 4 — Option Confirmation
|
|
133
155
|
Pick one of the 3 options, or describe your own. If you go custom, Claude evaluates it against your requirements and flags any risks before proceeding.
|
|
134
156
|
|
|
135
|
-
### Stage 5 — Specs File
|
|
136
|
-
Claude writes `specs.md` in your project
|
|
137
|
-
-
|
|
138
|
-
- User flow (step-by-step)
|
|
157
|
+
### Stage 5 — Specs File
|
|
158
|
+
Claude asks for confirmation, then writes `specs.md` in your project root containing:
|
|
159
|
+
- App overview and target audience
|
|
139
160
|
- Feature list with priority labels: **P0** (MVP must-have), **P1** (important), **P2** (nice to have)
|
|
140
|
-
-
|
|
161
|
+
- Complete user flow — every journey, primary and alternate paths
|
|
162
|
+
- Tech stack with one-line justification per technology
|
|
163
|
+
- Data model — entities, fields, relationships
|
|
141
164
|
- Integration notes
|
|
142
165
|
- Constraints and non-functional requirements
|
|
143
166
|
|
|
144
167
|
### Stage 6 — Initialization
|
|
145
|
-
Claude silently replaces the placeholder `CLAUDE.md` with a project-specific one
|
|
168
|
+
Claude silently replaces the placeholder `CLAUDE.md` with a project-specific one generated by `/init`, so it carries full project context going forward. Nothing is asked — it just happens.
|
|
146
169
|
|
|
147
170
|
### Stage 7 — Handoff
|
|
148
|
-
|
|
149
|
-
|
|
171
|
+
Claude says: *"Your project is fully scoped and ready to build. Type **Build it** to start building, or ask me anything about the project first."*
|
|
172
|
+
|
|
173
|
+
From here, Claude Code builds your project according to `specs.md`, starting with P0 features.
|
|
150
174
|
|
|
151
175
|
---
|
|
152
176
|
|
|
153
177
|
## Commands
|
|
154
178
|
|
|
155
|
-
|
|
156
|
-
Exit the ProtoVibe workflow at any point. Run this inside Claude Code at any stage if you want to skip ahead and work directly.
|
|
179
|
+
These are available at any time inside Claude Code during or after the workflow:
|
|
157
180
|
|
|
158
|
-
|
|
181
|
+
| Command | What it does |
|
|
182
|
+
|---|---|
|
|
183
|
+
| `/takeover` | Exit the ProtoVibe workflow. Claude summarises everything captured so far (idea, requirements, architecture, files created) and then works normally with no constraints. |
|
|
184
|
+
| `/summarise` | Plain-language summary of progress — what's been decided, what's been done, and what comes next. Capped at 10 bullets. |
|
|
185
|
+
| `/protovibe` | Restart the workflow from Stage 0. |
|
|
159
186
|
|
|
160
187
|
---
|
|
161
188
|
|
|
162
|
-
##
|
|
189
|
+
## Auto-update
|
|
163
190
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
└── commands/
|
|
169
|
-
├── protovibe.md # The full 7-stage workflow instructions
|
|
170
|
-
└── takeover.md # The /takeover escape hatch definition
|
|
171
|
-
```
|
|
191
|
+
Every time you run `protovibe`, it silently checks the npm registry. If a newer version is available, it:
|
|
192
|
+
1. Prints: `Updating ProtoVibe x.x.x → x.x.x...`
|
|
193
|
+
2. Installs the latest version globally
|
|
194
|
+
3. Re-launches itself automatically
|
|
172
195
|
|
|
173
|
-
|
|
174
|
-
After Stage 5, `specs.md` is added to the root.
|
|
196
|
+
If you're offline, it skips the check and boots normally.
|
|
175
197
|
|
|
176
198
|
---
|
|
177
199
|
|
|
178
|
-
##
|
|
200
|
+
## What gets written to your project
|
|
179
201
|
|
|
202
|
+
### New project
|
|
203
|
+
```
|
|
204
|
+
<your-project>/
|
|
205
|
+
├── CLAUDE.md # Instructs Claude to run the ProtoVibe workflow on first message
|
|
206
|
+
└── .claude/
|
|
207
|
+
└── commands/
|
|
208
|
+
├── protovibe.md # Full 7-stage workflow definition
|
|
209
|
+
├── takeover.md # /takeover command definition
|
|
210
|
+
└── summarise.md # /summarise command definition
|
|
180
211
|
```
|
|
181
|
-
$ protovibe
|
|
182
|
-
|
|
183
|
-
# Boot screen renders instantly
|
|
184
|
-
|
|
185
|
-
✔ Claude Code detected
|
|
186
|
-
? Project name › client-portal
|
|
187
|
-
? Parent directory › ~/projects
|
|
188
|
-
|
|
189
|
-
Launching Claude Code...
|
|
190
|
-
|
|
191
|
-
────────────────────────────────────────
|
|
192
|
-
Claude Code v1.x — client-portal
|
|
193
|
-
|
|
194
|
-
Welcome to ProtoVibe. What would you like to do?
|
|
195
|
-
1. Build from scratch
|
|
196
|
-
2. Work on an existing project
|
|
197
|
-
|
|
198
|
-
> 1
|
|
199
212
|
|
|
200
|
-
|
|
213
|
+
After Stage 5: `specs.md` is added to the root.
|
|
214
|
+
After Stage 6: `CLAUDE.md` is replaced with a project-specific version by `/init`.
|
|
201
215
|
|
|
202
|
-
|
|
203
|
-
|
|
216
|
+
### Existing project
|
|
217
|
+
```
|
|
218
|
+
<your-project>/
|
|
219
|
+
├── CLAUDE.md # Instructs Claude to run /analyse on startup
|
|
220
|
+
└── .claude/
|
|
221
|
+
└── commands/
|
|
222
|
+
└── analyse.md # /analyse command — reads all files and presents a summary
|
|
223
|
+
```
|
|
204
224
|
|
|
205
|
-
|
|
225
|
+
---
|
|
206
226
|
|
|
207
|
-
|
|
227
|
+
## What it looks like
|
|
208
228
|
|
|
209
|
-
|
|
210
|
-
mark a task complete, something else?
|
|
229
|
+
Boot screen (renders in under 100ms):
|
|
211
230
|
|
|
212
|
-
|
|
213
|
-
|
|
231
|
+
```
|
|
232
|
+
██╗ ██╗██╗██████╗ ███████╗██████╗ ██████╗ ██████╗
|
|
233
|
+
██║ ██║██║██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔═══██╗
|
|
234
|
+
██║ ██║██║██████╔╝█████╗ ██████╔╝██████╔╝██║ ██║
|
|
235
|
+
╚██╗ ██╔╝██║██╔══██╗██╔══╝ ██╔═══╝ ██╔══██╗██║ ██║
|
|
236
|
+
╚████╔╝ ██║██████╔╝███████╗██║ ██║ ██║╚██████╔╝
|
|
237
|
+
╚═══╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝
|
|
238
|
+
```
|
|
239
|
+
*(rendered in a purple → blue gradient)*
|
|
214
240
|
|
|
215
|
-
|
|
241
|
+
```
|
|
242
|
+
╭──────────────────────────────────────────╮
|
|
243
|
+
│ version 1.1.x │
|
|
244
|
+
│ by razorgojo │
|
|
245
|
+
│ powered by Claude Code │
|
|
246
|
+
├──────────────────────────────────────────┤
|
|
247
|
+
│ Vibecode your prototypes. │
|
|
248
|
+
├──────────────────────────────────────────┤
|
|
249
|
+
│ commands │
|
|
250
|
+
│ /exit — quit ProtoVibe at any time │
|
|
251
|
+
╰──────────────────────────────────────────╯
|
|
216
252
|
```
|
|
217
253
|
|
|
218
|
-
|
|
254
|
+
The logo automatically switches to a compact version on terminals narrower than 90 columns.
|
|
219
255
|
|
|
220
256
|
---
|
|
221
257
|
|
|
222
258
|
## Development
|
|
223
259
|
|
|
224
260
|
```bash
|
|
225
|
-
git clone https://github.com/SomSamantray/VibePro
|
|
226
|
-
cd VibePro
|
|
261
|
+
git clone https://github.com/SomSamantray/VibePro-CLI.git
|
|
262
|
+
cd VibePro-CLI
|
|
227
263
|
npm install
|
|
228
264
|
npm run build
|
|
229
|
-
node dist/index.mjs
|
|
230
|
-
npm install -g .
|
|
265
|
+
node dist/index.mjs # run locally without global install
|
|
266
|
+
npm install -g . # install globally to test the protovibe command
|
|
231
267
|
```
|
|
232
268
|
|
|
233
|
-
### Scripts
|
|
234
|
-
|
|
235
269
|
| Command | Description |
|
|
236
|
-
|
|
270
|
+
|---|---|
|
|
237
271
|
| `npm run build` | Compile TypeScript → `dist/` via tsup |
|
|
238
272
|
| `npm run dev` | Watch mode — rebuilds on every file change |
|
|
239
273
|
|
package/dist/index.mjs
CHANGED
|
@@ -637,10 +637,14 @@ function App({ terminalWidth, version }) {
|
|
|
637
637
|
process.stdout.write("\nLogin cancelled. Run protovibe again when ready.\n");
|
|
638
638
|
process.exit(0);
|
|
639
639
|
}
|
|
640
|
-
process.stdout.write(
|
|
641
|
-
|
|
642
|
-
)
|
|
643
|
-
|
|
640
|
+
process.stdout.write("\n Opening browser to log you in to Claude Code...\n\n");
|
|
641
|
+
const loginResult = spawnSync("claude", ["auth", "login"], { stdio: "inherit", shell: true });
|
|
642
|
+
if (loginResult.status !== 0 && loginResult.status !== null) {
|
|
643
|
+
process.stdout.write(
|
|
644
|
+
"\n Opening Claude Code to log you in.\n Once logged in, type /exit to return to ProtoVibe.\n\n"
|
|
645
|
+
);
|
|
646
|
+
spawnSync("claude", [], { stdio: "inherit", shell: true });
|
|
647
|
+
}
|
|
644
648
|
if (!isAuthenticated()) {
|
|
645
649
|
process.stderr.write("\n\u2717 Not logged in. Run protovibe again after logging in.\n");
|
|
646
650
|
process.exit(1);
|