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.3

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.3
File Size Uploaded
ai_vibecheck-0.1.3.tar.gz 175.6 kB Details

Built distribution (wheel)

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

Total release size: 199.9 kB

Release files / ai_vibecheck-0.1.3.tar.gz

Download URL ai_vibecheck-0.1.3.tar.gz
Size 175.6 kB
Tags Source
SHA-256 checksum
How to use checksums
44c2c8e84536de9a7035fca6dbc5af6d5a1b13b2a2148714e7232df60d3cf9c6
BLAKE2b-256 checksum
How to use checksums
38b9c9b1893bd4b53fc4c3e267bde9ca165f42b66c643d6c80e9cc399785a083
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.3-py3-none-any.whl

Download URL ai_vibecheck-0.1.3-py3-none-any.whl
Size 24.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7515aae62cf27eb54a09b44f7b8a3d1c532e04fd8ce5ac12af97774d0f281cdd
BLAKE2b-256 checksum
How to use checksums
c1c5e5da67aade50b57e95bc732fca46050d6319104fb5c00f3d8502f518cb8c
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

This release

0.1.3 This release

2 release files

0.1.2

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