A terminal code review tool where you and Claude review code together in real time.
You navigate diffs with vim keybindings. You add comments. In another terminal, Claude reads your comments and responds. acre hot-reloads and shows Claude's answers inline, right next to your questions.
Your review session is stored in .opencodereview.xml using the OpenCodeReview specification - a portable format designed for both humans and AI to read and edit. The file contains the diff, your comments, and Claude's responses. When either of you saves changes, acre reloads instantly.
cd acre
uv sync
uv run acreThat's it. acre reviews your uncommitted changes and creates .opencodereview.xml in your repo root.
acre # Review uncommitted changes (default)
acre --staged # Only staged changes
acre --branch main # Changes vs main branch
acre --commit abc123 # A specific commit
acre --pr 42 # GitHub PR (requires gh CLI)
acre --new # Start fresh, ignore existing sessionEverything auto-saves. Close acre, come back later, your comments and progress are still there.
acre speaks vim. If you know vim, you already know acre.
| Key | What it does |
|---|---|
j / k |
Scroll line by line |
Ctrl-d / Ctrl-u |
Half-page jumps |
Ctrl-f / Ctrl-b |
Full page jumps |
g / G |
Jump to top / bottom |
{ / } |
Previous / next file |
[ / ] |
Previous / next hunk |
n / N |
Next / previous comment |
| Key | What it does |
|---|---|
r |
Mark current file as reviewed |
c |
Add comment at cursor (or on selection) |
C |
Add file-level comment |
e |
Edit comment at cursor |
x |
Delete comment at cursor |
v |
Visual mode - select lines, then c to comment on range |
| Key | What it does |
|---|---|
p |
Toggle comment panel (see all comments) |
` |
Toggle LLM sidebar |
a |
Analyze current file with Claude |
Tab |
Toggle file panel |
q |
Quit |
When adding a comment, choose a category:
- NOTE - Observations, context, things to remember
- SUGGESTION - Ideas for improvement (not blocking)
- ISSUE - Problems that should be fixed
- PRAISE - Positive feedback (yes, this matters!)
Here's where acre gets interesting.
The .opencodereview.xml file is designed to be read and written by LLMs. It includes:
- Instructions for Claude on how to participate
- Diff context so Claude can see what changed
- Your comments with a place for Claude to respond
- Run
acreand add some comments - In another terminal:
cat .opencodereview.xml | claude "Review this and respond to my comments" - Claude edits the file, adding replies to your comments
- acre hot-reloads - Claude's responses appear inline!
Or just open the file in Claude Code and have a conversation about the code.
The .opencodereview.xml file uses the OpenCodeReview specification. Comments are stored as activities:
<activity>
<category>issue</category>
<content>Could this silently drop data?</content>
<author><name>Jane Developer</name><email>jane@example.com</email></author>
<location>
<file>src/api.py</file>
<lines><range><start>44</start><end>44</end></range></lines>
</location>
<replies>
<!-- Claude adds replies here -->
</replies>
</activity>Claude responds by adding a reply inside <replies>:
<replies>
<activity>
<category>note</category>
<content>Good catch. If item is None, transform() would fail...</content>
<author><type>agent</type><name>Claude</name><model>opus</model></author>
</activity>
</replies>The file also contains embedded instructions and the diff context, so Claude has everything needed to understand and respond to your comments.
Visual selection: Press v to enter visual mode, move to select lines, then c to comment on the range. Great for commenting on multi-line changes.
File-level comments: Press C (capital) to add a comment about the whole file, not a specific line.
Comment navigation: Use n/N to jump between comments. Works even for file-level comments at the top.
Hot reload: Edit .opencodereview.xml externally (with Claude, vim, whatever). acre picks up changes automatically.
Session persistence: Your session is tied to the diff source. acre --branch main and acre --staged maintain separate sessions.
git clone https://github.com/inferaldata/acre
cd acre/acre
uv sync
uv run acre- OpenCodeReview - Code review specification
- Textual - The TUI framework
- Rich - Terminal formatting
- Click - CLI interface
- PyYAML - Session persistence
- watchfiles - Hot reload
MIT
