vibecheck-ai 1.1.1 → 1.2.0
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 +367 -204
- package/dist/index.js +38752 -20674
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="https://vibecheckai.dev/logo.png" alt="VibeCheck Logo" width="
|
|
2
|
+
<img src="https://vibecheckai.dev/logo.png" alt="VibeCheck Logo" width="100" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
<h1 align="center">VibeCheck
|
|
5
|
+
<h1 align="center">VibeCheck</h1>
|
|
6
|
+
|
|
7
|
+
<h3 align="center">
|
|
8
|
+
<strong>Stop AI Hallucinations. Ship Real Features.</strong>
|
|
9
|
+
</h3>
|
|
6
10
|
|
|
7
11
|
<p align="center">
|
|
8
|
-
|
|
12
|
+
The security layer for AI-assisted development.<br/>
|
|
13
|
+
Catches fake features, phantom APIs, and silent failures before they hit production.
|
|
9
14
|
</p>
|
|
10
15
|
|
|
11
16
|
<p align="center">
|
|
12
|
-
<a href="https://www.npmjs.com/package/vibecheck-ai"><img src="https://img.shields.io/npm/v/vibecheck-ai.svg?style=flat-square&color=
|
|
13
|
-
<a href="https://www.npmjs.com/package/vibecheck-ai"><img src="https://img.shields.io/npm/dm/vibecheck-ai.svg?style=flat-square&color=
|
|
17
|
+
<a href="https://www.npmjs.com/package/vibecheck-ai"><img src="https://img.shields.io/npm/v/vibecheck-ai.svg?style=flat-square&color=E040FB" alt="npm version" /></a>
|
|
18
|
+
<a href="https://www.npmjs.com/package/vibecheck-ai"><img src="https://img.shields.io/npm/dm/vibecheck-ai.svg?style=flat-square&color=00E676" alt="npm downloads" /></a>
|
|
19
|
+
<a href="https://github.com/vibecheckai/vibecheck"><img src="https://img.shields.io/github/stars/vibecheckai/vibecheck?style=flat-square&color=FFD54F" alt="github stars" /></a>
|
|
14
20
|
<a href="https://github.com/vibecheckai/vibecheck/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="license" /></a>
|
|
15
|
-
<a href="https://vibecheckai.dev/discord"><img src="https://img.shields.io/discord/1234567890?style=flat-square&color=5865F2&label=discord" alt="discord" /></a>
|
|
16
21
|
</p>
|
|
17
22
|
|
|
18
23
|
<p align="center">
|
|
19
24
|
<a href="https://vibecheckai.dev">Website</a> •
|
|
20
|
-
<a href="https://vibecheckai.dev/docs">
|
|
25
|
+
<a href="https://vibecheckai.dev/docs">Docs</a> •
|
|
21
26
|
<a href="https://vibecheckai.dev/discord">Discord</a> •
|
|
22
27
|
<a href="https://twitter.com/vibecheckai">Twitter</a>
|
|
23
28
|
</p>
|
|
@@ -26,249 +31,284 @@
|
|
|
26
31
|
|
|
27
32
|
## The Problem
|
|
28
33
|
|
|
29
|
-
AI coding assistants are
|
|
34
|
+
AI coding assistants are incredible. They're also **professional liars**.
|
|
30
35
|
|
|
31
|
-
|
|
36
|
+
```typescript
|
|
37
|
+
// Cursor/Copilot generated this. TypeScript happy. Linter passes. Code review: LGTM.
|
|
32
38
|
|
|
33
|
-
|
|
39
|
+
async function getUser(id: string): Promise<User> {
|
|
40
|
+
return await fetch(`/api/v2/users/${id}`); // ❌ This endpoint doesn't exist
|
|
41
|
+
}
|
|
34
42
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
│ └───────────┘ └───────────┘ └───────────┘ │
|
|
47
|
-
└─────────────────────────────────────────────────────────────┘
|
|
48
|
-
│
|
|
49
|
-
▼
|
|
50
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
51
|
-
│ AI Assistant (Cursor, Copilot, etc.) │
|
|
52
|
-
│ │
|
|
53
|
-
│ "Based on the truthpack, I can see your API uses │
|
|
54
|
-
│ JWT auth with these exact routes..." │
|
|
55
|
-
└─────────────────────────────────────────────────────────────┘
|
|
43
|
+
async function chargeCustomer(order: Order) {
|
|
44
|
+
try {
|
|
45
|
+
await stripe.charges.create(order); // ❌ Deprecated API since Stripe v3
|
|
46
|
+
} catch (e) {
|
|
47
|
+
// TODO: handle this later // ❌ Payment failures silently swallowed
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function getDashboardStats(): DashboardStats {
|
|
52
|
+
return { users: 1247, revenue: 84350 }; // ❌ Hardcoded. This is fake data.
|
|
53
|
+
}
|
|
56
54
|
```
|
|
57
55
|
|
|
58
|
-
|
|
56
|
+
This code **compiles**. It **passes CI**. It gets **deployed**.
|
|
59
57
|
|
|
60
|
-
|
|
58
|
+
Then your customers discover the payments don't work.
|
|
61
59
|
|
|
62
|
-
|
|
63
|
-
# Install globally
|
|
64
|
-
npm install -g vibecheck-ai
|
|
60
|
+
---
|
|
65
61
|
|
|
66
|
-
|
|
67
|
-
npx vibecheck-ai
|
|
68
|
-
```
|
|
62
|
+
## The Solution
|
|
69
63
|
|
|
70
|
-
|
|
64
|
+
**VibeCheck catches what linters can't.**
|
|
71
65
|
|
|
72
66
|
```bash
|
|
73
|
-
|
|
74
|
-
cd your-project
|
|
67
|
+
$ vibecheck ship
|
|
75
68
|
|
|
76
|
-
|
|
77
|
-
vibecheck init
|
|
78
|
-
```
|
|
69
|
+
🔍 Running pre-ship checks...
|
|
79
70
|
|
|
80
|
-
|
|
71
|
+
⛔ FAKE FEATURE: src/api/users.ts:4
|
|
72
|
+
Endpoint /api/v2/users/{id} does not exist in your routes
|
|
73
|
+
└─ AI generated a plausible URL that will 404 at runtime
|
|
81
74
|
|
|
82
|
-
|
|
75
|
+
⚠️ DEPRECATED API: src/payments.ts:8
|
|
76
|
+
stripe.charges.create() was deprecated in Stripe SDK v3
|
|
77
|
+
└─ Use stripe.paymentIntents.create() instead
|
|
83
78
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
79
|
+
⛔ SILENT FAILURE: src/payments.ts:11
|
|
80
|
+
Empty catch block in payment flow
|
|
81
|
+
└─ chargeCustomer() errors will be swallowed silently
|
|
87
82
|
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
⚠️ MOCK DATA: src/dashboard.ts:16
|
|
84
|
+
getDashboardStats() returns hardcoded values
|
|
85
|
+
└─ This will never reflect actual database data
|
|
90
86
|
|
|
91
|
-
|
|
92
|
-
vibecheck analyze
|
|
87
|
+
Ship Status: BLOCKED (4 issues found)
|
|
93
88
|
```
|
|
94
89
|
|
|
95
|
-
|
|
90
|
+
**Before it ships. Not after the Slack message at 3am.**
|
|
96
91
|
|
|
97
|
-
|
|
98
|
-
|---------|-------------|
|
|
99
|
-
| `vibecheck init` | Initialize VibeCheck in your project |
|
|
100
|
-
| `vibecheck scan` | Scan codebase and generate truthpack |
|
|
101
|
-
| `vibecheck check` | Run hallucination and drift detection |
|
|
102
|
-
| `vibecheck validate [file]` | Validate files against truthpack |
|
|
103
|
-
| `vibecheck ship` | Pre-deployment security checks with auto-fix |
|
|
104
|
-
| `vibecheck fix` | Apply auto-fixes for detected issues |
|
|
105
|
-
| `vibecheck report` | Generate enterprise-grade HTML/PDF reports |
|
|
106
|
-
| `vibecheck doctor` | Validate system dependencies and configuration |
|
|
107
|
-
| `vibecheck config` | View or edit configuration |
|
|
108
|
-
| `vibecheck watch` | Watch for changes and validate continuously |
|
|
109
|
-
| `vibecheck menu` | Interactive menu for all features |
|
|
110
|
-
|
|
111
|
-
### Ship Command (Pre-deployment Checks)
|
|
92
|
+
---
|
|
112
93
|
|
|
113
|
-
|
|
94
|
+
## Quick Start
|
|
114
95
|
|
|
115
96
|
```bash
|
|
116
|
-
#
|
|
117
|
-
vibecheck
|
|
97
|
+
# Install globally
|
|
98
|
+
npm install -g vibecheck-ai
|
|
118
99
|
|
|
119
|
-
#
|
|
120
|
-
vibecheck
|
|
100
|
+
# Or run with npx (no install)
|
|
101
|
+
npx vibecheck-ai
|
|
121
102
|
|
|
122
|
-
#
|
|
123
|
-
|
|
103
|
+
# Initialize in your project
|
|
104
|
+
cd your-project
|
|
105
|
+
vibecheck init
|
|
106
|
+
|
|
107
|
+
# Run pre-ship checks
|
|
108
|
+
vibecheck ship
|
|
124
109
|
```
|
|
125
110
|
|
|
126
|
-
|
|
127
|
-
- **Ultimate Scanner** — 80+ security patterns (credentials, SQLi, XSS, SSRF, etc.)
|
|
128
|
-
- **Truthpack validation** — Routes, env vars, auth patterns
|
|
129
|
-
- **Drift detection** — Changes from verified baseline
|
|
130
|
-
- **Secrets scanning** — API keys, tokens, passwords
|
|
131
|
-
- **Code quality** — Dead code, TODO comments, debug statements
|
|
111
|
+
That's it. Issues appear immediately.
|
|
132
112
|
|
|
133
|
-
|
|
113
|
+
---
|
|
134
114
|
|
|
135
|
-
|
|
115
|
+
## Features
|
|
136
116
|
|
|
137
|
-
|
|
117
|
+
### 🚀 Ship Command — Pre-Deployment Security Gate
|
|
138
118
|
|
|
139
|
-
|
|
140
|
-
- **Environment** — Required env vars with types and defaults
|
|
141
|
-
- **Authentication** — Auth strategies and protected routes
|
|
142
|
-
- **Database** — Schema definitions and relationships
|
|
143
|
-
- **Dependencies** — Package versions and compatibility
|
|
119
|
+
Run 10+ checks before every deployment:
|
|
144
120
|
|
|
145
|
-
|
|
121
|
+
```bash
|
|
122
|
+
vibecheck ship # Full pre-deployment analysis
|
|
123
|
+
vibecheck ship --fix # Auto-fix issues automatically
|
|
124
|
+
vibecheck ship --force # Ship anyway (not recommended)
|
|
125
|
+
```
|
|
146
126
|
|
|
147
|
-
|
|
127
|
+
**Checks include:**
|
|
128
|
+
- Truthpack validation (routes, env vars, auth)
|
|
129
|
+
- Hallucination detection (fake APIs, deprecated methods)
|
|
130
|
+
- Secret scanning (API keys, tokens, credentials)
|
|
131
|
+
- Silent failure detection (empty catches, swallowed errors)
|
|
132
|
+
- Mock data finder (hardcoded values in production code)
|
|
133
|
+
- Drift detection (changes from verified baseline)
|
|
134
|
+
- 80+ security patterns
|
|
148
135
|
|
|
149
|
-
|
|
150
|
-
- Non-existent environment variables
|
|
151
|
-
- Outdated package versions
|
|
152
|
-
- Incorrect type assumptions
|
|
153
|
-
- Missing error handling
|
|
136
|
+
---
|
|
154
137
|
|
|
155
|
-
###
|
|
138
|
+
### 🎯 Reality Mode — Actually Run Your Code
|
|
156
139
|
|
|
157
|
-
|
|
140
|
+
Static analysis can't catch everything. Reality Mode uses Playwright to **actually execute your code**:
|
|
158
141
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
142
|
+
```bash
|
|
143
|
+
vibecheck reality run # Run scenarios and generate proof
|
|
144
|
+
vibecheck reality report # View detailed proof report
|
|
145
|
+
```
|
|
163
146
|
|
|
164
|
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
-
|
|
168
|
-
-
|
|
147
|
+
- Spins up real test environments
|
|
148
|
+
- Makes actual API calls
|
|
149
|
+
- Validates responses match expectations
|
|
150
|
+
- Catches lies that static analysis misses
|
|
151
|
+
- Generates cryptographic proof bundles
|
|
169
152
|
|
|
170
|
-
|
|
171
|
-
- Fake npm packages
|
|
172
|
-
- Deprecated APIs (React 18, moment.js)
|
|
173
|
-
- Placeholder URLs (example.com, localhost)
|
|
174
|
-
- Made-up methods
|
|
153
|
+
---
|
|
175
154
|
|
|
176
|
-
|
|
177
|
-
- Next.js server actions, API route auth
|
|
178
|
-
- React hooks issues, setState in render
|
|
179
|
-
- Express without Helmet, trust-proxy issues
|
|
155
|
+
### 🔥 Roast Mode — Brutally Honest Code Review
|
|
180
156
|
|
|
181
|
-
|
|
157
|
+
When you need tough love:
|
|
182
158
|
|
|
183
|
-
|
|
159
|
+
```bash
|
|
160
|
+
vibecheck roast
|
|
161
|
+
```
|
|
184
162
|
|
|
185
|
-
```typescript
|
|
186
|
-
// vibecheck.config.mjs
|
|
187
|
-
export default {
|
|
188
|
-
firewall: {
|
|
189
|
-
locked: ['src/core/**', '.env*'],
|
|
190
|
-
warn: ['package.json', 'tsconfig.json'],
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
163
|
```
|
|
164
|
+
🔥 ROAST RESULTS 🔥
|
|
165
|
+
|
|
166
|
+
TODO from the Jurassic period spotted. The dinosaurs are extinct,
|
|
167
|
+
but your technical debt lives on.
|
|
194
168
|
|
|
195
|
-
|
|
169
|
+
console.log('here') — Ah yes, the debugging strategy of champions
|
|
170
|
+
and interns.
|
|
196
171
|
|
|
197
|
-
|
|
172
|
+
'any' type? Congrats, you've invented JavaScript with extra steps.
|
|
198
173
|
|
|
174
|
+
Your function has 847 lines. That's not a function, that's a novel.
|
|
199
175
|
```
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
176
|
+
|
|
177
|
+
Pass the ship check first, and you unlock an easter egg. 🏆
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### 🛡️ Truthpack — Your Project's Source of Truth
|
|
182
|
+
|
|
183
|
+
VibeCheck extracts verified facts about your codebase:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
vibecheck scan # Generate truthpack
|
|
187
|
+
vibecheck validate file.ts # Validate against truthpack
|
|
212
188
|
```
|
|
213
189
|
|
|
214
|
-
|
|
190
|
+
**What gets extracted:**
|
|
191
|
+
- **Routes** — API endpoints with methods, paths, handlers
|
|
192
|
+
- **Environment** — Required env vars with types and defaults
|
|
193
|
+
- **Auth** — Authentication strategies and protected routes
|
|
194
|
+
- **Database** — Schema definitions and relationships
|
|
195
|
+
- **Dependencies** — Package versions and compatibility
|
|
215
196
|
|
|
216
|
-
|
|
197
|
+
AI assistants reference this to stay grounded in reality.
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
### 🔒 Code Firewall — Lock Critical Files
|
|
202
|
+
|
|
203
|
+
Protect sensitive files from AI modifications:
|
|
217
204
|
|
|
218
205
|
```javascript
|
|
219
|
-
|
|
206
|
+
// vibecheck.config.mjs
|
|
220
207
|
export default {
|
|
221
|
-
// Project info
|
|
222
|
-
project: {
|
|
223
|
-
name: 'my-app',
|
|
224
|
-
type: 'nextjs',
|
|
225
|
-
},
|
|
226
|
-
|
|
227
|
-
// What to analyze
|
|
228
|
-
include: ['src/**/*.ts', 'src/**/*.tsx'],
|
|
229
|
-
exclude: ['**/*.test.ts', '**/node_modules/**'],
|
|
230
|
-
|
|
231
|
-
// Hallucination detection sensitivity
|
|
232
|
-
analysis: {
|
|
233
|
-
strictness: 'standard', // 'relaxed' | 'standard' | 'paranoid'
|
|
234
|
-
checkDependencies: true,
|
|
235
|
-
checkEnvVars: true,
|
|
236
|
-
checkRoutes: true,
|
|
237
|
-
},
|
|
238
|
-
|
|
239
|
-
// File protection
|
|
240
208
|
firewall: {
|
|
241
|
-
locked: ['.env*', 'src/core/**'],
|
|
242
|
-
warn: ['package.json'],
|
|
243
|
-
}
|
|
209
|
+
locked: ['.env*', 'src/core/**', 'credentials.json'],
|
|
210
|
+
warn: ['package.json', 'tsconfig.json'],
|
|
211
|
+
}
|
|
244
212
|
};
|
|
245
213
|
```
|
|
246
214
|
|
|
247
|
-
|
|
215
|
+
---
|
|
248
216
|
|
|
249
|
-
###
|
|
217
|
+
### 📊 Enterprise Reports
|
|
250
218
|
|
|
251
|
-
|
|
219
|
+
Generate beautiful HTML/PDF reports for compliance:
|
|
252
220
|
|
|
253
221
|
```bash
|
|
254
|
-
|
|
222
|
+
vibecheck report # Generate HTML report
|
|
223
|
+
vibecheck report --pdf # Generate PDF report
|
|
224
|
+
vibecheck report --json # Machine-readable output
|
|
255
225
|
```
|
|
256
226
|
|
|
257
|
-
|
|
227
|
+
---
|
|
258
228
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
229
|
+
## All Commands
|
|
230
|
+
|
|
231
|
+
| Command | Description |
|
|
232
|
+
|---------|-------------|
|
|
233
|
+
| `vibecheck init` | Initialize VibeCheck in your project |
|
|
234
|
+
| `vibecheck scan` | Scan codebase and generate truthpack |
|
|
235
|
+
| `vibecheck ship` | **Pre-deployment security checks** |
|
|
236
|
+
| `vibecheck check` | Run hallucination detection |
|
|
237
|
+
| `vibecheck validate [file]` | Validate files against truthpack |
|
|
238
|
+
| `vibecheck reality run` | Run Reality Mode with proof generation |
|
|
239
|
+
| `vibecheck roast` | Get brutally honest code feedback |
|
|
240
|
+
| `vibecheck fix` | Apply auto-fixes for detected issues |
|
|
241
|
+
| `vibecheck report` | Generate enterprise-grade reports |
|
|
242
|
+
| `vibecheck watch` | Watch for changes continuously |
|
|
243
|
+
| `vibecheck doctor` | Validate system dependencies |
|
|
244
|
+
| `vibecheck config` | View or edit configuration |
|
|
268
245
|
|
|
269
|
-
|
|
246
|
+
---
|
|
270
247
|
|
|
271
|
-
|
|
248
|
+
## Security Scanner
|
|
249
|
+
|
|
250
|
+
Industry-leading detection with **80+ patterns**:
|
|
251
|
+
|
|
252
|
+
<details>
|
|
253
|
+
<summary><strong>🔑 Credentials (click to expand)</strong></summary>
|
|
254
|
+
|
|
255
|
+
- AWS Access Keys & Secrets
|
|
256
|
+
- GitHub Tokens (PAT, OAuth, App)
|
|
257
|
+
- Stripe API Keys (Live & Test)
|
|
258
|
+
- OpenAI & Anthropic API Keys
|
|
259
|
+
- Google Cloud Service Accounts
|
|
260
|
+
- Azure Connection Strings
|
|
261
|
+
- npm Tokens & Registry Auth
|
|
262
|
+
- Database Passwords & URIs
|
|
263
|
+
- JWT Secrets & Private Keys
|
|
264
|
+
- SendGrid, Twilio, Mailgun Keys
|
|
265
|
+
|
|
266
|
+
</details>
|
|
267
|
+
|
|
268
|
+
<details>
|
|
269
|
+
<summary><strong>🛡️ Security Vulnerabilities</strong></summary>
|
|
270
|
+
|
|
271
|
+
- SQL Injection patterns
|
|
272
|
+
- Cross-Site Scripting (XSS)
|
|
273
|
+
- Command Injection
|
|
274
|
+
- Server-Side Request Forgery (SSRF)
|
|
275
|
+
- Path Traversal attacks
|
|
276
|
+
- Open Redirect vulnerabilities
|
|
277
|
+
- CORS misconfigurations
|
|
278
|
+
- Missing Content Security Policy
|
|
279
|
+
- Insecure cookie settings
|
|
280
|
+
- Timing attack vectors
|
|
281
|
+
|
|
282
|
+
</details>
|
|
283
|
+
|
|
284
|
+
<details>
|
|
285
|
+
<summary><strong>🤖 AI Hallucinations</strong></summary>
|
|
286
|
+
|
|
287
|
+
- Non-existent npm packages
|
|
288
|
+
- Deprecated React 18 patterns
|
|
289
|
+
- Phantom API endpoints
|
|
290
|
+
- Fake environment variables
|
|
291
|
+
- Made-up method names
|
|
292
|
+
- Placeholder URLs (localhost, example.com)
|
|
293
|
+
- Outdated library versions
|
|
294
|
+
- Incorrect TypeScript types
|
|
295
|
+
|
|
296
|
+
</details>
|
|
297
|
+
|
|
298
|
+
<details>
|
|
299
|
+
<summary><strong>⚛️ Framework-Specific</strong></summary>
|
|
300
|
+
|
|
301
|
+
- Next.js server action issues
|
|
302
|
+
- React hooks violations
|
|
303
|
+
- Express without Helmet
|
|
304
|
+
- Missing auth middleware
|
|
305
|
+
- Unsafe trust-proxy settings
|
|
306
|
+
- setState in render patterns
|
|
307
|
+
- Missing error boundaries
|
|
308
|
+
|
|
309
|
+
</details>
|
|
310
|
+
|
|
311
|
+
---
|
|
272
312
|
|
|
273
313
|
## CI/CD Integration
|
|
274
314
|
|
|
@@ -287,13 +327,14 @@ jobs:
|
|
|
287
327
|
with:
|
|
288
328
|
node-version: '20'
|
|
289
329
|
- run: npm install -g vibecheck-ai
|
|
290
|
-
- run: vibecheck
|
|
330
|
+
- run: vibecheck ship --ci
|
|
331
|
+
env:
|
|
332
|
+
VIBECHECK_API_KEY: ${{ secrets.VIBECHECK_API_KEY }}
|
|
291
333
|
```
|
|
292
334
|
|
|
293
335
|
### Pre-commit Hook
|
|
294
336
|
|
|
295
|
-
```
|
|
296
|
-
# Add to your package.json
|
|
337
|
+
```json
|
|
297
338
|
{
|
|
298
339
|
"husky": {
|
|
299
340
|
"hooks": {
|
|
@@ -303,35 +344,155 @@ jobs:
|
|
|
303
344
|
}
|
|
304
345
|
```
|
|
305
346
|
|
|
347
|
+
### GitLab CI
|
|
348
|
+
|
|
349
|
+
```yaml
|
|
350
|
+
vibecheck:
|
|
351
|
+
stage: test
|
|
352
|
+
script:
|
|
353
|
+
- npm install -g vibecheck-ai
|
|
354
|
+
- vibecheck ship --ci
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## IDE Integration
|
|
360
|
+
|
|
361
|
+
### Cursor (MCP Server)
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
npm install -g @vibecheckai/mcp-server
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
```json
|
|
368
|
+
// .cursor/mcp.json
|
|
369
|
+
{
|
|
370
|
+
"mcpServers": {
|
|
371
|
+
"vibecheck": {
|
|
372
|
+
"command": "vibecheck-mcp"
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### VS Code Extension
|
|
379
|
+
|
|
380
|
+
Install the [VibeCheck Extension](https://marketplace.visualstudio.com/items?itemName=vibecheckai.vibecheck) for:
|
|
381
|
+
- Inline hallucination detection
|
|
382
|
+
- Truthpack browser
|
|
383
|
+
- Real-time firewall
|
|
384
|
+
- One-click auto-fix
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## Configuration
|
|
389
|
+
|
|
390
|
+
Create `vibecheck.config.mjs` in your project root:
|
|
391
|
+
|
|
392
|
+
```javascript
|
|
393
|
+
/** @type {import('vibecheck-ai').VibeCheckConfig} */
|
|
394
|
+
export default {
|
|
395
|
+
// Project metadata
|
|
396
|
+
project: {
|
|
397
|
+
name: 'my-app',
|
|
398
|
+
type: 'nextjs', // 'nextjs' | 'react' | 'express' | 'fastify' | 'generic'
|
|
399
|
+
},
|
|
400
|
+
|
|
401
|
+
// What to analyze
|
|
402
|
+
include: ['src/**/*.ts', 'src/**/*.tsx'],
|
|
403
|
+
exclude: ['**/*.test.ts', '**/node_modules/**'],
|
|
404
|
+
|
|
405
|
+
// Analysis settings
|
|
406
|
+
analysis: {
|
|
407
|
+
strictness: 'standard', // 'relaxed' | 'standard' | 'paranoid'
|
|
408
|
+
checkDependencies: true,
|
|
409
|
+
checkEnvVars: true,
|
|
410
|
+
checkRoutes: true,
|
|
411
|
+
},
|
|
412
|
+
|
|
413
|
+
// File protection
|
|
414
|
+
firewall: {
|
|
415
|
+
locked: ['.env*', 'src/core/**'],
|
|
416
|
+
warn: ['package.json'],
|
|
417
|
+
},
|
|
418
|
+
|
|
419
|
+
// Reality Mode
|
|
420
|
+
reality: {
|
|
421
|
+
scenarios: ['auth', 'api', 'forms'],
|
|
422
|
+
timeout: 30000,
|
|
423
|
+
},
|
|
424
|
+
};
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## Pricing
|
|
430
|
+
|
|
431
|
+
| Feature | Free | Pro ($29/mo) |
|
|
432
|
+
|---------|------|--------------|
|
|
433
|
+
| CLI Commands | ✅ All | ✅ All |
|
|
434
|
+
| Local Scans | ✅ Unlimited | ✅ Unlimited |
|
|
435
|
+
| Security Patterns | ✅ 80+ | ✅ 80+ |
|
|
436
|
+
| Projects | 3 | Unlimited |
|
|
437
|
+
| Scan History | 7 days | 90 days |
|
|
438
|
+
| Cloud Dashboard | ❌ | ✅ |
|
|
439
|
+
| Team Collaboration | ❌ | ✅ |
|
|
440
|
+
| API Access | ❌ | ✅ |
|
|
441
|
+
| Verified Badges | ❌ | ✅ |
|
|
442
|
+
| Priority Support | ❌ | ✅ |
|
|
443
|
+
|
|
444
|
+
**All CLI commands are free forever.** Pro unlocks cloud features and team collaboration.
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
306
448
|
## Why VibeCheck?
|
|
307
449
|
|
|
308
450
|
| Without VibeCheck | With VibeCheck |
|
|
309
451
|
|-------------------|----------------|
|
|
310
|
-
| AI invents
|
|
311
|
-
|
|
|
312
|
-
|
|
|
313
|
-
|
|
|
314
|
-
|
|
|
452
|
+
| AI invents fake APIs | References verified truthpack |
|
|
453
|
+
| Runtime 404 errors | Compile-time detection |
|
|
454
|
+
| Silent payment failures | Catches empty catch blocks |
|
|
455
|
+
| Mock data in production | Detects hardcoded values |
|
|
456
|
+
| Manual AI output review | Automated validation |
|
|
457
|
+
| "Works on my machine" | Consistent team truth |
|
|
315
458
|
|
|
316
|
-
|
|
459
|
+
---
|
|
317
460
|
|
|
318
|
-
|
|
319
|
-
|------|-------|----------|
|
|
320
|
-
| **Free** | $0 | CLI commands, local analysis, basic truthpack |
|
|
321
|
-
| **Pro** | $29/mo | Unlimited projects, CI/CD, team features, priority support |
|
|
322
|
-
| **Enterprise** | Custom | SSO, audit logs, custom policies, dedicated support |
|
|
461
|
+
## Requirements
|
|
323
462
|
|
|
324
|
-
|
|
463
|
+
- **Node.js** 18.0.0 or higher
|
|
464
|
+
- **OS**: Windows, macOS, Linux
|
|
465
|
+
|
|
466
|
+
**Optional for Reality Mode:**
|
|
467
|
+
- Playwright (auto-installed on first use)
|
|
468
|
+
|
|
469
|
+
---
|
|
325
470
|
|
|
326
471
|
## Community
|
|
327
472
|
|
|
328
|
-
- **Discord** — [Join our community](https://vibecheckai.dev/discord)
|
|
329
|
-
- **Twitter** — [@vibecheckai](https://twitter.com/vibecheckai)
|
|
330
|
-
- **GitHub** — [vibecheckai/vibecheck](https://github.com/vibecheckai/vibecheck)
|
|
473
|
+
- 💬 **Discord** — [Join our community](https://vibecheckai.dev/discord)
|
|
474
|
+
- 🐦 **Twitter** — [@vibecheckai](https://twitter.com/vibecheckai)
|
|
475
|
+
- 📦 **GitHub** — [vibecheckai/vibecheck](https://github.com/vibecheckai/vibecheck)
|
|
476
|
+
- 📖 **Docs** — [vibecheckai.dev/docs](https://vibecheckai.dev/docs)
|
|
477
|
+
|
|
478
|
+
---
|
|
331
479
|
|
|
332
480
|
## Contributing
|
|
333
481
|
|
|
334
|
-
We welcome contributions! See [CONTRIBUTING.md](https://github.com/vibecheckai/vibecheck/blob/main/CONTRIBUTING.md)
|
|
482
|
+
We welcome contributions! See [CONTRIBUTING.md](https://github.com/vibecheckai/vibecheck/blob/main/CONTRIBUTING.md).
|
|
483
|
+
|
|
484
|
+
```bash
|
|
485
|
+
# Clone the repo
|
|
486
|
+
git clone https://github.com/vibecheckai/vibecheck.git
|
|
487
|
+
|
|
488
|
+
# Install dependencies
|
|
489
|
+
pnpm install
|
|
490
|
+
|
|
491
|
+
# Run locally
|
|
492
|
+
pnpm dev
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
---
|
|
335
496
|
|
|
336
497
|
## License
|
|
337
498
|
|
|
@@ -340,9 +501,11 @@ MIT © [VibeCheck AI](https://vibecheckai.dev)
|
|
|
340
501
|
---
|
|
341
502
|
|
|
342
503
|
<p align="center">
|
|
343
|
-
<strong>
|
|
504
|
+
<strong>Your AI writes the code. VibeCheck makes sure it works.</strong>
|
|
344
505
|
</p>
|
|
345
506
|
|
|
346
507
|
<p align="center">
|
|
347
|
-
<a href="https://vibecheckai.dev">
|
|
508
|
+
<a href="https://vibecheckai.dev">
|
|
509
|
+
<img src="https://img.shields.io/badge/Get%20Started-E040FB?style=for-the-badge&logoColor=white" alt="Get Started" />
|
|
510
|
+
</a>
|
|
348
511
|
</p>
|