This is a vibed code review tool for reviewing the code generated by an LLM. Its meant to run locally and does not support any kind of multi user stuff or "cloud"/github/etc integration.
  • Go 42.1%
  • Vue 28.3%
  • TypeScript 15.4%
  • CSS 13.4%
  • Makefile 0.7%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Matjaz Debelak c08af18db8
rever: local branch review with Claude and Codex in the threads
A Go binary that serves a Vue UI for reviewing a branch's diff (all
commits, one commit or a range) and doubles as the CLI agents use.

- Unified and side-by-side diffs with syntax highlighting, old/new
  full-file views, file tree, viewed files and read chunks.
- Generated files (sqlc, mocks, lockfiles, linguist-generated) are
  folded; gqlgen resolvers stay visible; rever-generated overrides.
- Threads answered by a spawned `claude -p` session or by Claude Code /
  Codex through `rever reply`, with Mermaid/SVG diagrams and a zoomable
  full-screen view.
- Agents can mark a thread as being worked on and keep a per-review task
  list that the reviewer reorders; `rever instructions` prints the guide.
- Threads survive amends/rebases and merged branches; the UI resyncs
  after missed live updates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 15:24:56 +02:00
cmd/rever rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
docs/screenshots rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
internal rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
web rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
.gitignore rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
AGENTS.md rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
CLAUDE.md rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
go.mod rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
go.sum rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
Makefile rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
README.md rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00
sqlc.yaml rever: local branch review with Claude and Codex in the threads 2026-10-13 15:24:56 +02:00

rever

A local code review tool for your own branches, built to review alongside AI agents.

rever shows a branch's diff in the browser: the whole branch, one commit, or any range of commits. You comment on lines, and Claude answers in the thread, or a Claude Code or Codex session picks the thread up from the command line. Agents can reply with diagrams, say what they're working on, and keep a task list that you put in order.

Reviewing a branch: commits and files on the left, the diff with an inline thread in which Claude answered with a diagram, and the thread list on the right

Features

  • Any slice of the branch. Click a commit to see it alone, shift-click to select a range, or use All, Since review and Latest. The selection lives in the URL, and new commits appear as you push them.
  • Unified or side by side, with syntax highlighting, and an Old / New view of the whole file.
  • Track what you've read. Mark files viewed and chunks read (x). A read mark is tied to the change itself, so it survives switching commit ranges and resets when that code changes again.
  • Generated files out of the way. sqlc, mockgen and protoc output, go.sum and other lockfiles, and minified and vendored files are folded and left out of the counts (see Generated files).
  • Threads with agents. Each thread chooses who answers: Claude (run by rever), any agent through the CLI, or nobody (notes for yourself). Replies are Markdown; Mermaid and SVG diagrams render inline and open full screen to zoom and pan.
  • Agents show their work. An agent can mark a thread "working on it" with a note on what it's doing, and keep a task list that you reorder by dragging.
  • File tree or flat list, keyboard shortcuts for everything, and light and dark themes.
The task list: Claude is working on the first task, and Codex is working on a thread Side-by-side diff of a single commit in the dark theme
Tasks agents keep and you order; Codex is working on a thread. One commit, side by side, dark theme.

Install

You need Go 1.27+, Node with pnpm, and git. The claude CLI is optional; without it, threads are answered from Claude Code or Codex sessions instead.

make web-install && make install   # builds the UI into the binary and installs `rever`

Use

cd ~/some/repo
rever                               # review the current branch against main/master
rever feat/x --base develop --open  # another branch and base; open the browser

Then open http://localhost:4141. rever only listens on localhost. Reviews, threads and tasks are stored in .git/rever.db, so every worktree of a repository shares them.

Keys
j k next / previous file
[ ] previous / next commit
n p next / previous thread
a r all commits / since last review
s unified or side by side
x X mark chunk read (and jump to the next) / the whole file
d o w diff / old / new file (with Shift: all files)

Threads and agents

Each thread has a Replies setting:

  • Claude: rever runs claude -p in the repository with read-only tools (Read, Grep, Glob, git log/show/diff/blame) and streams the answer into the thread. Each thread keeps its own Claude session, and follow-ups resume it. Use --claude / REVER_CLAUDE for a different binary and --model / REVER_MODEL to pick a model.
  • Any agent: the thread waits until an agent replies through the CLI.
  • Off: notes for yourself.

Agents (and you) use the same binary from inside the repository:

rever threads --waiting --json                  # threads queued for an agent
rever show t_2b7e                               # location, code context and messages
rever working t_2b7e --as codex -m "Checking the callers"   # shows you're on it; clears when you reply
rever reply t_2b7e --as codex -m "…"            # Markdown; ```mermaid blocks render as diagrams
rever diagram t_2b7e flow.mmd --as codex        # .mmd/.mermaid or .svg
rever comment internal/x.go:42 --as claude -m "…"   # start a thread
rever resolve t_2b7e

A Mermaid sequence diagram from Claude, opened full screen

Tasks

Each review has a task list in the side panel (Tasks tab). Agents add tasks and work through them from the top; you reorder them by dragging (or Alt+↑/↓), tick them off, edit them or delete them.

rever tasks                                     # open tasks, in your order (--all, --json)
rever task add "Cover n == max" --as claude -m "details" [--thread t_2b7e] [--top]
rever task start 3 --as claude -m "Writing check_test.go"   # run again to update the note
rever task done 3 --as claude -m "Added in a1b2c3d"
rever task todo|show|rm 3
rever task move 3 --to 1

Telling your agents about rever

rever instructions prints a short Markdown guide to the agent commands. Point your agents at it from ~/.claude/CLAUDE.md and ~/.codex/AGENTS.md (or a repository's own file):

## Code review (rever)
When the reviewer mentions rever, review threads or tasks, run `rever instructions` and follow it.

Or paste the guide in directly with rever instructions >> AGENTS.md.

Generated files

A file counts as generated, and is folded, when (first match wins):

  1. .gitattributes sets rever-generated; rever-generated=false always shows the file. This changes rever only, not GitHub.
  2. It's a file generators scaffold but people edit, such as gqlgen's *.resolvers.go. These are always shown, even when marked linguist-generated.
  3. .gitattributes sets linguist-generated.
  4. It's a lockfile (go.sum, pnpm-lock.yaml, Cargo.lock, …), has a Code generated … DO NOT EDIT or @generated header, or matches a common generated, mock, minified or vendored path.

Development

Go, Vue 3 + Vite and SQLite (sqlc + goose), built into a single binary. See CLAUDE.md for the layout and conventions.

make dev       # API on :4141, Vite on :5173
make test
make generate  # after changing SQL