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.3
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.3.tar.gz | 175.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|