{"id":49731925,"url":"https://github.com/cmpadden/pi-diff-review","last_synced_at":"2026-06-14T02:02:05.497Z","repository":{"id":356086586,"uuid":"1231033969","full_name":"cmpadden/pi-diff-review","owner":"cmpadden","description":"Embedded code reviews directly directly within pi.","archived":false,"fork":false,"pushed_at":"2026-06-08T14:59:24.000Z","size":337,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-08T16:25:59.920Z","etag":null,"topics":["diff-viewer","extension","llm","llm-tools","llms","pi","review","review-tools"],"latest_commit_sha":null,"homepage":"https://pi.dev/packages/pi-diff-review","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cmpadden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-06T15:01:01.000Z","updated_at":"2026-06-08T14:59:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cmpadden/pi-diff-review","commit_stats":null,"previous_names":["cmpadden/pi-diff-review"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/cmpadden/pi-diff-review","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmpadden%2Fpi-diff-review","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmpadden%2Fpi-diff-review/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmpadden%2Fpi-diff-review/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmpadden%2Fpi-diff-review/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmpadden","download_url":"https://codeload.github.com/cmpadden/pi-diff-review/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmpadden%2Fpi-diff-review/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34306772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["diff-viewer","extension","llm","llm-tools","llms","pi","review","review-tools"],"created_at":"2026-05-09T06:37:58.075Z","updated_at":"2026-06-14T02:02:05.491Z","avatar_url":"https://github.com/cmpadden.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg width=\"1400\" height=\"225\" alt=\"pi-diff-review\" src=\"https://github.com/user-attachments/assets/049b2df9-ec38-4a9a-a824-8d682e77dae1\" /\u003e\n\n# pi-diff-review\n\nEmbedded code reviews and AI summaries directly within [pi](https://pi.dev/).\n\n\u003cimg width=\"1986\" height=\"1556\" alt=\"pi-diff-review-screenshot\" src=\"https://github.com/user-attachments/assets/5ddd7226-28d4-4617-8c5c-35b4b6af68dc\" /\u003e\n\n## Install\n\nInstall from npm:\n\n```bash\npi install npm:pi-diff-review\n```\n\nOr install directly from GitHub:\n\n```bash\npi install https://github.com/cmpadden/pi-diff-review\n```\n\nFor local development, clone the repository and install from the local path:\n\n```bash\ngit clone https://github.com/cmpadden/pi-diff-review\npi install ./pi-diff-review\n```\n\n## Usage\n\nStart a review with `/diff`. By default, this reviews your current unstaged changes:\n\n```text\n/diff\n```\n\nReview staged changes with `--cached`:\n\n```text\n/diff --cached\n```\n\nReview a branch or commit range by passing any `git diff` arguments after `/diff`:\n\n```text\n/diff main...HEAD\n```\n\nReview a single file by using a git pathspec after `--`. Pi path autocomplete works here too:\n\n```text\n/diff -- @src/index.ts\n/diff --cached -- @src/index.ts\n/diff main...HEAD -- @src/index.ts\n```\n\n`/diff \u003cgit-diff-args\u003e` 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.\n\nOpen one or more files or folders with `/view`:\n\n```text\n/view src/index.ts src/review\n```\n\n`/view` expands folders into text files, renders them in the same review UI, and lets you annotate actual code lines instead of diff hunks.\n\n### Staged vs. unstaged changes\n\n- `/diff` shows unstaged working-tree changes only.\n- `/diff --cached` shows staged changes only.\n- If you have both staged and unstaged edits, run both commands separately to review each set.\n- To review everything relative to a base branch, use a range such as `/diff main...HEAD`.\n\n## Features\n\n- `/diff` reviews the current unstaged `git diff`\n- `/view \u003cfiles-or-folders\u003e` reviews source files directly\n- `/diff --cached` reviews staged changes\n- `/diff main...HEAD` reviews changes on the current branch relative to `main`\n- `/diff \u003cgit-diff-args\u003e` passes arguments through to `git diff`\n- `h` toggles the command help modal\n- `j/k` or arrow keys to move\n- `g/G` to jump to the top or bottom of the diff\n- `[/]` to jump to the previous or next file\n- `f` to focus the current file, or clear file focus\n- `t` toggles the left file sidebar\n- `ctrl-u` / `ctrl-d` to move up/down by half a page\n- `s` toggles inline comments/explanations\n- `v` toggles the diff between unified and side-by-side split rendering\n- `?` toggles an AI-generated explanation for the current hunk\n- `/` searches visible diff text, highlights matches, and `n/N` moves between them while a search is active\n- `J/K` to extend a highlighted selection into a comment range\n- `esc` clears the active selection, or exits review when no selection is active\n- File headers break the review into per-file sections with change counts\n- Optional left sidebar lists files with `+/-` counts and tracks the current file\n- `n/p` to jump hunks\n- `c` to add or edit a comment for the current line or selected range\n- `C` to add or edit an overall diff comment\n- `x` to delete a comment for the current line or selected range\n- `Enter` to submit comments back to pi\n- Comments are cached per session and restored when reopening the same diff or view\n- File comments are also persisted in a repo-local workspace store and shown again in `/view` or on matching lines in `/diff`\n- The UI indicates persisted comments that are hidden in the current files, elsewhere in the workspace, stale, or orphaned\n- `q` to exit\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for development and release instructions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmpadden%2Fpi-diff-review","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmpadden%2Fpi-diff-review","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmpadden%2Fpi-diff-review/lists"}