EV can review the current state of your work or an exact piece of history. Choose the scope that matches the question you want the review to answer.

Run `ev review` without a scope option to choose interactively. Add `--desktop` to inspect and curate the result in Desktop, or `--stream --auto` for an agent-friendly automated run.

## Compare your work with its base branch

This is the usual choice for reviewing work before it is merged:

```sh
git fetch origin --quiet
ev review -b origin/main --desktop
```

`-b origin/main` finds the merge base between the current work and `origin/main`, then reviews the current workspace from that point. This captures the branch as a whole, including committed and local changes, without treating newer upstream commits as part of your work.

Replace `origin/main` with the remote and base branch your repository uses. Prefer a freshly fetched remote ref over a possibly stale local branch.

## Compare your work with an exact ref

Use `--from` when the ref itself—not its merge base—should be the starting point:

```sh
ev review --from origin/release --desktop
```

This compares the current workspace, including committed and local changes, directly with `origin/release`.

## Review only uncommitted changes

Use working-copy mode for a focused pass over changes since `HEAD`:

```sh
ev review --working-copy --desktop
```

This deliberately excludes earlier commits on the branch.

## Review a commit or committed range

Review one commit against its parent:

```sh
ev review --commit 4f31c2a --desktop
```

Or review an exact committed range:

```sh
ev review --from HEAD~5 --to HEAD --desktop
```

An exact range does not include local, uncommitted changes.

Git and jj revision syntax are both supported. For example, a jj repository can use `ev review --commit @~3`.

## Supply a diff

EV can read a unified diff produced by another tool:

```sh
git diff HEAD~5..HEAD -- '*.ts' | ev review --stdin --stream --auto
```

Prefer EV's branch, ref, commit, or range options when possible. They let EV derive the diff and retain the intended VCS scope. Use `--stdin` when another system already owns diff generation or when its filtering cannot be expressed with EV's scope options.

With a supplied diff, you are responsible for generating the correct content. An empty input fails instead of creating an empty review.

## Narrow the review

Scope options choose the underlying change. These options then control how EV reviews it:

| Option | Purpose |
| --- | --- |
| `--include "src/**"` | Review only matching paths |
| `--exclude "**/*.generated.ts"` | Skip matching paths |
| `--skill security-audit` | Run a specific review skill |
| `--auto` | Select skills from the changed files |
| `--instructions "Focus on auth"` | Add guidance for the reviewer |

For example:

```sh
ev review -b origin/main --stream --auto --exclude '**/*.generated.ts'
```
