Your coding agent explains the pull request. Your team reads it in the diff.
Free · hosted at diffnotes.dev or self-hosted · open source (MIT) · GitHub, GitLab, Bitbucket
diffnotes.dev · live demo · quick start · self-host · docs
- Your agent (Claude Code, Codex, Cursor…) annotates a PR: a plain-language “why” for each changed block, plus screenshots, short screen recordings, Markdown reports, CSVs and small interactive HTML demos. Through the skill or the MCP endpoint.
- The notes go to a DiffNotes server, never to GitHub, GitLab or Bitbucket: no bot comments, no notification noise. Use the free one at diffnotes.dev, or run your own and code context never leaves your infrastructure.
- Reviewers with the browser extension (Chrome, Edge, Brave, Arc) see them inside the diff on GitHub, GitLab or Bitbucket: a summary box on top, notes on the changed lines, image galleries, file previews, what changed since their last visit, one switch to hide everything.
- Notes expire on their own (after a year by default). Files on disk or in any S3-compatible bucket (Backblaze B2, R2, S3, MinIO).
- Up and running in a few minutes: a GitHub sign-in, one command for your agent, one extension (or one container of your own).
| Review faster | Reviewers read why a block changed before reading how. Fewer “what does this do?” round trips. |
| Context from the author | The agent that wrote the code explains it while it still knows the decisions and trade-offs. |
| Screenshots in the diff | UI changes come with before/after or mobile/desktop shots next to the lines that caused them. |
| Zero noise | Nothing is posted to the PR. The conversation stays for humans. |
| Your data | Self-hosted, invite-only (or sign-up with GitHub), per-account access. Code context never leaves your infrastructure. |
| Any agent, any team | One skill for every Agent Skills tool; one extension for several servers (teams, clients). |
On the free server, about 3 minutes:
- Sign in at diffnotes.dev with GitHub: you get a team account to invite people into.
- Add the extension from the Chrome Web Store (Edge, Brave and Arc too). It opens a tab: Sign in and connect → allow. Nothing to copy.
- Set up your agent (Claude Code, Codex, Cursor, any Agent Skills tool): diffnotes.dev/welcome gives one command with your token in it. Run it once.
- On a branch with an open pull request, ask your agent: “annotate this PR with diffnotes”, then open the PR's Files changed tab.
No skills in your agent? Use the MCP endpoint instead: claude mcp add --transport http diffnotes https://diffnotes.dev/mcp --header "Authorization: Bearer $DIFFNOTES_TOKEN" (more).
Code that must not leave your company: one container and a volume, on any Docker host.
docker run -d -p 3000:3000 -v diffnotes:/data \
-e ADMIN_EMAIL=you@your-company.com -e PUBLIC_URL=https://diffnotes.your-company.com ghcr.io/igorkasyanchuk/diffnotes
docker logs <container> | grep "first admin" # the generated passwordPut it behind HTTPS, then follow the quick start with your server's address. Docker Compose, Coolify, Render, Fly.io and Railway: deploy; every setting: install & configure.
| Install & configure | Docker, environment variables, first admin, password reset, upgrades, backups |
| Deploy | Docker Compose, Coolify, Render (one-click), Fly.io, Railway; one instance only |
| Agent skill | Install, token, how the agent writes notes, payload format, allowed files |
| Browser extension | Install (Chrome, Edge, Brave, Arc; Firefox and Safari as developer installs), several servers, GitHub / GitLab / Bitbucket, what you see, troubleshooting |
| Accounts & roles | Owner / admin / member, invitations, repository rules, super admin, overview pages |
| File storage | Disk or S3-compatible (Backblaze B2, Cloudflare R2, AWS S3, MinIO), expiry |
| Security | Access model, upload checks, sandboxing, tokens, secrets; report a vulnerability: SECURITY.md |
| API | The HTTP API the skill and the extension use |
| Development | Stack, layout, commands, code rules |
| Changelog | What changed in each version; releases are tagged vX.Y.Z |
| Privacy · Terms | What the extension and a server keep; the license and the hosted service's terms (every server serves both) |
Issues and pull requests are welcome: open an issue for a bug or an idea, and see AGENTS.md for the stack and the checks to run. Security reports go privately: SECURITY.md. If DiffNotes saves your reviewers time, a ⭐ helps other people find it.
MIT: use it, change it, host it, sell it; keep the copyright notice. Terms of the hosted service: diffnotes.dev/terms.








