---
last_edited: 2026-09-17
---
[](https://go.dev/)
[](https://opensource.org/licenses/MIT)
[](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.

## 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

- **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`.

## 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