Security scanner for AI-generated (vibe-coded) code
Project description
VibeScan
Security scanner for AI-generated (vibe-coded) code
The Problem
AI coding tools (Cursor, Claude, Copilot) generate code fast — but 45% of it has security vulnerabilities (Veracode 2025). Existing scanners (GitLeaks, TruffleHog) scan for secrets only. They miss what VibeScan catches.
Architecture
Features
| Feature | Status |
|---|---|
| 14 secret patterns (AWS, OpenAI, GitHub, Stripe, JWT, DB URLs…) | ✅ |
| Shannon entropy detection (unknown tokens) | ✅ |
| 22 AI-specific vulnerability patterns | ✅ |
| Live secret validation (GitHub + OpenAI tokens) | ✅ |
| Auto-fix suggestions with safe code snippets | ✅ |
| Git hooks (block push on CRITICAL) | ✅ |
| GitHub Actions PR bot | ✅ |
| HTML report + Security dashboard (0–100 score, A–F grade) | ✅ |
| Config file with allowlist & baseline | ✅ |
| Zero cost · Works offline · MIT license | ✅ |
Quick Start
# Install — one time
pip install vibescan-ai
# Scan any project
vibescan scan .
# Save HTML report
vibescan scan . -o report.html
Output: File | Line | Issue | Risk | Match in a colorful Rich table.
📸 Screenshots
| Feature | Image |
|---|---|
| Terminal Output | |
| HTML Report | |
| Security Dashboard |
Demo
VibeScan v1 Demo | VibeScan v2 Demo
Usage
# Scan current folder
vibescan scan .
# Scan specific folder
vibescan scan path/to/your/project
# HTML report
vibescan scan . -o report.html
# Security dashboard (0-100 score + A-F grade)
vibescan scan . -d dashboard.html
# JSON export (CI/CD integration)
vibescan scan . -j results.json
# Fast scan — secrets only, skip AI patterns
vibescan scan . --no-vibe
# Fail on critical (exit code 1 for CI/CD)
vibescan scan . --fail-on-critical
# Verify if detected secrets are live or revoked
vibescan scan . --validate
Detected Issues
Secrets
AWS Access Key · AWS Secret Key · OpenAI API Key · GitHub Token / OAuth / PAT · Google API Key · JWT Token · Database URL (PostgreSQL / MongoDB / MySQL / Redis) · Generic API Key · Generic Password · Private Key · Stripe Secret / Test Key · Slack Token · Hardcoded .env values
AI-Specific Vulnerabilities
Prompt injection · Unvalidated LLM input · Password / token logged · subprocess with shell=True · os.system() · Path traversal · .env served in route · Hardcoded admin credentials · Weak random module · yaml.load() · pickle.loads() · Missing rate limit on auth · Unvalidated file upload · Missing auth check · SQL injection via f-strings · Debug mode in production · CORS wildcard · Direct .env read · eval() usage
Why VibeScan Over GitLeaks?
| Feature | GitLeaks | VibeScan |
|---|---|---|
| Secret detection | ✅ | ✅ |
| Entropy analysis | ❌ | ✅ |
| AI-specific patterns | ❌ | ✅ |
| Missing auth detection | ❌ | ✅ |
| SQL injection check | ❌ | ✅ |
| Auto-fix suggestions | ❌ | ✅ |
| GitHub Actions / PR bot | ❌ | ✅ |
| Security dashboard | ❌ | ✅ |
| Cost | Free | Free |
Tech Stack
Python · Click · Rich · Jinja2 · Regex · Shannon Entropy · GitHub Actions
Installation (from source)
git clone https://github.com/tanikush/vibescan.git
cd vibescan
pip install -r requirements.txt
pip install -e .
Contributing
Pull requests are welcome. For major changes, open an issue first to discuss what you would like to change.
- Fork it
- Create your feature branch (
git checkout -b feature/my-change) - Commit your changes (
git commit -m 'Add: my new feature') - Push the branch (
git push origin feature/my-change) - Open a Pull Request
License
MIT — see LICENSE for details. Free forever. No license fees. No cloud lock-in.
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 vibescan_ai-1.0.0.tar.gz.
File metadata
- Download URL: vibescan_ai-1.0.0.tar.gz
- Upload date:
- Size: 3.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00c35a8708d6e3cf8c5ea99d802c4dcdf89685046bf5359318f0dbd8c9a82a87
|
|
| MD5 |
45343002416ec3bdba02e7e88eceb0f0
|
|
| BLAKE2b-256 |
160504485b9ad4a721bcdadb55ff7d30ea952f1d59bada3f078825480d1a96c0
|
File details
Details for the file vibescan_ai-1.0.0-py3-none-any.whl.
File metadata
- Download URL: vibescan_ai-1.0.0-py3-none-any.whl
- Upload date:
- Size: 3.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bb8915fc9d09088d8cab71a4818328a2668be06e3866fa52d5550ca9211bd97
|
|
| MD5 |
4d4d772c64738a9049e7ae610db0b269
|
|
| BLAKE2b-256 |
1bfd830cb654ac42b52b0812ee297bb20e06614ee526ac8b010db710fcfe4182
|