Repolode
winnin

winnin/farol

A CLI and GitHub Action that runs after AI code review to score a pull request's merge risk and list the files and endpoints it reaches.

Stars
174
Forks
5
Open issues
6
Last commit
2 days ago

What is it?

farol is a free, open-source CLI and GitHub Action for the person who approves a pull request. After an AI review agent has commented on the diff, farol uses static analysis to show what the changed code reaches, such as pages, API operations, RPC methods, jobs and scripts, and gives the change a verdict (fast track, quick review or careful review) with a 0-100 risk score.

The report combines reach, diff coverage, security findings, contract breaks and dependency changes, and lists the riskiest files first with inline diffs, untested lines and a manual test checklist. It reads code with the TypeScript type checker, go/types and Python's ast, and never executes the analyzed code or sends it over the network. It runs locally or in CI and posts a comment on pull requests without blocking merges.

Supported stacks include React Router, Next.js and TanStack Router frontends, TypeScript GraphQL and REST backends, Go services and Python services such as FastAPI, Flask and Django. Optional Datadog integration adds traffic and error information.

Key features

  • 01Ranks changed files by risk and shows the pages and endpoints each one reaches.
  • 02Assigns a verdict and a 0-100 risk score with the reasons behind it.
  • 03Flags breaking changes to GraphQL, FastAPI, Go and gRPC contracts.
  • 04Marks untested lines in inline diffs and imports coverage, lint and audit reports from CI.
  • 05Generates a single-file HTML report and a Markdown review record.

Use cases

  • Deciding how much review time a large pull request needs before approving it.
  • Catching breaking API changes and their downstream callers before merging.
  • Adding a risk triage step to GitHub pull requests alongside an existing AI reviewer.
  • Checking which frontend pages a shared component change affects.

Quick start

  1. 1

    Create farol.config.json at the project root describing your stack

  2. 2

    List the pages, endpoints, jobs and scripts farol found

    npx @winninjs/farol routes
  3. 3

    Analyze the branch against its target branch

    npx @winninjs/farol analyze --base origin/main --head HEAD --out farol.json
  4. 4

    Generate the HTML report and open it

    npx @winninjs/farol html --in farol.json --out farol.html && open farol.html

Things to know

  • Requires Node.js 22+ and git, plus go for Go projects or python3 3.11+ for Python projects.
  • Supports only TypeScript, Go and Python codebases.

In collections

Topics

FAQ

What is farol?
A CLI and GitHub Action that runs after AI code review to score a pull request's merge risk and list the files and endpoints it reaches. farol is a free, open-source CLI and GitHub Action for the person who approves a pull request. After an AI review agent has commented on the diff, farol uses static analysis to show what the changed code reaches, such as pages, API operations, RPC methods, jobs and scripts, and gives the change a verdict (fast track, quick review or careful review) with a 0-100 risk score.
Is farol free to use? What license does it have?
farol is open source under the MIT license. Check the license terms before using it in commercial products.
Is farol still maintained?
Actively maintained. The last commit to farol was on Nov 4, 2026.
What can I use farol for?
Deciding how much review time a large pull request needs before approving it. Catching breaking API changes and their downstream callers before merging. Adding a risk triage step to GitHub pull requests alongside an existing AI reviewer. Checking which frontend pages a shared component change affects.
How do I install farol?
Create farol.config.json at the project root describing your stack List the pages, endpoints, jobs and scripts farol found: npx @winninjs/farol routes Analyze the branch against its target branch: npx @winninjs/farol analyze --base origin/main --head HEAD --out farol.json Generate the HTML report and open it: npx @winninjs/farol html --in farol.json --out farol.html && open farol.html
Where can I get farol?
The source code and installation instructions are on GitHub: https://github.com/winnin/farol

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects