Skip to content

nit logo

nit

Point-and-click website annotation that hands small UI fixes straight to a coding agent.

CI npm license: AGPL-3.0

You are browsing your product and spot the little things: a badge in the wrong color, an unfilled star icon, a dead active-state. Filing tickets for those is overkill, and describing them to an AI agent in prose loses too much ("the third tile... no, on the landing page...").

nit is the missing input device. Click the element, type the nit, done. Every annotation records a stable reference to the element (component tag, unique CSS selector, XPath, screenshot) plus the route and viewport. That is precise enough for a coding agent to find the source and fix it without any further context.

The name comes from code-review culture, where reviewers prefix minor comments with nit:.

nit review panel next to the annotated site

The loop

┌────────────┐      ┌───────────────────┐      ┌────────────┐
│ nit review │ ───► │ your coding agent │ ───► │ nit verify │ ─── reopened? ──┐
│  annotate  │      │  fixes each open  │      │  before /  │                 │
│  the site  │      │  change-request   │      │   after    │ ◄───────────────┘
└────────────┘      └───────────────────┘      └────────────┘
  1. nit review https://staging.example.com opens a real Chromium with an annotation overlay and a devtools-style panel window beside it. Alt-click elements, describe the changes, save.
  2. Hand the produced nit-review/ folder to a coding agent, or serve it as an MCP server with nit mcp. The agent fixes each open change request and marks it fixed.
  3. nit verify walks you through each fix in a guided queue — routes visited automatically, after screenshots next to the originals — and you rule Verified, Reopen (with a note the agent reads), or Skip.

Teammates review on their own and share zips (nit export / import / merge). The workflow guide walks through all of it.

Install

npm install -g @spaceparrots/nit
nit doctor        # checks Node ≥ 20.12 and dependencies, offers to install Chromium (one time)
nit setup         # per project: review dir, .gitignore, MCP server (interactive wizard)

Or without installing: npx @spaceparrots/nit review https://example.com

Commands

Command Alias What it does
nit setup init One-time project setup: review dir, .gitignore, MCP (wizard)
nit review [url] r, annotate Open a browser and annotate a site
nit view [source] v, replay Replay a review (default nit-review/) with pins re-anchored on their routes
nit verify [source] check Capture after-shots for fixed items, rule Verified / Reopen (default nit-review/)
nit status [dir] stats What is in a review: file, last change, counts, what is left
nit list [dir] ls List the base URLs in a review, or the annotated urls in one
nit clear [dir] rm Remove annotations from a base, or from every base
nit export [dir] pack Pack a review into a shareable zip
nit import [zip] unpack Unpack a teammate's review zip
nit merge <files...> combine Combine feedback files into one consolidated review
nit mcp [dir] serve Serve a review folder as an MCP server (stdio)
nit mcp-install [dir] mcp-config Register the MCP server in this project's .mcp.json
nit doctor Check the environment, install Chromium if missing

All flags are in the command reference; reviewing itself (picking, the panel, viewports) is covered in reviewing in the browser.

What you get

nit-review/
├─ bases.json              # the base URLs this review covers
├─ staging/                # one review folder per base URL
│  ├─ annotations.json     #   structured, agent-readable
│  ├─ review.md            #   human-readable, screenshots embedded, ACTIONABLE markers
│  ├─ fix-annotations.md   #   the contract for the fixing agent
│  └─ shots/*.png          #   context screenshots (+ after-shots from nit verify)
└─ localhost-4200/
   └─ …

A review of a single site stays flat — annotations.json sits directly in nit-review/. The base folders appear the first time you review a second url into the same folder, and the existing review is moved into its own folder as part of that. nit list shows what a review covers; every command takes --base <name> to work on one environment, and nit view / nit verify also take the base name on its own — nit verify localhost-4200.

Each annotation carries the element reference (component, selector, XPath, text), the route and viewport, a status (open, fixed, verified, reopened, wontfix), optional issue ref, and a click trail for reproducing hidden states. Field-by-field details are in the annotation file reference.

Agent handoff

Point your agent at the folder and let it follow fix-annotations.md, or register the MCP server (nit mcp-install) and let it work through tools: nit_list_annotations (rows carry the full working record), nit_get_annotation (batchable; screenshots included as images), nit_mark_fixed, nit_set_status (with a persisted reason for wontfix), nit_set_issue_ref, nit_clear_verified (housekeeping after a verify round). Payloads are deliberately token-lean. The review is also readable as resources (nit://review/brief.md, nit://review/annotations.json, nit://annotation/<id>, …) for sessions without tool access.

One server covers every environment: with several base URLs each row carries its base and navigable url, ids are qualified staging:a1, and the base parameter narrows tools to one of them. MCP server and coding agents has the details and prompt suggestions.

Documentation

License

nit is licensed under the GNU AGPL-3.0. It is free to use, modify and self-host. The copyleft terms mean that any distributed or network-hosted modified version must make its source available under the same license, so nobody can take nit closed-source and resell it.

Need to use nit in a way AGPL-3.0 does not allow, for example embedding it in a closed-source or commercial product? A separate commercial license is available. Reach out to kevin.mattutat@spaceparrots.de.

Copyright © 2026 SpaceParrots. Security issues: see SECURITY.md.

About

Point-and-click website annotation that hands small UI fixes straight to a coding agent. Annotate in a real browser, let the agent fix, verify with before/after screenshots.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages