Skip to content
Tech News
← Back to articles

Show HN: I canceled my AI code reviewer and wrote a free local one

read original more articles
Why This Matters

Avouch offers a lightweight, local Python code review tool that integrates seamlessly with Git, providing precise static analysis without relying on external servers or daemons. Its focus on reviewing only the files about to be committed ensures more accurate, relevant feedback for developers, streamlining the code quality process before pushing changes. This approach enhances developer productivity and code quality control in the Python ecosystem.

Key Takeaways

avouch

Review the Python you changed, not the Python you inherited.

Avouch is a lightweight, Git-aware static analysis CLI for Python. It asks Git which files your next commit will touch, parses each changed .py file with the standard ast module, and reports structural problems against limits you configure in avouch.toml .

No daemon. No network. No path lists to maintain. Run it in the seconds before git push , fix what it flags, push.

pip install avouch cd your-repo avouch

Table of contents

Why it exists

The review set is the diff, not the repository. Avouch computes the review set from Git at run time ( git diff HEAD --name-only plus untracked files). Every finding is attributable to work you are about to push — never to the legacy you inherited.

Avouch computes the review set from Git at run time ( plus untracked files). Every finding is attributable to work you are about to push — never to the legacy you inherited. Metrics are exact. Parameter counts, nesting depth, and line spans come from the AST, not regex. If a metric cannot be computed exactly, Avouch does not claim it.

Parameter counts, nesting depth, and line spans come from the AST, not regex. If a metric cannot be computed exactly, Avouch does not claim it. Errors are data. An unreadable or syntactically broken file becomes an ERROR entry in the report. One broken file never cancels the review of the others.

... continue reading