Skip to main content

vibecheck 🔮

A little terminal tool that checks how much of a GitHub repo was actually written by AI.

It digs through commit messages, co-author tags, and project setup files to tell you:

  1. How much AI code is in here? (0% to 100%)
  2. What kind of project is this? (e.g. AI-built with human tests, a weekend prototype, or 100% hand-crafted)
  3. Is it tested and reviewed, or just "vibe-coded"?

Quickstart

You don't need to install anything! Run directly with uvx:

uvx ai-vibecheck <github-repo>

Or install via pip:

pip install ai-vibecheck
vibecheck <github-repo>

Examples:

# Check any repo (e.g. open-metadata has ~60% AI co-authored commits)
vibecheck open-metadata/OpenMetadata

# Check an open-source project
vibecheck pallets/flask

# Or paste the full URL
vibecheck https://github.com/torvalds/linux

🌟 Cool Features

1. ⚔️ Side-by-Side Comparison

Compare two repositories head-to-head in a split-screen table:

vibecheck compare open-metadata/OpenMetadata pallets/flask

2. 🔀 Pull Request Vibe Check

Audit a specific Pull Request to see if it was written by an AI coding agent:

vibecheck pallets/flask --pr 5000

3. 🏆 Organization Leaderboard

Rank an entire GitHub organization's active repos by AI adoption:

# Rank top repos in an organization
vibecheck org pallets --limit 5
vibecheck org encode --limit 5

Plain-English Categories

  • 🤖 AI-Built, Human-Tested: Lots of AI code (>75%), but backed by real tests, CI/CD, and code reviews.
  • 🚀 Pure Vibe-Code: Built fast by prompting an AI in 1 or 2 big commits. No tests, just vibes.
  • 🍝 AI Spaghetti: Lots of erratic commits like "fix bug", "try again", showing someone pasted terminal errors into an LLM until it compiled.
  • 🛠️ 100% Hand-Crafted: Classic, hand-written software with human commit discipline and zero AI footprints.
  • 🤝 Human + AI Tag Team: A healthy human codebase where engineers use AI assistants for parts of the work.

How It Works Under the Hood

  1. GitHub login: Automatically uses your existing GitHub CLI session (gh auth). Higher rate limits and access to private repos you can view. Falls back to public HTTP if not logged in.
  2. AI analysis: Runs via your local Gemini CLI session by default (no API keys required).
  3. Forensic detection:
    • Finds agent steering files (CLAUDE.md, .cursorrules, .agents).
    • Parses git trailers (Generated with Claude Code, gemini-code-assist[bot], copilot[bot]).
    • Automatically filters out automated release bumps so metrics reflect real feature engineering.

Options

# Switch to Claude
vibecheck <repo> -p claude

# Switch to OpenAI
vibecheck <repo> -p openai -m gpt-4o

# Run tests
uv run pytest

# Check code quality
uv run ruff check .

Release files for ai-vibecheck 0.1.2

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

Source distribution (sdist)

Source distribution for ai-vibecheck 0.1.2
File Size Uploaded
ai_vibecheck-0.1.2.tar.gz 123.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ai-vibecheck 0.1.2
File Interpreter ABI Platform
ai_vibecheck-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 146.7 kB

Release files / ai_vibecheck-0.1.2.tar.gz

Download URL ai_vibecheck-0.1.2.tar.gz
Size 123.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c379976d92f03331524959d2b453b7b3eb1275b7d23c6861ae39a07a36334ac0
BLAKE2b-256 checksum
How to use checksums
4a3debb358df889b19cbcb9826ba5b21f4e379f13d7139f348406efcf7f2270e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / ai_vibecheck-0.1.2-py3-none-any.whl

Download URL ai_vibecheck-0.1.2-py3-none-any.whl
Size 23.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b7011417066228a2c90f209a10a321de932733c4f88bb7d081b871a8984d39d3
BLAKE2b-256 checksum
How to use checksums
1dc5de4cc58648a28e466b49b45aae9917b8e7289535ac5652d23ae095731fb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.1.4

2 release files

0.1.3

2 release files

This release

0.1.2 This release

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