Score a public GitHub repo 0-100, or search Legit.Show for launched software by what we measured.
npx commitshow@latest audit github.com/owner/repo
██████╗ ██████╗ ███╗ ███╗ ███╗ ███╗ ██╗ ████████╗ ███████╗ ██╗ ██╗ ██████╗ ██╗ ██╗
██╔════╝ ██╔═══██╗ ████╗ ████║ ████╗ ████║ ██║ ╚══██╔══╝ ██╔════╝ ██║ ██║ ██╔═══██╗ ██║ ██║
██║ ██║ ██║ ██╔████╔██║ ██╔████╔██║ ██║ ██║ ███████╗ ███████║ ██║ ██║ ██║ █╗ ██║
██║ ██║ ██║ ██║╚██╔╝██║ ██║╚██╔╝██║ ██║ ██║ ╚════██║ ██╔══██║ ██║ ██║ ██║███╗██║
╚██████╗ ╚██████╔╝ ██║ ╚═╝ ██║ ██║ ╚═╝ ██║ ██║ ██║ ██╗ ███████║ ██║ ██║ ╚██████╔╝ ╚███╔███╔╝
╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝
╭────────────────────────────────────────────────────────╮
│ ✻ commit.show — Audit report │
╰────────────────────────────────────────────────────────╯
commitshow github.com/commitshow/commitshow
Findings · 1 critical · 1 warning · 3 strengths
┌────────────────────────────────────────────────────────┐
│ What this build missed │
│ ✕ 25 FK columns unindexed — fk_columns_seen=100 vs in… │
│ ⚠ Zero observability libs in 17 deps — no Sentry, Pin… │
│ │
│ What it got right │
│ ↑ 56 RLS policies cover all 19 tables — gap_estimate=… │
│ ↑ Lighthouse accessibility 93, best practices 96, SEO… │
│ ↑ Rate-limit middleware active on API routes — vibe_c… │
└────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
│ AI Coder 7 Frames · what AI ships without │
│ │
│ ✕ Error tracking │
│ no error-tracking dependency or config declared… │
│ ⚠ Database indexes │
│ 100 FK columns · 75 indexes · 25 unindexed │
│ → supabase/schema.sql · id → auth │
│ ✓ RLS coverage │
│ 19 tables · 56 policies · all covered │
│ ✓ Secret in client code │
│ no service-role keys in client paths │
│ ✓ API rate limiting │
│ custom middleware detected │
└────────────────────────────────────────────────────────┘
Δ +20 since last audit
→ https://commit.show/projects/1c262df3-…
next · feed your AI loop → commitshow audit . --json
╔════════════════════════════╗
║ commitshow/commitshow ║
║ ║
║ ███████╗ ███████╗ ║
║ ╚════██║ ╚════██║ ║
║ ██╔╝ ██╔╝ ║
║ ██╔╝ ██╔╝ ║
║ ██║ ██║ ║
║ ╚═╝ ╚═╝ ║
║ ║
║ / 100 · walk-on · strong ║
╚════════════════════════════╝
audition unlocks final 5 · max walk-on score 95
Audit 35/50 ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▱▱▱▱▱▱
Scout —/30 ─ audition unlocks ─
Comm. —/20 ─ audition unlocks ─
commit.show
⭐ Star us on GitHub if
commitshow auditsaved you a// TODO.
Vibe-coded projects ship fast and break differently. The CLI gives you a zero-config, walk-on lane to commit.show's audit engine — the same Claude-grade analysis used in our 3-week leagues, minus the signup, fee, and league commitment. You get a snapshot of where the build sits, what's strong, what's wobbling, and how it ranks against everyone else this week.
Local runs also drop .commitshow/audit.md and .commitshow/audit.json
into your repo, so your AI coding agent can read the report on the next
turn without a prompt-engineering ritual.
When a project is ready for the full season — Scout forecasts, season ranking, Backstage prompt extraction, Hall of Fame — it auditions at commit.show/submit.
The npm package + command is
commitshow(no dot — npm doesn't allow it in package names). Everywhere else uses the brand commit.show.
# one-shot (recommended for trying it on someone else's repo)
npx commitshow@latest audit <target>
# or global, if you'll run it daily
npm i -g commitshow
commitshow audit <target>
Requires Node 20+.
| Command | What it does |
|---|---|
commitshow audit [target] [--json] [--refresh] [--source=<tag>] | Fetch + render the latest audit, write .commitshow/audit.{md,json} |
commitshow status [target] | Same render as audit, no re-run |
commitshow login [--no-open] [--token <jwt>] | Device-flow sign-in via browser approval |
commitshow whoami [--logout] | Print the linked account · --logout clears the saved token |
commitshow submit [target] | Audition a project (coming soon · needs login) |
commitshow install <pack> | Install a Library artifact (coming soon) |
npx commitshow@latest login
Opens commit.show/cli/link?code=<6-hex> in your browser. After you
click Authorize there, the CLI receives a 90-day JWT and saves it to
~/.commitshow/config.json (file mode 0600). Subsequent calls send
the token in the Authorization header automatically.
What changes once signed in:
commitshow whoami prints your member id + emailHeadless / CI? Use --token <jwt> to skip the browser handshake.
--source=<tag> lets you self-report how the call originated:
npx commitshow audit . --source=claude-code
COMMITSHOW_SOURCE=cursor npx commitshow audit .
Common tags: claude-code · cursor · gemini-cli · codex ·
antigravity · production-audit-skill · any 64-char string. Drops
into the maintainer's admin breakdown so we can see which agent
ecosystems are driving installs. Skip the flag to stay anonymous.
audit and status accept a positional target that auto-detects:
| Form | Example |
|---|---|
| cwd (omitted) | commitshow audit · infers from git remote get-url origin |
| Local path | commitshow audit ./my-repo |
| Remote URL | commitshow audit github.com/owner/repo · commitshow audit https://github.com/owner/repo |
| SSH remote | commitshow audit git@github.com:owner/repo.git (auto-converted) |
| Shorthand | commitshow audit owner/repo |
Remote-URL mode works from any directory, which makes one-line X posts
(npx commitshow@latest audit <their-url>) trivial.
AI agents — read this before invoking. The CLI does not look up projects by name.
commitshow audit warpwill error: there is no agreed-upon mapping from the word "warp" to a single GitHub repo. If a user asks you to audit something by name, first resolve the canonicalgithub.com/<owner>/<repo>URL (ask the user, or search github.com), then invokecommitshow audit <that-url>. The CLI does a HEAD pre-flight againstgithub.com/<owner>/<repo>before any audit spend, so a hallucinated slug is rejected with anot_founderror before we burn Claude credits — but you should still get the URL right on the first try by asking, not guessing.
commitshow audit in local mode writes to .commitshow/audit.md and
.commitshow/audit.json after every run. Point your coding agent at them
and it picks up exactly what the audit flagged, with no prompt engineering:
You are pairing on <repo>. Read .commitshow/audit.md before each turn.
Pick the top concern and propose a minimal change; I'll run
`commitshow audit` again to check the delta.
--jsoncommitshow is built on a simple idea — CLI + stable JSON is the universal
contract between agent ecosystems. No SDK, no MCP server, no vendor lock.
Any agent that can shell out to a subprocess can use commit.show.
# Human
commitshow audit github.com/owner/repo
# Agent
commitshow audit github.com/owner/repo --json | jq '.concerns[].bullet'
"Check my commit.show score and fix anything under 80."
score=$(commitshow audit --json | jq '.score.total')
if [ "$score" -lt 80 ]; then
commitshow audit --json | jq -r '.concerns[0].bullet'
# → agent reads this concern, picks a fix, applies edits, re-audits
fi
When a user says "audit warp" or "what does commit.show say about Postiz", don't guess the slug. Walk this loop:
1. Ask the user (or search github.com) for the canonical
`github.com/<owner>/<repo>` URL. Don't invent one — repo names are
ambiguous and a single wrong guess wastes an audit call.
2. Run:
commitshow audit <that-url> --json
3. If stdout starts with `{"error":"not_found"`, the URL was wrong.
Re-confirm with the user before retrying.
4. Otherwise parse `score.total`, `score.band`, `concerns[]` and
answer the user with those exact numbers — don't paraphrase the
score.
The CLI HEAD-checks github.com/<owner>/<repo> before any audit spend,
so a hallucinated slug fails fast with a clear not_found envelope.
The friendly error in the message body explicitly tells you to ask the
user instead of guessing again.
Stable by contract — additive fields don't bump schema_version; breaking
changes do. Known keys: project, score, standing, strengths, concerns,
snapshot. See commitshow audit --json output for the canonical example.
Top-to-bottom, what each section gives you:
╭ ✻ commit.show — Audit report ╮ strip is always rendered as the title fallback.Findings · 1 critical · 1 warning · 3 strengths — scan one line, you know the tone before reading the bullets.✕ scarlet (highest-impact), the rest are ⚠ gold. Engine ranks them by decision-impact, not by severity tier.↑ teal · 3 bullets · for context only. Don't lead with these.next: hint · one-line nudge to feed --json | jq .concerns into your coding agent.commit.show wordmark anchors the bottom-right.Walk-on auditions cap the Audit axis at 45/50 and lock Scout / Community behind the audition gate; the captions explicitly call this out.
0.1 — ✓ read-only audit · status · --json · target auto-detect · sidecar files0.3 — ✓ device-flow login · --source telemetry · User-Agent self-report · MCP server (commitshow-mcp)0.4 — commitshow submit · --watch mode · CI exit-code gate · refresh-token flow0.5 — commitshow install <pack> with {{VARIABLE}} substitutionSource-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y commitshow-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-commitshow-audit": {
"command": "npx",
"args": [
"-y",
"commitshow-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencecommitshow-mcpnpmio.github.commitshow/audit works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.