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

ezreview

v1.0.0

Published

Local-first human-in-the-loop review of agent-generated HTML artifacts.

Readme

ezreview is a browser review companion for the AI development workflow plugin AIPilot, though it works with any AI agent. It allows you to leave contextual inline comments directly on AI-generated pages and sends structured feedback so agents can target and fix exact locations in the source document.

It also works as a standalone command-line interface (CLI) for any local HTML file. The review server runs on your machine and binds to 127.0.0.1:4400.

See it in action

https://github.com/user-attachments/assets/f0a7700b-70dd-41da-8b16-f2aa0bdc6f56

Features

  • Point at the exact issue: click an element or select a text range in the rendered page
  • Send actionable context: each annotation includes a stable ID, selector, relevant HTML, or selected text with surrounding context
  • Edit and answer in one loop: agents can change the source for requests and reply directly to questions
  • Continue a discussion: each annotation supports multiple rounds of replies
  • Resume safely: queued feedback and annotation IDs survive command timeouts and server restarts
  • Keep review data on your machine: EZREVIEW listens only on 127.0.0.1 and does not send review data to an external provider

Security

Only review HTML files and scripts you trust. EZREVIEW renders the artifact with its scripts enabled in a local browser frame, so artifact code can interact with the local review session and make its own network requests. The 127.0.0.1 binding prevents remote devices from connecting to the review server; it does not sandbox untrusted artifact code.

Install EZREVIEW

Install Node.js 20 or newer, then install ezreview globally:

npm install --global ezreview

Confirm the installation:

ezreview --help

You can also run a specific version without a global installation:

npx -y ezreview@latest your_file.html

Prompt an agent to run a standalone review

AIPilot manages the continuous review loop for you. When you use ezreview WITHOUT AIPilot, tell your agent to keep the session active and wait after every feedback batch.

Copy this prompt and replace your_file.html with the artifact you want to review:

Open your_file.html with ezreview. Use your managed background-task mechanism
to keep the review server running, and keep each ezreview wait attached to the
current execution. Continuously wait for submitted comments. For every comment,
decide whether it requests a change or asks a question. Apply the requested
change or answer the question, reply through ezreview for every annotation ID,
then continue waiting for more feedback. Do not treat a command timeout, empty
output, file reload, or completed feedback batch as review completion. Do not
exit until I click Approve in ezreview or explicitly confirm in chat that the
review is complete.

CLI reference

Open a review session

ezreview your_file.html

Starts a local review server, opens the HTML artifact in your browser, and stays active while the session is running. Running it again for the same file returns the existing session URL instead of starting another server.

Wait for feedback

ezreview wait your_file.html

Blocks until the reviewer submits a feedback batch (or returns immediately if queued feedback exists). Each batch contains structured change requests, questions, or both. If a command timeout interrupts it, run it again—the durable queue returns the next unconsumed batch without duplicating feedback.

Reply to an annotation

ezreview reply your_file.html --to a-1 "Updated the heading size."

Sends a reply back to a specific annotation thread using the ID returned by wait. For a change request, save the source file before replying; the browser reloads the artifact and displays your reply inside the matching annotation.

For multiline responses containing escaped line breaks (\n), add --decode-newlines:

ezreview reply your_file.html --to a-1 --decode-newlines "First paragraph\n\nSecond paragraph"

The browser preserves real line breaks and paragraph spacing. Decoding is opt-in so code examples containing a literal \n remain unchanged by default.

Use the agent review loop

An AI agent should run ezreview wait as a standard foreground/blocking command rather than detaching it with &, nohup, or disown. This ensures the agent blocks until feedback arrives and consumes the result immediately.

For every feedback batch, the agent should:

  1. Read every annotation returned by ezreview wait
  2. Edit the artifact for change requests
  3. Answer questions without changing the file unless the comment implies a fix
  4. Run ezreview reply once for every annotation ID
  5. Start a new attached ezreview wait
  6. Continue until you select Approve or end the review in chat

Why use EZREVIEW with AIPilot

AIPilot drives an AI development workflow through structured markdown documents. ezreview provides the interactive browser feedback loop, allowing you to review rendered UI previews and design documents in real time.

AIPilot creates a document or design preview
                  ↓
EZREVIEW opens it in the browser
                  ↓
You annotate an element or select exact text
                  ↓
The agent receives structured feedback
                  ↓
The agent edits or answers, then EZREVIEW reloads the result

You no longer need to take screenshots or manually describe where an issue is in chat. ezreview anchors your comments directly to rendered HTML previews generated by AIPilot, giving the agent exact element and text references to act on.

Related projects

  • AIPilot: the document-driven AI development workflow that uses ezreview for browser-based review
  • lavish-axi: the project that inspired ezreview