Skip to main content

vibechecker

Audit your AI-generated code.

Catch anti-patterns, security issues, and get a vibe score.

PyPI Python License: MIT Tests


pip install vibechecker
vibechecker scan .

What it does

VibeChecker 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

$ vibechecker 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
vibechecker scan .

# Scan specific directory
vibechecker scan ./src

# JSON output (for CI/CD)
vibechecker scan . --json

# Security issues only
vibechecker scan . --security

# Skip security checks
vibechecker scan . --no-security

# Ignore directories
vibechecker 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: VibeChecker
  run: |
    pip install vibechecker
    vibechecker scan . --json > vibecheck-report.json
    vibechecker 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 "vibechecker"?

Because "vibe coding" is how most of us use AI now. Ship fast, but know what you shipped.

License

MIT

Metadata

Release files for vibechecker 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vibechecker 0.1.1
File Size Uploaded
vibechecker-0.1.1.tar.gz 14.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vibechecker 0.1.1
File Interpreter ABI Platform
vibechecker-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 28.3 kB

Release files / vibechecker-0.1.1.tar.gz

Download URL vibechecker-0.1.1.tar.gz
Size 14.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f422da20ca75208b6585391b52b84519adaa8998f24daa8b8076231498a9b2ca
BLAKE2b-256 checksum
How to use checksums
219754bf47b62620c1b65d7daa17a9f8298af841d88d0ac570f00eca27e9df19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / vibechecker-0.1.1-py3-none-any.whl

Download URL vibechecker-0.1.1-py3-none-any.whl
Size 13.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
275a4c83ed96cb44eb199a0c7e301a408bbf58d3a4d0978dae027d22220d3673
BLAKE2b-256 checksum
How to use checksums
7efc299899435747984c80c2a4e6cb7b79a83d8a17ab2705a36ac0ddcec9c52d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page