{"slug": "show-hn-local-code-review", "title": "Show HN: Local Code Review", "summary": "Plannotator, a free, MIT/Apache-2.0 licensed local code review tool, launches with a diff viewer for git, jj, and Perforce, supporting local diffs, commits, branches, worktrees, and GitHub/GitLab PRs. The tool allows manual annotation of lines, tokens, or files, with optional AI agents that can be fed annotations as instructions, and it keeps review data local by default. The project is showcased on Hacker News as 'Show HN: Local Code Review'.", "body_md": "/plannotator-review [PR_URL]\n\nStar on GitHub\n\n#\nCode review for\n\nthe modern era.\n\nPlannotator opens a local diff viewer for git, jj, and Perforce. You annotate lines, tokens, or whole files, and when you're done the notes feed straight into your agent session — an automated feedback loop. It works on local diffs, commits, branches, worktrees, and GitHub/GitLab PRs. The core tool is manual; the AI layer on top is optional and answers to you. Free, MIT / Apache-2.0, with local review data kept on your machine by default.\n\n- review agents\n- custom reviews\n- Bring your own skills. They run in the background and leave findings as inline diff comments.\n\npart one\n\n## The manual tool\n\nReview any changeset with nothing between you and the diff. No model in the loop unless you put one there.\n\nannotate → agent\n\n## Your annotations become the agent's instructions\n\nSelect lines, a single token, or a whole file, and leave a comment, a concern, or a suggested edit. Conventional Comments labels are there if your team reviews that way.\n\nHit Send Feedback and everything exports as markdown, anchored to exact files and lines, straight into your agent session. The agent reads it like any other instruction and gets to work.\n\n- Line, token, file, and review-level scopes\n- Suggested-code blocks with the original alongside\n- Drafts auto-save and survive a crashed session\n\ngit status view\n\n## Review the whole change before it's a PR\n\nThe default view pulls together everything you've touched — committed work, uncommitted edits, and untracked files — in one screen. No commit, push, or PR required; you see what a PR would show while the work is still in progress.\n\nIt's grouped the way git status groups it: Committed, Changes, Untracked. Every row shows the change type and line counts, and you can stage or unstage files right there while you review.\n\n- Falls back gracefully when no base branch resolves\n- One-click fetch when the base is behind GitHub\n\ncommits panel\n\n## Walk the branch, one commit at a time\n\nThe Commits panel is a plain history rail of your branch, newest first, with a divider where your work meets the base. Click any commit for its own diff against its parent, with the full commit message on top.\n\nIt's git show with annotations. Review a teammate's commit or your own from last Tuesday; the feedback records which commit each note was anchored to.\n\n- Session-scoped: glancing at history never changes your default view\n\npull requests\n\n## Review PRs without the noise\n\nPoint it at a GitHub PR or GitLab MR and it opens in the same viewer: description, checks, and the full discussion in one Overview panel. The comments column filters the noise — hide bots (Dependabot, CI, Copilot) with one toggle, drop resolved and outdated threads, narrow to specific people, or search the thread.\n\nThe description and comments are annotatable too. The agent can't see the discussion on its own, so your notes travel with the full comment quoted. Post your review back as inline comments, or hand it to the agent to fix.\n\n- Hide bots is on by default; resolved and outdated threads collapse away\n- Uses your gh / glab auth, so private repos just work\n- Stacked PRs get a Layer / Full-stack toggle for the whole chain\n\npart two\n\n## The AI layer\n\nSame viewer, same annotations, more eyes on the code. Agents flag; you decide what ships.\n\nAI ask ai\n\n## Ask the diff a question\n\nSelect lines in the diff and ask. The answer streams into a side panel, scoped to what you selected and the changeset on screen, riding whichever agent CLI you already use.\n\nIt's reading support, not delegation — you stay in the diff while the model holds the context you'd otherwise go dig for.\n\n- Providers detected from the CLIs you already have installed\n- Answers stay grouped by file for the session\n\nAI guided review\n\n## Let an agent chapter the changeset\n\nA Guided Review has an agent reorganize the changeset into chapters by importance — the heart of the change first, then its consequences, then the glue (inspired by Linear). Each chapter pairs a short overview and per-file summaries with the diffs it covers. On a big diff it reads far better than file order.\n\nThe diffs inside a guide are the real diff viewer, not excerpts. You still read every line; the agent just orders them. Anything you annotate there lands in the same review and ships in the same feedback.\n\n- Per-section reviewed state for multi-sitting reviews\n- Every changed file validated against the real diff\n\nAI agent reviews\n\n## Run review agents\n\nKick off a review agent against the current changeset; the selected AI provider receives the review prompt and relevant repository or diff context. Findings come back as annotations with a severity, reasoning, and a file and line anchor. Nothing is posted back to GitHub or GitLab until you choose to send the review.\n\nThe review is yours to define. Point it at one of your own skills — a security checklist, your naming conventions, whatever you've written — and Plannotator links to it locally and runs it as a launchable reviewer, findings landing inline like the built-in one. Runs on Claude or Codex natively, or through Cursor, OpenCode, Pi, and GitHub Copilot CLI when they're on your PATH.\n\n- Bring your own review skill; its findings land as diff comments\n- Code Tours: a narrated walkthrough with checkpoints\n- Run several engines on the same diff and compare findings\n\nintegrations\n\n## Agents can talk to it from the outside, too\n\nThere's also a local API. Anything outside the viewer — another agent, your CI, a linter, a script — can POST findings, markers, or notes straight onto the diff. They stream in live and land inline, tagged by source, right next to your own annotations.\n\npart three\n\n## Compound engineering\n\nEvery annotation you make is saved to `~/.plannotator`\n\n. Point an agent at\nthat history and the feedback you keep repeating distills into a custom review skill —\ncaught before you see it again.\n\n### You annotate\n\nEvery note is written to `~/.plannotator`\n\n, review after review — a growing\nrecord of what you actually care about.\n\n### Distill a skill\n\nPoint an agent at that history. The feedback you give again and again becomes a custom review skill, in your own words.\n\n### It reviews for you\n\nThe skill runs as a review agent and leaves the note inline, on the diff — so the next agent gets it right the first time.\n\n## Two minutes to your first review\n\nInstall once and `/plannotator-review`\n\nworks from\nClaude Code, OpenCode, Codex, Pi, Copilot CLI, Droid, and more.", "url": "https://wpnews.pro/news/show-hn-local-code-review", "canonical_source": "https://plannotator.ai/code-review/", "published_at": "2026-08-11 17:27:34+00:00", "updated_at": "2026-08-11 17:42:51.531313+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "ai-agents"], "entities": ["Plannotator", "GitHub", "GitLab", "Perforce", "Dependabot", "Copilot"], "alternates": {"html": "https://wpnews.pro/news/show-hn-local-code-review", "markdown": "https://wpnews.pro/news/show-hn-local-code-review.md", "text": "https://wpnews.pro/news/show-hn-local-code-review.txt", "jsonld": "https://wpnews.pro/news/show-hn-local-code-review.jsonld"}}