Skip to main content

AI-powered codebase health scanner

Project description

PyPI Python 3.9+ License: MIT PRs Welcome

🩺 Vett — AI-Powered Codebase Health Scanner

Fast codebase health checks with optional AI analysis. Local-first, open source, and developer-friendly.

✨ Features

  • 🔐 Security pattern detection (secrets, risky APIs)
  • 📏 Complexity and maintainability checks
  • 📝 TODO/FIXME/HACK discovery
  • 🤖 Optional AI project analysis (Anthropic, OpenAI, Gemini, OpenRouter)
  • 📄 Markdown report output (vett_report.md)

📦 Install

pip install -U vett

If you are developing locally:

pip install -e .

🚀 Quick Start

# Scan current project (interactive mode if no API key is set)
vett scan .

# Scan without AI
vett scan . --no-ai

# Scan a specific folder
vett scan ./my-project

📋 Quick Copy Commands

# Check latest live version on PyPI
python -c "import json,urllib.request;print(json.load(urllib.request.urlopen('https://pypi.org/pypi/vett/json'))['info']['version'])"
# Install/upgrade to latest
python -m pip install -U vett
# Verify installed CLI version
vett version
# Scan without AI
vett scan . --no-ai
# Scan with Anthropic + explicit model
vett scan . --provider anthropic --model claude-3-5-sonnet-latest

API key setup (optional):

# Anthropic
export ANTHROPIC_API_KEY=your-key-here        # Mac/Linux
set ANTHROPIC_API_KEY=your-key-here           # Windows CMD
$env:ANTHROPIC_API_KEY="your-key-here"        # PowerShell

# OpenAI
export OPENAI_API_KEY=your-key-here

# Gemini
export GEMINI_API_KEY=your-key-here

# OpenRouter (great for free/open models)
export OPENROUTER_API_KEY=your-key-here

Pick provider with:

vett scan . --provider anthropic
vett scan . --provider openai
vett scan . --provider gemini
vett scan . --provider openrouter

🧭 CLI Reference

vett --help
vett scan --help
vett scan . --provider openrouter
vett scan . --provider openai --model gpt-4o-mini
vett version
vett version --short

📊 What Vett Checks

Check Description
🔐 Security Hardcoded secrets, unsafe eval/exec, SQL injection patterns
📏 Complexity Functions longer than 50 lines
📦 Large files Files over 300 lines
📝 TODOs Unresolved TODO/FIXME/HACK comments
🤖 AI Analysis Project summary, grade, strengths, suggestions

📁 Output

  • Colorful terminal report
  • vett_report.md saved in your target folder

🛠️ Troubleshooting

  • vett: command not found -> reinstall with pip install -U vett and restart terminal
  • UnicodeEncodeError on Windows -> set PYTHONUTF8=1 before running
  • No source files found -> verify the target has code files (.py, .js, .ts, ...)

🤝 Open Source

  • License: MIT (LICENSE)
  • Contributing guide: CONTRIBUTING.md
  • Security policy: SECURITY.md
  • Changelog: CHANGELOG.md

🧪 For Contributors

pip install -e .
vett scan . --no-ai

📤 Release Process (PyPI)

  1. Update vett/__init__.py version.
  2. Update CHANGELOG.md.
  3. Push to main.
  4. Create a GitHub release or version tag.
  5. Workflow .github/workflows/publish-pypi.yml publishes to PyPI.

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

vett-0.1.9.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

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

vett-0.1.9-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file vett-0.1.9.tar.gz.

File metadata

  • Download URL: vett-0.1.9.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vett-0.1.9.tar.gz
Algorithm Hash digest
SHA256 dfb2bd00eaaa5ecca3bfbd63fd8209c49ed81da0b2ba4718a8dd335c63773e97
MD5 9b438cee33ce900c7860f0a6c3b8b7a6
BLAKE2b-256 15bd04004a6eb1be2c7541cfed7e565f8ffa8c12acc145dc076be8b48b92a19e

See more details on using hashes here.

Provenance

The following attestation bundles were made for vett-0.1.9.tar.gz:

Publisher: publish-pypi.yml on madhavbuilds/Vett

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vett-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: vett-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vett-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c47701461abb71acca5cbedbf7925e472c8fe9f8dd8c9e7e4a235ceb3495e03b
MD5 8fca9bbffa292955d25c6ebd5fc6c5ad
BLAKE2b-256 83ca45cfe6783ed7ecc4aa5b5379268e5c674dc3033c47ee79c0e77d23a9eca6

See more details on using hashes here.

Provenance

The following attestation bundles were made for vett-0.1.9-py3-none-any.whl:

Publisher: publish-pypi.yml on madhavbuilds/Vett

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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