Turn a diff into a review checklist.
LaReview turns a PR or unified diff into a task tree so you can review changes in a deliberate order instead of scrolling. It’s local-first: state in SQLite, PR fetch via gh, and plan generation via an ACP agent you run.
demo.mp4
LaReview is designed for a local-first, secure, and focused review experience.
- Input
- Paste a unified diff, or
- Paste a GitHub PR reference:
owner/repo#123or a PR URL
- Fetch (for PRs)
- LaReview uses the GitHub CLI (
gh) locally
- LaReview uses the GitHub CLI (
- Generate a review plan
- The review plan is generated by an AI agent you run via ACP (Agent Client Protocol)
- Review
- Work task-by-task, add notes, track status, and optionally clean completed tasks
Claude |
Codex |
Gemini |
Grok |
Kimi |
Mistral |
OpenCode |
Qwen |
|---|
- Rust nightly (see
rust-toolchain.toml) - GitHub CLI if you want to load PRs:
- Install:
brew install gh(or your OS package manager) - Auth:
gh auth login
- Install:
- D2 (optional): For visual diagram rendering. Install:
brew install d2(or see d2lang.com) - ACP agent configured on your machine
Note
LaReview does not require a custom LaReview server. Your PR data is fetched locally via gh, and plan generation runs via your chosen ACP agent.
- Go to the Releases page and download the latest binary for your operating system.
- Follow the instructions for your OS below.
Download the lareview-macos-*.zip asset and unzip it. You should see LaReview.app.
- Drag
LaReview.appinto/Applications. - If macOS blocks it on first run, open System Settings → Privacy & Security and allow it.
- Download the
lareview-linux.tar.gzfile and extract it.tar -xzvf lareview-linux.tar.gz
- Make the binary executable and move it to your path.
chmod +x ./lareview mv ./lareview /usr/local/bin/lareview
- Download the
lareview-windows.zipfile and unzip it. - Place the
lareview.exefile in a directory that is included in your system'sPATHenvironment variable.
cargo runscripts/build_macos_app.sh# Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y libxkbcommon-dev libxkbcommon-x11-dev-
Start the app:
cargo run
-
Open GENERATE
- Paste a unified diff, or a GitHub PR like
owner/repo#123(or a PR URL)
- Paste a unified diff, or a GitHub PR like
-
Pick an agent and click generate
-
Switch to REVIEW
- Work through tasks, add notes, and track status
Tip
If PR loading fails, run gh auth status and then gh auth login.
Input:
owner/repo#123- or
https://github.com/owner/repo/pull/123
Paste a unified diff directly:
diff --git a/src/lib.rs b/src/lib.rs
index 123..456 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,3 +1,8 @@
+pub fn example() {
+ // ...
+}LaReview stores review state locally.
-
macOS DB:
~/Library/Application Support/LaReview/db.sqlite -
Windows DB:
%APPDATA%\LaReview\db.sqliteor%LOCALAPPDATA%\puemos\LaReview\db.sqlite -
Linux DB:
$XDG_DATA_HOME/lareview/db.sqliteor~/.local/share/lareview/db.sqlite -
Override DB path:
LAREVIEW_DB_PATH=/path/to/db.sqlite <RUN_COMMAND>
Executable discovery (GUI apps can start with a minimal PATH):
- LaReview hydrates PATH from your login shell when launched outside a terminal (macOS/Linux). Restart after shell PATH changes.
- You can override individual agent executables in Settings → Agent Settings.
Wipe local state:
- Delete the DB file listed above.
Paste a diff (or PR), pick an agent, and generate a plan. While the agent runs, you get a timeline of what’s happening.
The review plan is shown as a tree: Intent → Sub-flows → Tasks. Selecting a task shows details plus a unified diff viewer for related hunks. Add notes and mark progress.
Use Clean done to remove completed tasks (and their notes) for the current review.
Link local Git repositories to give the AI agent deep context. Once linked, the agent can use tools to search through your codebase and list files, enabling it to understand the wider impact of changes.
Generate a Markdown summary of your review, including stats, metadata, task details, and diagrams. You can preview and edit the Markdown before saving it to a file.
- DX: review flows, not file lists
- Local-first state: tasks, notes, and status stored locally in SQLite
- Security / trust model: no server in the middle; processing happens through
ghand your ACP agent - Fits your setup: use ACP instead of a new agent runtime; use
ghinstead of forcing new integrations
- Status: ALPHA
- Known limitations:
- Complex nested diff structures might require manual confirmation in some agents.
- Roadmap:
- Sync comments with GitHub
- Support for repo search
- Support more ACP agents
-
Toolchain: nightly Rust with
rustfmtandclippycomponents (edition 2024; seerust-toolchain.toml) -
Run the app:
cargo run -
Reset/seed sample data:
cargo run --bin reset_dbcargo run --bin seed_db
-
Checks:
cargo fmt -- --checkcargo clippy --all-targets --all-features -- -D warningscargo test
-
Tests:
- Unit tests: Located alongside modules in
src/(usually astests.rs) - Integration tests: Located in the root
tests/directory - Run all tests:
cargo test
- Unit tests: Located alongside modules in
-
Supply chain:
cargo deny check(used in scheduled CI)
- Docs index: docs/README.md
- Architecture overview: docs/ARCHITECTURE.md
- Development guide: docs/DEVELOPMENT.md
Please read CONTRIBUTING.md before submitting a PR.
See SECURITY.md for reporting vulnerabilities.
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
At your option.







