ESLint for AI slop. 34 rules for catching AI-generated code smells in JS/TS and Python, right in your editor.
- Inline diagnostics (red/yellow/blue squigglies) for AI code smells
- Problems panel integration
- Status bar indicator showing issue count
- Runs on save, or trigger manually
- Configurable severity threshold
- Reads
.vibecheckrc/.vibecheckrc.jsonfrom your project
- Hardcoded secrets and SQL injection
- Empty catch blocks and swallowed promises
- Stub functions (
throw new Error("not implemented")) - Hedging comments ("should work hopefully")
- Step-by-step comments (
// Step 1:,// Step 2:) - ASCII section dividers (
// ========) - Deep nesting (4+ levels)
as anytype escapes- console.log pollution
- And 23 more rules
| Setting | Default | Description |
|---|---|---|
vibecheck.enable |
true |
Enable/disable diagnostics |
vibecheck.runOnSave |
true |
Run when files are saved |
vibecheck.severity |
info |
Minimum severity to show (error, warn, info) |
- vibecheck: Run on Current File - manually trigger a scan
Works in Cursor and Windsurf out of the box via the VS Code Marketplace.
If you're using a non-default Cursor profile and the extension installs but doesn't activate, this is a known Cursor bug where VSIX installs don't register in the active profile. Fix it by specifying the profile explicitly:
cursor --profile "YourProfileName" --install-extension yuvrajangadsingh.vibecheck-linter