A Claude Code plugin for Next.js β with first-class BMAD-METHOD support.
Press a hotkey, circle the element that's wrong, say what's off β Nitpick captures the exact component, source line, Playwright-style locators, and an annotated screenshot, then Claude (or your BMAD dev agent) fixes each report at its source.
Quickstart Β· With BMAD Β· How it works Β· Live demo Β· Commands
When you build a UI with an AI coding agent, the hard part isn't fixing issues β it's describing them precisely. "The card padding looks off" makes the agent guess which card, which file, which line. Round-trips pile up.
Nitpick removes the guessing. You point at the broken element in the running app, and the agent receives the comment already mapped to a source location β with the component, the styles, Playwright-style locators, and a screenshot. Reporting and fixing stay cleanly separated.
hotkey β circle element β comment β .nitpick/001.json + 001.png
β
/nitpick:process ββββββββββββ (or routed to your BMAD dev agent)
Claude opens the source line and fixes it.
- π― Inspect β source β click any element to capture its React source line, component
stack, computed styles, Playwright-style locators (
getByRole,getByTestId, CSS, XPath), and a cropped screenshot of each selected element (<id>-1.png,<id>-2.png, β¦). - βοΈ Snip β crop a region (correct at any scroll), mark it up with Arrow / Line / Circle / Box / Pen / Text, save it as a flat annotated image.
- π¬ Record a flow β capture clicks, field inputs (text / dropdown / radio / checkbox), and navigation across multiple screens as an ordered repro script (each step with its route and a Playwright-style locator).
- π Fix me β report a problem with Nitpick itself (typed or dictated); the agent fixes the tool, not your app.
- π§° Draggable toolbox, configurable hotkey (or double-tap Shift, or a click).
- π€ BMAD-METHOD aware β route feedback to the dev agent now, or into stories after an epic.
- π Dev-only & report-only β never runs in production, never changes your app's behavior;
everything stays local in
.nitpick/.
Pick by what kind of issue you're reporting:
| Tool | Reach for it when the problem is⦠| Ideal cases | Saves |
|---|---|---|---|
| π― Inspect | a specific element | Wrong color / size / spacing / font / copy on a known component; a missing or broken state; anytime you want Claude to land on the exact source line + styles. Click several elements β each is captured with its own locators and image. | 001-1.png, 001-2.png, β¦ + element metadata |
| βοΈ Snip | a region, or how things relate | Alignment / overlap / overflow / uneven spacing between sections; hover-only or hard-to-click UI (menus, tooltips, charts, <canvas>, images); when you want to draw arrows/circles to explain it. |
one flat annotated 001.png |
| π¬ Record | a bug that takes steps to trigger | Multi-step or cross-page flows; form validation, post-submit state, "it breaks on step 3"; behavior bugs where the path matters. Gives Claude an exact repro script. | ordered actions (no images) |
| π Fix me | Nitpick itself | The overlay misbehaves (marquee won't drag, badge missing, save failsβ¦). Type or dictate what's wrong; the report is flagged meta, the screenshot includes the Nitpick UI, and /nitpick:process fixes the tool instead of your app. |
001.png (with the overlay visible) + tool diagnostics |
π‘ Pair any tool with a reference image β paste or drop one into the comment box when you have a target design/look you want the result to match.
Rule of thumb: one element β Inspect Β· a layout/area β Snip Β· a sequence β Record.
- "This Upgrade button is the wrong shade of red." β Inspect the button.
- "The hero heading and the subtext don't line up; here's the Figma." β Inspect both (or Snip the region) + paste the reference.
- "These two dashboard cards overflow their container on mobile." β Snip the region.
- "After I fill the signup form and hit Next, the error appears on the wrong field." β Record the flow.
# 1. Add the marketplace + install (in Claude Code)
/plugin marketplace add lokkrish/nitpick
/plugin install nitpick@nitpick-tools
# 2. Scaffold the overlay into your Next.js app
/nitpick:setup
npm run dev # (re)start your dev server
/nitpick:sanity # optional: verify the install end-to-end in a real browserThen, in the browser:
- Activate:
Ctrl+Shift+., double-tap Shift, or click the π Nitpick badge. - Pick a tool β Inspect, Snip, or Record β annotate, add a comment, optionally paste a reference image, and Save.
- Repeat; reports queue in
.nitpick/.
Back in Claude Code:
/nitpick:process # Claude views each screenshot, opens the source line, and fixes itUsing BMAD? Route feedback through its agents instead of editing code directly:
/nitpick:setup-bmad # installs a BMAD-native "nitpick" agent (v6 skill / v4 agent)
/nitpick:bmad # triage feedback, then route itEach item is triaged into quick-fix (handed to the dev agent now) or backlog (turned into
BMAD stories with /nitpick:bmad stories <epic> once the epic is done). Verified against
BMAD-METHOD v6.8.
Nitpick is two artifacts joined by a file bridge (full writeup in DESIGN.md):
| Part | Where it runs | What it does |
|---|---|---|
Overlay (templates/) |
the browser (dev-only) | capture: hotkey, annotate, screenshot, locators |
| Bridge (dev API route) | your Next.js dev server | writes reports to .nitpick/*.json + images |
| Plugin (this repo) | Claude Code | /nitpick:* commands + skill + BMAD agent that fix the queue |
Screenshots capture exactly the region you're looking at (correct at any scroll position), Record saves the action flow only (no images), and the overlay is completely inert when idle β no background work, no memory growth.
| Command | What it does |
|---|---|
/nitpick:setup |
Scaffold the overlay + dev API route into a Next.js app (App or Pages router). |
/nitpick:sanity |
Verify an install end-to-end β static checks + a real-browser test (four-corner selection, snip pipeline, hostile-CSS regression, API bridge). |
/nitpick:process |
Fix the .nitpick/ queue in Claude (defers to BMAD if detected). |
/nitpick:bmad |
Triage + route feedback through BMAD (triage / quick-fix / backlog / stories / status). |
/nitpick:setup-bmad |
Install the BMAD-native Nitpick agent. |
/nitpick:remove |
Reverse setup β remove overlay, route, mount, .nitpick/, and the dep. |
- Local-only β feedback is written to
.nitpick/in your repo; the overlay sends nothing anywhere else. - Dev-only β the overlay returns
nulland the API route returns410in production. - Report-only β Nitpick never edits your app or changes its behavior; fixing is a separate, explicit step.
/nitpick:remove # remove scaffolded code from your app
/plugin uninstall nitpick@nitpick-tools # remove the plugin from Claude Code- Native HD capture (
getDisplayMedia) toggle for pixel-perfect shots on huge pages. - MCP live-push (no "go process" step).
- React SPA (Vite / CRA) bridge.
- Multi-element batches.
See CHANGELOG.md for what's shipped.
Issues and PRs welcome β see CONTRIBUTING.md. Be kind; we follow a
Code of Conduct.
MIT Β© Lokeshwaran
If Nitpick saves you round-trips, please β the repo β it really helps.
