https://github.com/cmpadden/pi-diff-review
Embedded code reviews directly directly within pi.
https://github.com/cmpadden/pi-diff-review
diff-viewer extension llm llm-tools llms pi review review-tools
Last synced: 9 days ago
JSON representation
Embedded code reviews directly directly within pi.
- Host: GitHub
- URL: https://github.com/cmpadden/pi-diff-review
- Owner: cmpadden
- License: mit
- Created: 2026-05-06T15:01:01.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-08T14:59:24.000Z (14 days ago)
- Last Synced: 2026-06-08T16:25:59.920Z (14 days ago)
- Topics: diff-viewer, extension, llm, llm-tools, llms, pi, review, review-tools
- Language: TypeScript
- Homepage: https://pi.dev/packages/pi-diff-review
- Size: 329 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README

# pi-diff-review
Embedded code reviews and AI summaries directly within [pi](https://pi.dev/).

## Install
Install from npm:
```bash
pi install npm:pi-diff-review
```
Or install directly from GitHub:
```bash
pi install https://github.com/cmpadden/pi-diff-review
```
For local development, clone the repository and install from the local path:
```bash
git clone https://github.com/cmpadden/pi-diff-review
pi install ./pi-diff-review
```
## Usage
Start a review with `/diff`. By default, this reviews your current unstaged changes:
```text
/diff
```
Review staged changes with `--cached`:
```text
/diff --cached
```
Review a branch or commit range by passing any `git diff` arguments after `/diff`:
```text
/diff main...HEAD
```
Review a single file by using a git pathspec after `--`. Pi path autocomplete works here too:
```text
/diff -- @src/index.ts
/diff --cached -- @src/index.ts
/diff main...HEAD -- @src/index.ts
```
`/diff ` is passed through to `git diff`, so these examples are equivalent to running `git diff`, `git diff --cached`, and `git diff main...HEAD` locally before opening the review UI.
Open one or more files or folders with `/view`:
```text
/view src/index.ts src/review
```
`/view` expands folders into text files, renders them in the same review UI, and lets you annotate actual code lines instead of diff hunks.
### Staged vs. unstaged changes
- `/diff` shows unstaged working-tree changes only.
- `/diff --cached` shows staged changes only.
- If you have both staged and unstaged edits, run both commands separately to review each set.
- To review everything relative to a base branch, use a range such as `/diff main...HEAD`.
## Features
- `/diff` reviews the current unstaged `git diff`
- `/view ` reviews source files directly
- `/diff --cached` reviews staged changes
- `/diff main...HEAD` reviews changes on the current branch relative to `main`
- `/diff ` passes arguments through to `git diff`
- `h` toggles the command help modal
- `j/k` or arrow keys to move
- `g/G` to jump to the top or bottom of the diff
- `[/]` to jump to the previous or next file
- `f` to focus the current file, or clear file focus
- `t` toggles the left file sidebar
- `ctrl-u` / `ctrl-d` to move up/down by half a page
- `s` toggles inline comments/explanations
- `v` toggles the diff between unified and side-by-side split rendering
- `?` toggles an AI-generated explanation for the current hunk
- `/` searches visible diff text, highlights matches, and `n/N` moves between them while a search is active
- `J/K` to extend a highlighted selection into a comment range
- `esc` clears the active selection, or exits review when no selection is active
- File headers break the review into per-file sections with change counts
- Optional left sidebar lists files with `+/-` counts and tracks the current file
- `n/p` to jump hunks
- `c` to add or edit a comment for the current line or selected range
- `C` to add or edit an overall diff comment
- `x` to delete a comment for the current line or selected range
- `Enter` to submit comments back to pi
- Comments are cached per session and restored when reopening the same diff or view
- File comments are also persisted in a repo-local workspace store and shown again in `/view` or on matching lines in `/diff`
- The UI indicates persisted comments that are hidden in the current files, elsewhere in the workspace, stale, or orphaned
- `q` to exit
## Contributing
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development and release instructions.