npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@spaceparrots/nit

v1.3.0

Published

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

Readme

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:.

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 <file...> | 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.

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 [email protected].

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