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:
- How much AI code is in here? (0% to 100%)
- What kind of project is this? (e.g. AI-built with human tests, a weekend prototype, or 100% hand-crafted)
- 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
- 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. - AI analysis: Runs via your local Gemini CLI session by default (no API keys required).
- 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.
- Finds agent steering files (
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)
| File | Size | Uploaded | |
|---|---|---|---|
| ai_vibecheck-0.1.2.tar.gz | 123.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|