Four months ago, I built a CLI tool to scan my own messy Python code.
Today it's a GitHub bot that audits entire repositories. Here's how it evolved and what I learned at each stage.
Stage 1: pyscn CLI — Measure First
It started with a frustration. I was vibe-coding fast with AI tools, but my codebase was getting worse. I needed numbers, not feelings.
So I built pyscn — a static analysis engine in Go with tree-sitter. It scans Python code and gives you a Health Score (0–100) based on:
- Cyclomatic complexity
- Dead code
- Code clones (copy-paste detection)
- Module coupling
uvx pyscn analyze .
One command. Full HTML report.
I wrote about the details here: Pyscn: The Code Quality Analyzer for Vibe Coders
What surprised me
I ran pyscn on Flask and FastAPI to see how "clean" famous open-source projects actually are. The results were eye-opening — even well-maintained projects have hidden complexity.
Full breakdown: How Clean Is Famous Open Source Code? I Measured Flask and FastAPI.
Stage 2: MCP Server — Let AI Use It
The CLI worked, but I wanted Claude and other AI tools to use pyscn directly during coding sessions. So I wrapped it as an MCP server.
Now your AI assistant can check code quality in real-time while you're working.
Details: Analyzing Python Code Quality via MCP
Stage 3: pyscn-bot — Automate Everything
The CLI and MCP were useful, but they required someone to remember to run them. The real problem is: nobody audits the codebase regularly.
So I built pyscn-bot — a GitHub App that:
- Weekly audits your full repository and posts findings as GitHub Issues
- Reviews PRs with architecture-aware comments
- Reports in 8 languages — English, Japanese, Chinese, and more
- Zero config — install and it just works
The key difference from other code review bots: pyscn-bot doesn't just look at diffs. It analyzes your entire codebase every time.
Full writeup: pyscn-bot: A Periodic Code Audit AI Agent for Vibe Coders
What's Next
pyscn-bot is launching on Product Hunt today:
If you vibe-code in Python, try the Health Score on your repo. It's free.
I'd love to hear what you think — drop a comment here or find me on X (@pyscn_official).
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.