--- last_edited: 2026-09-17 --- roborev [![Go](https://img.shields.io/badge/Go-1.27.0+-00ADD8?logo=go&logoColor=white)](https://go.dev/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Docs](https://img.shields.io/badge/Docs-roborev.io-blue)](https://roborev.io) **[Documentation](https://roborev.io/docs/)** | **[Quick Start](https://roborev.io/docs/quickstart/)** | **[Installation](https://roborev.io/docs/installation/)** Continuous code review for AI coding agents. roborev runs in the background, reviews every commit as agents write code, and surfaces issues in seconds -- before they compound. Pull code reviews into your agentic loop while context is fresh. ![Roborev browser application](https://roborev.io/docs/assets/generated/web-ui.png) ## How It Works 1. Run `roborev init` to install a post-commit hook 2. Every commit triggers a background review -- agents write, roborev reads 3. View findings in the TUI, feed them to your agent, or let `roborev fix` handle it ### Automation, two layers ![How roborev works](https://roborev.io/docs/assets/static/how-it-works.svg) - **Post-commit reviews** - a git hook reviews every commit in the background (any agent). - **Agent hook** - watches supported coding-agent sessions and brings open roborev findings back into the active workflow. ```bash roborev init # layer 1: per-commit reviews roborev agent-hook install # layer 2: wire agents and bundled skills roborev agent-hook install --agent all # or wire every supported profile ``` Before you ship, run the `/roborev-refine` skill: it re-reviews and fixes your whole branch until every review passes, catching bugs before the PR. New here? Run `roborev quickstart` and point your agent at it. ## Quick Start ```bash cd your-repo roborev init # Install post-commit hook git commit -m "..." # Reviews happen automatically roborev tui # View reviews in interactive UI roborev ui # Open reviews in the native browser UI ``` If roborev is managed by a version manager, `roborev init` and `roborev agent-hook install` try to install hooks with the stable shim/symlink. You can also choose the exact binary path with `roborev init --binary ~/.local/share/mise/shims/roborev`, or `roborev agent-hook install --binary ~/.local/share/mise/shims/roborev`. ![roborev review](https://roborev.io/docs/assets/generated/tui-review.svg) ## Features - **Background Reviews** - Every commit is reviewed automatically via git hooks. No remote review workflow required. - **Auto-Fix** - `roborev fix` feeds review findings to an agent that applies fixes and commits. `roborev refine` iterates until reviews pass. - **Agent Hook** - Optional hooks for Claude Code, Codex, Copilot CLI, Cursor, Factory Droid, Gemini CLI, Hermes, and Qwen bring open findings back into the active agent session. - **Code Analysis** - Built-in analysis types (duplication, complexity, refactoring, test fixtures, dead code, security) that agents can fix automatically. - **Multi-Agent** - Works with Codex, Claude Code, Gemini, Copilot, OpenCode, Cursor, Kiro, Kilo, Droid, and Pi. - **Runs Locally** - No hosted service or additional infrastructure. Reviews are orchestrated on your machine using the coding agents you already have configured. - **Interactive TUI** - Real-time review queue with vim-style navigation. Large terminals show the queue and selected review in a split-screen layout. - **Native Browser UI** - Browse, filter, inspect, comment on, close, cancel, and rerun reviews from the application embedded in the local daemon, then explore cost, latency, reliability, and outcomes in Analytics. - **Review Verification** - `roborev compact` verifies findings against current code, filters false positives, and consolidates related issues into a single review. - **Review History Search** - Search completed reviews across repositories by keyword or meaning. Lexical search stays local and needs no embedding provider; semantic and hybrid modes are optional. - **Extensible Hooks** - Run shell commands on review events. Built-in [beads](https://github.com/steveyegge/beads) and [kata](https://github.com/kenn-io/kata) integrations create trackable issues from review failures automatically. ## The Agentic Fix Loop When reviews find issues, copy-and-paste the reviews into your interactive agent sessions, or invoke `/roborev-fix` in Claude Code or `$roborev-fix` in Codex. You can also address open reviews on the command line non-interactively with `roborev fix`. `roborev fix` shows the review findings to an agent, which applies changes and commits. The new commit gets reviewed automatically, closing the loop. `roborev agent-hook install` auto-detects installed Claude Code, Codex, Copilot CLI, Cursor, Factory Droid, Gemini CLI, Hermes, Qwen, and Grok Build harnesses and adds optional hooks after configured turn, commit, or failed-review thresholds are met. Reminders name exact review IDs, invoke the bundled `roborev-fix` skill, and never run `roborev fix --open`. Hook installation updates bundled skills for every supported profile. Hermes delivers queued post-tool reminders at `Stop`; Cursor records the same events but emits no control response. Installed hooks post events to the regular roborev daemon. That daemon evaluates the reminders and persists session counters and delivered review IDs in `${ROBOREV_DATA_DIR:-~/.roborev}/agent-hook/state.json`. Hook callbacks fail open when the daemon is unavailable, so they do not block the coding agent. For fully automated iteration (advanced feature), use `refine`: ```bash roborev refine # Fix, re-review, repeat until passing roborev refine --plan # Plan each fix before editing roborev refine --plan-only # Inspect plans for existing failed reviews ``` `refine` runs in an isolated worktree and loops: fix findings, wait for re-review, fix again, until all reviews pass or `--max-iterations` is hit. ## Code Analysis Run targeted analysis across your codebase and optionally auto-fix: ```bash roborev analyze duplication ./... # Find duplication roborev analyze refactor --fix *.go # Suggest and apply refactors roborev analyze complexity --wait main.go # Analyze and show results roborev analyze test-fixtures *_test.go # Find test helper opportunities roborev analyze security ./... # Find security risks in existing code ``` Available types: `test-fixtures`, `duplication`, `refactor`, `complexity`, `api-design`, `dead-code`, `architecture`, `security`. Analysis jobs appear in the review queue. Use `roborev fix` to apply open findings later, target a specific job with `roborev fix `, or pass `--fix` to apply immediately. Analysis types can pin their own agent settings in config: ```toml [analyze.refactor] agent = "claude-code" model = "sonnet" reasoning = "fast" ``` ## Installation **Shell Script (macOS / Linux):** ```bash curl -fsSL https://roborev.io/install.sh | bash ``` **Homebrew (macOS / Linux):** ```bash brew install kenn-io/tap/roborev ``` **Windows (PowerShell):** ```powershell powershell -ExecutionPolicy ByPass -c "irm https://roborev.io/install.ps1 | iex" ``` **With Go:** ```bash go install go.kenn.io/roborev/cmd/roborev@latest ``` The Go module source archive does not include generated browser assets. This installation path provides the CLI and terminal UI; install a release package or build with `make install` for the embedded browser application. ## Developer Setup This repo uses [`prek`](https://prek.j178.dev/) for local Git hooks. Commits run only the Renovate config validator and actionlint, and only when `renovate.json` or a workflow file changes. The whole-repo checks run on push: a Git-test isolation guard, `make lint-ci` for non-mutating Go lint, `make markdown-ci` for Zensical Markdown formatting, and the web check and test scripts when web files change. If you installed the hooks before, rerun `prek install` to add the pre-push hook. ```bash brew install prek uv # or use your preferred install method mise use --global npm:renovate@latest prek install # install the pre-commit and pre-push hooks prek run --all-files --hook-stage pre-push # run the push checks manually ``` Use `make lint` when you explicitly want golangci-lint to apply fixes. Use `make markdown` to wrap prose in published Zensical pages at 80 columns while leaving Markdown tables unchanged. Use `make check-renovate-config` to validate `renovate.json` directly. ## Commands | Command | Description | |---------|-------------| | `roborev init` | Initialize roborev in current repo | | `roborev tui` | Interactive terminal UI | | `roborev daemon status` | Show daemon, browser UI, and queue status | | `roborev status` | Backward-compatible status alias | | `roborev review ` | Queue a commit for review | | `roborev review --branch` | Review all commits on current branch | | `roborev review --dirty` | Review uncommitted changes | | `roborev fix` | Fix open reviews (or specify job IDs) | | `roborev refine` | Auto-fix loop: fix, re-review, repeat | | `roborev analyze ` | Run code analysis with optional auto-fix | | `roborev agent-hook install` | Install hooks for detected coding agents | | `roborev agent-hook install --agent all` | Install all nine supported integrations | | `roborev snooze` | Silence Agent Hook reminders in the current worktree and branch | | `roborev snooze off` | Resume Agent Hook reminders in the current worktree and branch | | `roborev compact` | Verify and consolidate open review findings | | `roborev show [sha]` | Display review for commit | | `roborev search ...` | Search completed review history across repositories | | `roborev export reviews` | Export completed reviews as JSON | | `roborev export ci-metrics` | Export finalized CI panel metrics as JSON | | `roborev export ci-costs` | Export job-level CI costs as JSON | | `roborev run ""` | Execute a task with an AI agent | | `roborev close ` | Close a review | | `roborev skills install` | Install bundled skills for supported agent profiles | See [full command reference](https://roborev.io/docs/commands/) for all options. Review history search is global by default and supports repository, branch, time, verdict, and open/closed filters. Lexical search works with no provider configuration or network call. See the [search guide](https://roborev.io/docs/search/) for semantic and hybrid setup, freshness, privacy, and recovery behavior. ### Exporting review history Use `roborev export reviews` to emit completed reviews as one JSON document for local reporting or archival workflows: ```bash roborev export reviews roborev export reviews --profile metadata --since 2026-06-01 --until 2026-06-30 roborev export reviews --closed-only --repo github.com/org/repo --limit 1000 roborev export reviews --cursor "$NEXT_CURSOR" --until 2026-07-01 ``` The default `content` profile includes each review twice: `document` is the stored JSON review document with the summary, verdict, and findings, and `content` is the Markdown rendering of it. Review text may contain sensitive repository details, so handle exported files carefully. Use `--profile metadata` when you only need identifiers, timestamps, verdicts, cost metadata, and related review metadata. Exports include a stable `database_id` for the local review database and, when at least one review is emitted, an opaque `next_cursor`. Pass `--cursor ` to resume after the previous page; `--cursor` cannot be combined with `--since`. If a cursor belongs to a previous database generation, `roborev export reviews` exits with code `3`; discard the cursor and retry with a window backfill. Other cursor rejections also require discarding the cursor before backfilling. Each exported review reports `closed` and `updated_at`. Closing or reopening a review does not move it past a `completed_at` cursor, so combine the cursor pull with `roborev export reviews --updated-since