DEV Community

Cover image for Show DEV: prx - Local-first PR review: AI informs, human decides
Vijay Soni
Vijay Soni

Posted on

Show DEV: prx - Local-first PR review: AI informs, human decides

Pull request reviews pile up. For me the slow part was never the reading. It was the switch: opening a PR cold, working out what it was for, and finding the few things in it that mattered. By the time I had the context, I had lost the thread of whatever I was doing before.

I wanted the first pass done before I got there. I did not want to hand an AI the keys to my repositories to get it.

So I built prx. Its tagline is "AI informs, human decides", and this post is about what that means in the code.

What it does

prx runs on your machine. A background daemon polls the GitHub repositories you choose. For each open pull request it runs a coding-agent CLI you already have installed (claude, codex or pi), or calls an LLM API, and gets back a review.

When I sit down to review, each PR already has:

  • a brief: a few plain sentences on what the PR changes and what to notice,
  • findings, each marked blocking or nit,
  • a one-line verdict.

On macOS it sits in the menu bar. Everywhere, prx status and prx brief show the same thing in a terminal.

The PRX menu bar menu

The PRX prs

The problem with a reviewer that can post

An agent that can post to GitHub can also approve a pull request, merge it, or follow instructions hidden in a diff. I did not want to depend on the agent behaving.

What that does not give you

I want to be exact about the limits.

The agent's read-only rule is an instruction in a prompt. An agent CLI runs as you, with the tools and permissions you start it with, and the built-in claude engine runs with --dangerously-skip-permissions so a background review never stops to ask. prx does not sandbox the agent. If you want an engine with no tools at all, use an LLM API engine: it receives the prompt and the diff and can only return text.

The automated review is posted from your GitHub account, with a footer that says it is automated, and it can be a request-changes review. If you would rather see reviews without posting anything, there is a monitor mode, and prx review --dry-run prints what would be posted.

"Local-first" describes prx: the daemon, its state and its history are on your disk, there is no server of mine in the middle, and there is no telemetry. GitHub is reached through the gh session you are already signed in to, so prx stores no GitHub token. The diff still goes to whichever model provider your agent or API uses. A local OpenAI-compatible server such as Ollama keeps that on your machine too.

What it runs on

One Rust binary holds the CLI, the daemon, the per-PR state machine and a localhost API. The macOS menu bar app is a separate, thin client of that API. It runs on macOS and Linux. There is no Windows build, and GitHub is the only forge.

You bring the agent or the API key. prx does not include a model, so a review costs whatever yours charges.

This is v0.1.0 and I built it alone. The Mac app is not notarized yet, so a downloaded copy needs one command before it opens; the README has it. Linux binaries need glibc 2.39 or later.

Give it a try - https://github.com/vs4vijay/prx

Top comments (0)