> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plannotator.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Review local code changes

> Open a browser review for local Git, GitButler, Jujutsu, or Perforce changes and send line-specific feedback to your coding agent.

Run a local review from your coding agent:

```text theme={null}
/plannotator-review
```

Or start the same review from a terminal:

```bash theme={null}
plannotator review
```

Plannotator detects the repository and opens the diff in your browser. When an agent starts the command, it captures your submitted annotations. When you start the command directly, Plannotator prints the result in the terminal. The available comparison modes depend on the source-control system.

## Git reviews start with everything since the base branch

In a Git repository, the default **All changes** view uses Plannotator's `since-base` comparison. Plannotator compares the merge base of your branch and its base branch with the current working tree.

This comparison approximates the change that a pull request would contain if you committed and pushed now. It includes:

* Commits on your branch
* Staged and unstaged changes
* Untracked files

Plannotator tries the repository's default branch first, then common `main` and `master` references. If it cannot resolve a base branch, it opens the uncommitted changes instead. This fallback avoids hiding committed work behind an invalid comparison.

Use the comparison picker to review only uncommitted, staged, or unstaged changes, the last commit, a specific commit, all files at `HEAD`, or committed branch changes. The base picker can compare against another local or remote reference.

The **Git status** panel groups committed changes, working-tree changes, and untracked files in the default All changes view. Staging controls and the commit-history rail are available only for ordinary local Git reviews.

### Large untracked files

Plannotator loads and diffs an untracked text file only when it is 5 MiB or smaller. A larger untracked file appears as a binary addition, and its full content is not available in the review. This limit prevents a single generated or data file from consuming the review session.

## Choose the source-control provider

Plannotator uses the nearest supported repository root. When a folder contains nested Git, GitButler, or Jujutsu repositories, it can show their workspace changes together with repository-prefixed paths.

| Provider | Default view | Important boundaries |
| - | - | - |
| Git | All changes (`since-base`) | Supports staging controls, Git status groups, commit history, base selection, and stale-diff checks. |
| GitButler | Workspace | Requires `but` 0.21.0 or newer. Stack and Branch views are committed-only. Git staging, commit history, and base-fetch controls are unavailable. |
| Jujutsu | Current | Uses Jujutsu revisions rather than the Git index. No stage or unstage controls. |
| Perforce | Default changelist | Shows opened text files from the default or a numbered pending changelist. Binary opened files are skipped. No staging controls or nested-repository aggregation. |

### Force Git or GitButler

Use a flag when you need to choose explicitly:

```bash theme={null}
plannotator review --gitbutler
plannotator review --git
```

Automatic detection opens **Workspace**, which includes all applied committed work, working-tree changes, and untracked files. `--gitbutler` fails clearly if `but` is missing or older than v0.21.0; it does not silently fall back to Git.

See [Review GitButler Workspaces, Stacks, and Branches](/open-source/workflows/gitbutler) for the exact detection rules, committed-only views, session limits, escape hatches, annotations, agent reviews, and troubleshooting.

### Review Jujutsu changes

Plannotator detects a Jujutsu workspace through the installed `jj` command. The comparison picker offers:

* **Current** for `@` compared with its parent
* **Last** for the previous change
* **Line** for the current line of work back to the selected target
* **Evolution** for the current change compared with an older evolution entry
* **All** for the repository root through `@`

Line mode can target local or remote bookmarks. Plannotator does not expose a separate `--jj` flag.

### Review Perforce changelists

Plannotator detects Perforce after Git by running `p4 info` and reading the current client root. The default view contains files opened in the default changelist. Use the comparison picker to open another pending numbered changelist owned by the current user and client.

Perforce support is available in Plannotator's main CLI-backed agent setups. The Pi extension's review server does not provide a Perforce provider.

## Annotate and return the review

Select changed lines to add comments, quick labels, deletion requests, or an approval mark. **Send Feedback** produces structured file and line references. **Approve** produces the configured code-review approval prompt. The agent that opened Plannotator captures that output; a direct terminal launch prints it.

See [Customize Feedback](/open-source/reference/custom-feedback#code-review-feedback) to change the approval message or the instructions appended after submitted findings.

For a GitHub pull request or GitLab merge request, use a URL instead. See [Review pull requests and merge requests](/open-source/workflows/pull-requests).

Last verified against Plannotator OSS v0.25.0 on July 27, 2026. Maintained by the Plannotator project.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.