Introduction
nitpin is the UI-refinement loop for macOS — sweat the details, ship the delight.
It’s the tool for nailing the small things that separate a generic, just-functional interface from a delightful one: the misalignments, the rough edges, the half-second of jank, the final touches. In an era where the first cut of a UI is increasingly machine-generated, nitpin is the layer that makes it feel crafted. You pin the nits; your coding agent refines them.
How it works
You drive your own app — a browser, the iOS Simulator, an Android emulator, anything. nitpin only captures: a global hotkey freezes a window’s pixels, and you drop pins and regions with notes on the still. Each capture is saved as an issue in a per-project store. Your coding agent then reads those issues over MCP — looking at the actual screenshot, locating the responsible code, fixing it, and recording what changed.
┌─────────────┐ capture (⇧⌘6 / ⇧⌘7) ┌──────────────┐ /nitpin ┌──────────────┐
│ Your app │ ──────────────────────▶ │ nitpin app │ ───────────▶ │ Coding agent │
│ (browser…) │ pin / region + note │ (menu bar) │ over MCP │ fixes code │
└─────────────┘ └──────────────┘ └──────────────┘
What you capture
- Issue — one capture (a frozen screenshot). It has a number (
#3), an auto-generated title, and an optional top-level body note. - Sub-issue — one problem on that capture: a pin on a precise spot, a region around an area, or a note about the whole frame. Sub-issues are numbered within the issue — the badges you see on the annotated image.
- Each sub-issue has a status — unresolved → fixed / won’t fix — and the issue’s state rolls up from its sub-issues.
You never manage any of this by hand. You drop pins and type notes; nitpin writes the store for you.
The promises
- Capture-only. nitpin reads pixels and window metadata. It never clicks, types into, or navigates your apps — that’s the whole product promise. Even in Live mode, you drive the page; nitpin only freezes it.
- Local-first. Your issues are plain files — YAML and PNGs — in your repo or on your machine. Screenshots, notes, and code never leave your device.
- Your words are immutable. Once captured, an issue’s body and notes are never edited. Agents speak through comments and resolve notes, kept separate from what you wrote.
Requirements
- macOS 26 (Tahoe) or later.
- A coding agent with MCP support — Claude Code, Codex, OpenCode, or Pi.
- Screen Recording permission, granted on first run — nitpin needs it to read window pixels (and only reads them when you take a shot; it never records continuously).
Where to go next
- Installation — get the app and the CLI.
- Your First Loop — capture a nit and watch an agent fix it, in about two minutes.
- CLI Reference and MCP Tools — the full command and tool surface.