{"id":34783260,"url":"https://github.com/puemos/lareview","last_synced_at":"2026-02-09T17:06:59.092Z","repository":{"id":328923722,"uuid":"1102691456","full_name":"puemos/lareview","owner":"puemos","description":"The code review workbench.","archived":false,"fork":false,"pushed_at":"2026-02-03T13:35:09.000Z","size":80804,"stargazers_count":40,"open_issues_count":1,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-04T02:09:09.452Z","etag":null,"topics":["agent-client-protocol","code-review","pull-requests","rust"],"latest_commit_sha":null,"homepage":"https://lareview.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/puemos.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-23T22:44:43.000Z","updated_at":"2026-02-03T13:37:02.000Z","dependencies_parsed_at":"2026-02-03T14:07:36.426Z","dependency_job_id":null,"html_url":"https://github.com/puemos/lareview","commit_stats":null,"previous_names":["puemos/lareview"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/puemos/lareview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Flareview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Flareview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Flareview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Flareview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/puemos","download_url":"https://codeload.github.com/puemos/lareview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Flareview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29273152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T13:47:44.167Z","status":"ssl_error","status_checked_at":"2026-02-09T13:47:43.721Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-client-protocol","code-review","pull-requests","rust"],"created_at":"2025-12-25T08:58:25.028Z","updated_at":"2026-02-09T17:06:59.048Z","avatar_url":"https://github.com/puemos.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://lareview.dev\"\u003e\n    \u003cpicture\u003e\n      \u003cimg src=\"assets/logo/512-mac.png\" alt=\"LaReview logo\" width=\"90\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eLa Review\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\u003cb\u003eThe Code Review Workbench.\u003c/b\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/puemos/lareview/actions/workflows/ci.yml\"\u003e\u003cimg alt=\"Build\" src=\"https://img.shields.io/github/actions/workflow/status/puemos/lareview/ci.yml?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/puemos/lareview/releases\"\u003e\u003cimg alt=\"Release\" src=\"https://img.shields.io/github/v/release/puemos/lareview?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-blue?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.rust-lang.org\"\u003e\u003cimg alt=\"Rust\" src=\"https://img.shields.io/badge/rust-nightly-orange?style=flat-square\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n[![LaReview hero screenshot](assets/screenshots/review.webp)](assets/screenshots/review.webp)\n\n---\n\nLaReview is a **dev-first code review workbench** for complex changes. It turns a PR or diff into a structured review plan, grouped by flows and ordered by risk, so you can review with depth and understanding.\n\nUnlike auto-review bots that post comment spam, LaReview is a local-first tool that works with your existing AI coding agent to help you ship high-signal feedback.\n\n## Demo\n\nhttps://github.com/user-attachments/assets/28abaf1e-9100-4484-b6a5-18d8dfec427e\n\n## Key Features\n\nLaReview is designed for a local-first, secure, and focused review experience.\n\n| Screenshot                                                                                    | Feature                                                                                                                                                                                                                   |\n| :-------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| \u003cimg src=\"assets/screenshots/generate.webp\" width=\"400\" alt=\"Plan Generation View\" /\u003e         | **AI-Powered Planning**\u003cbr\u003eInput a PR (GitHub/GitLab) or diff. LaReview acts as a staff engineer, looking for flows (e.g. auth, api) and risks to build a structured review plan.                                         |\n| \u003cimg src=\"assets/screenshots/review.webp\" width=\"400\" alt=\"Review Summary View\" /\u003e             | **Review Summary**\u003cbr\u003eGet a bird's-eye view of your review with Issue Checklist, Feedback items, Review Tasks grouped by flow, and a Files Heatmap showing risk distribution.                                             |\n| \u003cimg src=\"assets/screenshots/review-changes.webp\" width=\"400\" alt=\"Structured Review Tree\" /\u003e | **Structured Task Tree**\u003cbr\u003eNavigate the review as a hierarchical tree. Mark tasks as **To Do**, **In Progress**, or **Done**. Attach contextual notes to specific tasks or lines of code to keep track of your thoughts. |\n| \u003cimg src=\"assets/screenshots/review-changes.webp\" width=\"400\" alt=\"Task-focused Diff\" /\u003e      | **Task-Focused Diffs**\u003cbr\u003eReview one logical concern at a time. The workbench isolates relevant code hunks for each task, eliminating noise.                                                                              |\n| \u003cimg src=\"assets/screenshots/review-feedback-item.webp\" width=\"400\" alt=\"Feedback Items\" /\u003e   | **High-Signal Framework**\u003cbr\u003eThe AI proactively identifies bugs and authenticates them against your rules. No comment spam—just focused feedback threads anchored to specific lines.                                      |\n| \u003cimg src=\"assets/screenshots/repos.webp\" width=\"400\" alt=\"Linked Repositories\" /\u003e             | **Local Context (Zero Data Leaks)**\u003cbr\u003eLink local Git repos to give the agent full access to search your codebase. Works with your existing AI coding agent (Claude, etc) and keeps data on your machine.                 |\n| \u003cimg src=\"assets/screenshots/review-diagram.webp\" width=\"400\" alt=\"Diagram Viewer\" /\u003e         | **Visual Diagrams**\u003cbr\u003eVisualize the flow. Automatically generate diagrams to see architectural changes before you read a single line of code. (Requires D2).                                                             |\n| \u003cimg src=\"assets/screenshots/rules.webp\" width=\"400\" alt=\"Rules View\" /\u003e                      | **Team Rules**\u003cbr\u003eDefine rules like \"DB queries must have timeouts\" or \"API changes need a migration note\" to enforce standards automatically.                                                                            |\n| \u003cimg src=\"assets/screenshots/learnings.webp\" width=\"400\" alt=\"Learning Patterns View\" /\u003e      | **Learning Patterns**\u003cbr\u003eThe AI learns from rejected feedback. Mark suggestions as \"ignored\" during reviews, then analyze rejections to discover patterns that calibrate future reviews—fewer nitpicks, more signal.      |\n| \u003cimg src=\"assets/screenshots/export-github.webp\" width=\"400\" alt=\"GitHub Sync\" /\u003e             | **Git Host Sync**\u003cbr\u003eSubmit your review feedback directly to GitHub or GitLab PRs with automatic summary generation.                                                                                                      |\n| \u003cimg src=\"assets/screenshots/export-github.webp\" width=\"400\" alt=\"Export \u0026 Share\" /\u003e          | **Export \u0026 Share**\u003cbr\u003eExport your review summary to Markdown with diagrams and code insights. Copy to clipboard or save to file.                                                                                          |\n| \u003cimg src=\"assets/screenshots/generate.webp\" width=\"400\" alt=\"CLI Support\" /\u003e                  | **CLI Support**\u003cbr\u003eLaunch reviews from the terminal: `lareview`, `lareview pr owner/repo#123`, `git diff \u0026#124; lareview`, or `lareview --agent claude`.                                                                  |\n\n## How it works\n\n1. **Input**\n   - Run `lareview` from terminal (opens GUI with current repo linked), or\n   - Paste a unified diff, or\n   - Paste a code review link from GitHub or GitLab, or a PR URL\n2. **Fetch (for PRs)**\n   - LaReview fetches the change locally and prepares the review workspace. No intermediate servers.\n3. **Generate a review plan**\n   - AI generates a review plan grouped by flows and ordered by risk. You can customize the agent (Claude, OpenAI, etc).\n4. **Review**\n   - Review task by task with your AI coding agent.\n   - Ship focused feedback that authors can act on, without comment spam.\n\n## Terminal Workflow\n\nLaReview includes a CLI that integrates naturally into your developer workflow:\n\n```bash\n# Open GUI with current repository linked\nlareview\n\n# Review changes between branches\nlareview main feature\n\n# Pipe a diff directly to the GUI\ngit diff HEAD | lareview\n\n# Review a GitHub/GitLab PR\nlareview pr owner/repo#123\n\n# Specify an agent\nlareview --agent claude\n```\n\nThe CLI launches the GUI in the background and passes your diff/repo info seamlessly.\n\n## Supported Agents\n\n| \u003cimg src=\"assets/icons/claude.svg\" width=\"40\"\u003e\u003cbr\u003eClaude | \u003cimg src=\"assets/icons/codex.svg\" width=\"40\"\u003e\u003cbr\u003eCodex | \u003cimg src=\"assets/icons/gemini.svg\" width=\"40\"\u003e\u003cbr\u003eGemini | \u003cimg src=\"assets/icons/grok.svg\" width=\"40\"\u003e\u003cbr\u003eGrok | \u003cimg src=\"assets/icons/kimi.svg\" width=\"40\"\u003e\u003cbr\u003eKimi | \u003cimg src=\"assets/icons/mistral.svg\" width=\"40\"\u003e\u003cbr\u003eMistral | \u003cimg src=\"assets/icons/opencode.svg\" width=\"40\"\u003e\u003cbr\u003eOpenCode | \u003cimg src=\"assets/icons/qwen.svg\" width=\"40\"\u003e\u003cbr\u003eQwen |\n| :------------------------------------------------------: | :----------------------------------------------------: | :------------------------------------------------------: | :--------------------------------------------------: | :--------------------------------------------------: | :--------------------------------------------------------: | :----------------------------------------------------------: | :--------------------------------------------------: |\n\n## Requirements\n\n- **Rust nightly** (see `rust-toolchain.toml`)\n- **GitHub CLI** (optional):\n  - Install: `brew install gh` (or your OS package manager)\n  - Auth: `gh auth login`\n- **GitLab CLI** (optional):\n  - Install: `brew install glab` (or your OS package manager)\n  - Auth: `glab auth login`\n- **D2** (optional): For visual diagram rendering. Install: `brew install d2` (or see [d2lang.com](https://d2lang.com/install))\n- **AI agent** configured on your machine\n  - Learn more: https://agentclientprotocol.com/overview/introduction\n\n\u003e [!NOTE]\n\u003e LaReview does not require a custom LaReview server. Your PR data is fetched locally via `gh` or `glab`, and plan generation runs via your chosen AI agent.\n\n## Installation\n\n### Option A: Homebrew (Recommended)\n\nInstall LaReview via Homebrew with a single command:\n\n#### macOS\n\n```bash\n# First, tap the repository\nbrew tap puemos/tap\n# Then install\nbrew install --cask lareview\n```\n\n#### Linux\n\n```bash\nbrew install puemos/tap/lareview\n```\n\n### Option B: Download a release\n\n1. Go to the [Releases page](https://github.com/puemos/lareview/releases) and download the latest binary for your operating system.\n2. Follow the instructions for your OS below.\n\n#### macOS\n\n1. Download the `lareview-macos-*.zip` asset and unzip it. You should see `LaReview.app`.\n2. Drag `LaReview.app` into `/Applications`.\n3. If macOS blocks it on first run, open **System Settings → Privacy \u0026 Security** and allow it.\n4. To use from terminal, add to PATH (or use the **CLI Installation** button in Settings):\n   ```bash\n   echo 'export PATH=\"$PATH:/Applications/LaReview.app/Contents/MacOS\"' \u003e\u003e ~/.zshrc\n   ```\n\n#### Linux\n\n1.  Install required dependencies:\n    ```sh\n    # Debian/Ubuntu\n    sudo apt-get update\n    sudo apt-get install -y \\\n      libwebkit2gtk-4.1-0 \\\n      libappindicator3-1 \\\n      librsvg2-2 \\\n      libxdo3\n\n    # For other distros, install equivalent WebKit2GTK 4.1 packages\n    ```\n\n2.  Download the `lareview-linux.tar.gz` file and extract it.\n    ```sh\n    tar -xzvf lareview-linux.tar.gz\n    ```\n\n3.  Make the binary executable and move it to your path.\n    ```sh\n    chmod +x ./lareview\n    sudo mv ./lareview /usr/local/bin/lareview\n    ```\n\n#### WSL (Windows Subsystem for Linux)\n\nLaReview runs natively inside WSL2 as a Linux app. Follow the Linux installation steps above (including dependency installation).\n\n**Optional:** For better Windows integration (opening URLs in your Windows browser), install the [wslu](https://github.com/wslutilities/wslu) package:\n\n```bash\n# Ubuntu/Debian\nsudo apt install wslu\n\n# Other distros: see https://wslutiliti.es/wslu/install.html\n```\n\nIf `wslu` is not installed, LaReview will fall back to using `cmd.exe` for opening URLs.\n\n### Option C: One-click CLI installation\n\nLaunch LaReview and go to **Settings → CLI Installation** for a one-click setup to add `lareview` to your PATH.\n\n### Option D: Run from source\n\n```bash\ncargo run\n```\n\n### Option E: Build a local macOS .app (dev)\n\n```bash\nscripts/build_macos_app.sh\n```\n\n#### Linux dependencies\n\n```bash\n# Debian/Ubuntu\nsudo apt-get update\nsudo apt-get install -y libxkbcommon-dev libxkbcommon-x11-dev\n```\n\n## Quickstart\n\n1. Start the app:\n\n   ```bash\n   lareview  # From terminal with repo linked\n   # OR\n   cargo run  # From source\n   ```\n\n2. Open **GENERATE**\n   - Paste a unified diff, or a GitHub/GitLab PR like `owner/repo#123` (or a PR URL)\n   - Or use the terminal: `lareview pr owner/repo#123`\n3. Pick an agent and click generate\n4. Switch to **REVIEW**\n   - Work through tasks, add notes, and track status\n\n\u003e [!TIP]\n\u003e If PR loading fails, run `gh auth status` or `glab auth status` and then login.\n\n## Usage examples\n\n### Review a GitHub/GitLab PR\n\nInput:\n\n- `owner/repo#123`\n- `https://github.com/owner/repo/pull/123`\n- `https://gitlab.com/owner/repo/-/merge_requests/123`\n\n### Review a unified diff\n\nPaste a unified diff directly:\n\n```diff\ndiff --git a/src/lib.rs b/src/lib.rs\nindex 123..456 100644\n--- a/src/lib.rs\n+++ b/src/lib.rs\n@@ -1,3 +1,8 @@\n+pub fn example() {\n+  // ...\n+}\n```\n\n## Data, paths, and privacy\n\nLaReview stores review state locally.\n\n- macOS DB: `~/Library/Application Support/LaReview/db.sqlite`\n- Linux DB: `$XDG_DATA_HOME/lareview/db.sqlite` or `~/.local/share/lareview/db.sqlite`\n- Override DB path:\n\n  ```bash\n  LAREVIEW_DB_PATH=/path/to/db.sqlite \u003cRUN_COMMAND\u003e\n  ```\n\nExecutable discovery (GUI apps can start with a minimal PATH):\n\n- LaReview hydrates PATH from your login shell when launched outside a terminal (macOS/Linux). Restart after shell PATH changes.\n- You can override individual agent executables in **Settings → Agent Settings**.\n\nWipe local state:\n\n- Delete the DB file listed above.\n\n## Development\n\n- Toolchain: nightly Rust with `rustfmt` and `clippy` components (edition 2024; see `rust-toolchain.toml`)\n- Run the app: `cargo run`\n- Reset/seed sample data:\n\n  If you need more advanced control, use the CLI.\n\n  ### CLI Reference\n\n- Checks:\n  - `cargo fmt -- --check`\n  - `cargo clippy --all-targets --all-features -- -D warnings`\n  - `cargo test`\n\n- Logging:\n  - LaReview uses the `log` crate with `env_logger`.\n  - Set `RUST_LOG` to control log levels:\n    - `RUST_LOG=debug cargo run` - Full debug output\n    - `RUST_LOG=acp=debug cargo run` - ACP agent debug output only\n    - `RUST_LOG=error cargo run` - Errors only\n  - Logs appear in the terminal when running from source.\n\n- Tests:\n  - Unit tests: Located alongside modules in `src/` (usually as `tests.rs`)\n  - Integration tests: Located in the root `tests/` directory\n  - Run all tests: `cargo test`\n\n- Supply chain:\n  - `cargo deny check` (used in scheduled CI)\n\n## Docs\n\n- Docs index: [docs/README.md](docs/README.md)\n- Architecture overview: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)\n- Development guide: [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) before submitting a PR.\n\n## Security\n\nSee [SECURITY.md](SECURITY.md) for reporting vulnerabilities.\n\n## License\n\nLicensed under either of:\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))\n- MIT license ([LICENSE-MIT](LICENSE-MIT))\n\nAt your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuemos%2Flareview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpuemos%2Flareview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuemos%2Flareview/lists"}