English · Español · Français · Deutsch · 日本語 · 简体中文 · العربية
nitpic connects your browser to Claude Code. Turn on feedback mode, click any element on any page — localhost or production — type what should change, and hit send. Your comment, a cropped screenshot, and the element's HTML land inside your running Claude Code session as if you typed them there, and Claude gets to work.
Built for designers, developers, and vibe coders who review their app in the browser but fix it in the terminal.
- 🎯 Point at the problem — hover-highlight any element or drag-select a region; nitpic captures the CSS selector, a screenshot, and the HTML for you
- ⚡ Instant delivery — feedback lands in your terminal within a second (tmux & iTerm2 get true keystroke injection; everywhere else delivers on Claude's next turn)
- 🎛 You choose the session — type
/nitpicin whichever Claude Code session should listen; run it elsewhere to move the connection - 📚 Batch reviews — collect comments across pages and tabs, then send them as one message, grouped by page
- 🫧 Floating panel — draggable, collapsible to a pill, never squeezes your viewport or triggers responsive breakpoints
- 🔒 Local-only — no accounts, no servers, no telemetry; everything stays on your machine
- 🪄 Zero-friction setup — pairing happens automatically; you never copy a code or touch a config file
1. Install the Chrome extension — one click from the Chrome Web Store
2. Install the Claude Code plugin — paste into any Claude Code session:
/plugin marketplace add jibril4000/nitpic
/plugin install nitpic@nitpic
3. Connect — in the session that should receive feedback:
/nitpic
4. Nitpick — click the nitpic icon on the page you're reviewing, hit Start feedback, click anything, type a comment, Send. That's the whole loop.
The extension's welcome page walks you through all of this with a live checklist that ticks itself as you go.
┌───────────────┐ WebSocket ┌──────────────┐ types into ┌──────────────────────┐
│ Chrome │ ───────────▶ │ switchboard │ ─────────────▶ │ your Claude Code │
│ extension │ 127.0.0.1 │ (auto-starts,│ the terminal │ session (the one you │
└───────────────┘ │ invisible) │ or via hooks │ typed /nitpic in) │
└──────────────┘ └──────────────────────┘
| Your terminal | Delivery |
|---|---|
| tmux | ⚡ instant — injected into the exact pane |
| iTerm2 | ⚡ instant — injected via the session API |
| anything else | ⏭ on turn boundaries — arrives when Claude finishes its current response, with a desktop notification |
Screenshots and HTML snippets are written to <project>/.feedback/ (auto-gitignored); the message Claude receives points to them. If no session is listening, feedback queues on disk and delivers when one connects.
Everything is local: the switchboard binds to 127.0.0.1 only, and a pairing token (exchanged automatically) stops arbitrary web pages from speaking to it. The line injected into your terminal never contains page content — comments live in files Claude reads. The extension collects no data and phones no home.
- Claude Code
- Cursor
- Codex
- Gemini CLI
- VS Code terminal injection (instant delivery without tmux/iTerm2)
- Device-size preview (test mobile/tablet layouts on purpose)
- Chrome Web Store + zero-token pairing
git clone https://github.com/jibril4000/nitpic && cd nitpic
npm install
npm run build # plugin bundles → plugin/dist, extension → extension/dist
npm test # vitest: switchboard e2e, queueing, formatting, assetsIssues and PRs welcome — especially transports for new terminals and agents.
If nitpic saves you a round-trip or ten, buy me a coffee. Made by Jibril.

