VibeCheck
Security scanner for vibe-coded apps. Catch what Copilot ships and Snyk overcharges for.
pip install vibecheck-ai
vibecheck scan .
What it catches
- Hardcoded secrets — AWS keys, API tokens, database URLs, private keys (16 patterns)
- SQL injection — f-strings and string concatenation in execute() calls
- Command injection — eval(), exec(), os.system(), subprocess with shell=True
- XSS vectors — dangerouslySetInnerHTML, document.write(), eval() in JS
- Missing auth — FastAPI/Express routes without authentication middleware
- Insecure config — DEBUG=True, CORS wildcard, insecure cookies
- Exposed .env — real secrets in .env files, missing .gitignore entries
Usage
# Scan current directory
vibecheck scan .
# Scan specific path
vibecheck scan ./src
# JSON output (for CI/CD)
vibecheck scan . --format json
# Only show critical and high
vibecheck scan . --severity high
# Quiet mode (summary only)
vibecheck scan . --quiet
Exit codes
0— No critical or high findings1— Critical or high findings detected2— Scanner error
Supported languages
- Python (.py)
- JavaScript (.js, .jsx)
- TypeScript (.ts, .tsx)
- Environment files (.env)
- Config files (.json, .yaml, .toml)
Ignore patterns
Create a .vibeignore file in your project root:
# Skip test fixtures
tests/fixtures/*
# Skip generated code
generated/*
GitHub Action
Add to .github/workflows/vibecheck.yml:
name: VibeCheck
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: pip install vibecheck-ai
- run: vibecheck scan .
For GitHub Code Scanning integration (findings appear inline on PRs):
- run: vibecheck scan . --format sarif > vibecheck.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: vibecheck.sarif
Why VibeCheck?
53% of teams that shipped AI-generated code discovered security issues that passed review. The vibe coding era needs a security scanner that's:
- Fast — scans in milliseconds, not minutes
- Offline — no API calls, no code leaving your machine
- Free — open source, zero dependencies
- Focused — catches real issues, not style nits
License
MIT
Metadata
Release files for vibecheck-ai 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| vibecheck_ai-0.3.0.tar.gz | 18.4 kB | Without provenance | Details for vibecheck_ai-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| vibecheck_ai-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for vibecheck_ai-0.3.0-py3-none-any.whl |
Total release size: 45.1 kB
Release files / vibecheck_ai-0.3.0.tar.gz
| Download URL | vibecheck_ai-0.3.0.tar.gz |
|---|---|
| Size | 18.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e1023241f35c4d5443554a86cabb16c15a3198922c17de47b5b7671a801c90f2
|
|
BLAKE2b-256 checksum How to use checksums |
ed0077aa219036de279805b908a1fcbe801e45ceeb5b3bd96823eb025cf88741
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / vibecheck_ai-0.3.0-py3-none-any.whl
| Download URL | vibecheck_ai-0.3.0-py3-none-any.whl |
|---|---|
| Size | 26.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
798afa4edaa75a454d4056c65b551a1b4cd5cbe63f4a652b1b6a54a72b1ab9eb
|
|
BLAKE2b-256 checksum How to use checksums |
c88530502761ff14778d61b8134fa45029b6fd9bc440b7406dace4ce90a27ca3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for vibecheck-ai 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.