Audit your AI-generated code. Catch anti-patterns, security issues, and get a vibe score.
Project description
pip install vibechecker
vibecheck scan .
What it does
VibeCheck scans your codebase for patterns commonly found in AI-generated code:
- ๐จ Security issues โ hardcoded secrets, eval(), SQL injection, shell=True, pickle.load
- โ ๏ธ AI code smells โ generic exception handling, placeholder variable names, leftover console.log, TODO comments, magic numbers
- ๐ก Suggestions โ overly verbose comments, generic function names, over-documented trivial code
Then it gives you a vibe score from 0-100.
Demo
$ vibecheck scan ./src
โญโโโโโโโโโโโโโโโโโโโ Vibe Score โโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ 72/100 ๐ Grade C โ
โ โ
โ Getting shaky. Review the warnings first. โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
23 files ยท 3,412 lines ยท 14 findings
๐จ Security Issues (2)
Hardcoded Secret config.py:12
โ Use environment variables. Never commit secrets.
eval() Usage parser.py:45
โ Use ast.literal_eval() or JSON.parse().
โ ๏ธ AI Code Smells (5)
Broad Exception Handler utils.py:15
โ Catch specific exceptions (ValueError, KeyError, etc.)
Placeholder Variable Names handler.py:23
โ Use descriptive names that explain the variable's purpose.
...
โก Quick Wins
โข Move secrets to environment variables
โข Replace generic exception handlers
โข Rename placeholder variables
Install
pip install vibechecker
Usage
# Scan current directory
vibecheck scan .
# Scan specific directory
vibecheck scan ./src
# JSON output (for CI/CD)
vibecheck scan . --json
# Security issues only
vibecheck scan . --security
# Skip security checks
vibecheck scan . --no-security
# Ignore directories
vibecheck scan . --ignore vendor --ignore generated
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Clean, no critical issues |
| 1 | Score below 60 |
| 2 | Critical security issues found |
Perfect for CI pipelines:
# GitHub Actions
- name: VibeCheck
run: |
pip install vibechecker
vibecheck scan . --json > vibecheck-report.json
vibecheck scan .
Languages Supported
- Python (
.py) - JavaScript (
.js,.jsx) - TypeScript (
.ts,.tsx)
More languages welcome! See CONTRIBUTING.md.
How Scoring Works
| Component | Impact |
|---|---|
| Start | 100 |
| Critical issue | -15 each (max -60) |
| Warning | -5 each (max -40) |
| Info | -1 each (max -15) |
| Has tests | +5 |
| Small files (< 100 lines avg) | +5 |
Contributing
We welcome contributions! Especially:
- New language support (Go, Rust, Java, Ruby, PHP, etc.)
- New pattern detection rules
- CI/CD integrations (GitHub Action, pre-commit hook, GitLab CI)
- IDE extensions (VS Code, JetBrains)
- Bug fixes and pattern improvements
See CONTRIBUTING.md for guidelines.
Why "vibecheck"?
Because "vibe coding" is how most of us use AI now. Ship fast, but know what you shipped.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vibechecker-0.1.0.tar.gz.
File metadata
- Download URL: vibechecker-0.1.0.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df9fb6fa85be6e6c082848ba576a1ff84ffd4f9b825277930ccbc30095f36937
|
|
| MD5 |
7c18a15222226d7e97ead99678cd314e
|
|
| BLAKE2b-256 |
2210fa01644f1c9ba85ed4f97b0cde7c30a4cde1254e178710463b8759dd0029
|
File details
Details for the file vibechecker-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vibechecker-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c901025175fe150e4a65b4b73270faabfd920a92aee61c63f4d075267f3da27
|
|
| MD5 |
dfec17cf0f1e9edbbe979e3720a543fa
|
|
| BLAKE2b-256 |
5de7a52628c69575a62579bce899f34c9bec2fb4af7eba2f721ba1d52279de6c
|