Skip to main content

Production-readiness scanner for AI/vibe-coded projects

Project description

Vibe Check

Production-readiness scanner for AI-generated and vibe-coded projects.

PyPI Python License

AI-assisted coding is fast. Shipping it to production without checking for security holes, missing tests, and bad patterns is dangerous. Vibe Check scans your project in seconds and gives you a letter grade (A-F) across 6 categories.

$ vibe-check scan .

  Vibe Check Report — Grade: B (74/100)

  Category        Score  Grade  Findings
  ──────────────  ─────  ─────  ────────
  Security          70     B       2
  Testing           85     A       1
  Code Quality      90     A       1
  Architecture      80     B       2
  Dependencies      95     A       0
  HIPAA             --    Pro      -

Install

pip install vibe-code-check

Requires Python 3.10+.

Quick Start

# Scan current directory
vibe-check scan .

# JSON output for CI pipelines
vibe-check scan . -f json

# Markdown report
vibe-check scan . -f markdown -o report.md

# Scan only security + testing
vibe-check scan . -c security -c testing

# CI mode — fail if grade below B
vibe-check scan . --ci --threshold B

What It Scans

Security (30% of score)

Rule Severity What it catches
SEC-001 FAIL Hardcoded API keys, passwords, tokens, AWS credentials
SEC-002 FAIL SQL injection via string interpolation
SEC-003 FAIL eval() / exec() usage
SEC-004 WARN Debug mode left enabled
SEC-005 WARN Wildcard CORS (Access-Control-Allow-Origin: *)
SEC-006 FAIL dangerouslySetInnerHTML without DOMPurify
SEC-007 FAIL Hardcoded database connection strings with credentials
SEC-008 FAIL Unsafe deserialization (pickle.load, yaml.load without SafeLoader)
SEC-009 FAIL Shell injection (subprocess with shell=True, os.system())
SEC-010 WARN Path traversal via user input in file operations
SEC-011 FAIL .env files not in .gitignore

Testing (20% of score)

Rule Severity What it catches
TST-001 FAIL No test directory found
TST-002 WARN Missing test files for source modules
TST-003 FAIL/WARN Low test-to-source ratio (<0.3 fail, <0.5 warn)
TST-004 WARN No test runner configuration

Code Quality (15% of score)

Rule Severity What it catches
CQ-001 WARN Functions longer than 50 lines
CQ-002 WARN Files longer than 500 lines
CQ-003 WARN Deeply nested code (>4 levels)
CQ-004 FAIL/WARN Excessive TODO/FIXME/HACK comments

Architecture (15% of score)

Rule Severity What it catches
ARC-001 WARN God files (>500 lines)
ARC-002 INFO Missing error handling (no try/except or try/catch)
ARC-003 WARN Bare except: clauses (catches SystemExit)
ARC-004 INFO Missing type hints in Python files

Dependencies (10% of score)

Rule Severity What it catches
DEP-001 WARN Missing lock file
DEP-002 WARN Unpinned dependency versions
DEP-003 WARN Wildcard or "latest" versions in package.json
DEP-004 FAIL/WARN Excessive dependencies (>50 fail, >30 warn)

HIPAA Compliance (10% of score) -- Pro

Rule Severity What it catches
HIPAA-001 FAIL PHI fields in log/print statements
HIPAA-002 FAIL Missing HTTPS/TLS configuration
HIPAA-003 WARN No audit logging detected
HIPAA-004 FAIL PHI fields in error handling blocks
HIPAA-005 WARN No session timeout configuration
HIPAA-006 WARN Database operations without encryption library

Grading Scale

Grade Score Meaning
A 85-100 Production-ready
B 70-84 Good, minor issues
C 55-69 Needs work before shipping
D 40-54 Significant issues
F 0-39 Not ready for production

CI/CD Integration

# GitHub Actions
- name: Vibe Check
  run: |
    pip install vibe-code-check
    vibe-check scan . --ci --threshold B
# GitLab CI
vibe-check:
  script:
    - pip install vibe-code-check
    - vibe-check scan . --ci --threshold B -f json -o vibe-report.json
  artifacts:
    paths:
      - vibe-report.json

The --ci flag exits with code 1 if the overall grade falls below --threshold (default: C).

Output Formats

Format Flag Use case
Terminal -f terminal Human-readable with colors (default)
JSON -f json CI pipelines, dashboards
Markdown -f markdown PR comments, reports
All -f all Generate all formats at once

Pro: HIPAA Compliance Module

The HIPAA scanner detects PHI handling violations specific to healthcare applications -- context-aware detection that distinguishes patient_ssn from patient_count.

# Activate with a license key
vibe-check scan . --license-key YOUR_KEY

# Or set as environment variable
export VIBE_CHECK_LICENSE_KEY=YOUR_KEY
vibe-check scan .

Get a Pro license at nyxtools.gumroad.com.

Supported Languages

  • Python (.py)
  • JavaScript (.js, .jsx)
  • TypeScript (.ts, .tsx)
  • Go (.go), Java (.java), Ruby (.rb), Rust (.rs) -- file discovery and basic checks

How Scoring Works

Each category starts at 100 points. Deductions:

  • FAIL finding: -15 points
  • WARN finding: -5 points
  • INFO finding: -1 point

The overall score is a weighted average across all categories. Security is weighted heaviest at 30% because a single security vulnerability can take down your entire application.

Built by NyxTools

Part of the NyxTools suite of developer and healthcare IT tools.

NyxTools - LEW Enterprises LLC

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vibe_code_check-0.1.0.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vibe_code_check-0.1.0-py3-none-any.whl (33.7 kB view details)

Uploaded Python 3

File details

Details for the file vibe_code_check-0.1.0.tar.gz.

File metadata

  • Download URL: vibe_code_check-0.1.0.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for vibe_code_check-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a8721afc7fc269e8f18bb2e5d924d48645ce062ffdb7ebc9fda3e471a4e85410
MD5 ff271ec1de4deaa68bc3f00be7ea1237
BLAKE2b-256 efc5c3d7278047b42e42ee1016393bfde81ec80e98bc8f56a6d66b34db98b3a9

See more details on using hashes here.

File details

Details for the file vibe_code_check-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for vibe_code_check-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a599e9d7fb60d1f7fccadf3310023a470415a34342c1f685d163e47db040827
MD5 052368d7cdce53bbb5bf80feed6b9266
BLAKE2b-256 997cc889aadfc9b874cad39ebc498048484d6d4947ce5bbe29f96329ddec2349

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page