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

guddion-web

v0.1.0

Published

Local, click-to-comment visual review for HTML you're still building — Claude Code publishes a block to a local review server, you click an element and leave feedback, Claude reads it back anchored by a screenshot.

Readme

guddion-web

Local, click-to-comment visual review for HTML you're still building. Claude Code publishes a block (a header, a section, a component) to a throwaway 127.0.0.1 URL; you open it in your own browser, click directly on the element you want changed, and leave a comment. Claude reads it back through MCP — anchored by a screenshot of that exact element, so the feedback survives edits even if the page's structure shifts around it.

Install

npm install -g guddion-web
npx playwright install chromium

Configure

Sign up at mcp.guddion.ru, get your token, and set it:

cp .env.example .env
# edit .env: GUDDION_TOKEN=...

The review mechanism itself (server, screenshots, comment storage) runs entirely on your machine and is free — the token only links this install to your guddion.ru account for future features like cross-machine comment sync.

Register with Claude Code

Add to your project's .mcp.json:

{
  "mcpServers": {
    "guddion-web": {
      "command": "npx",
      "args": ["guddion-web"],
      "env": {
        "GUDDION_TOKEN": "your-token-from-mcp-guddion-ru"
      }
    }
  }
}

Tools

  • open_for_review(target, port?) — starts (or reuses) a local review proxy for a target and returns its URL for the human to open in a browser. Target can be:

    • A running dev-server URL (http://localhost:5173)
    • A project directory (a Node dev server is launched automatically via npm/yarn/pnpm/bun, detected from the project)
    • A single HTML file

    The optional port parameter can be used to specify which port the review proxy should run on; if omitted, an available port is auto-detected.

  • list_comments(filePath, includeResolved?) — pending (or all) comments, each with a screenshot path pointing at the exact element discussed.

  • resolve_comment(filePath, commentId) — marks a comment resolved.

  • discard_scaffold_request(target, requestId) — deletes a section-library scaffold request outright (compose or swap) instead of applying it, for a submission the person changed their mind about. Unlike mark_scaffold_applied, which only hides it from the default listing, this removes it from the store entirely.

  • get_status(target?) — reports every still-alive review/constructor server across all processes (so a fresh session can tell one is already running for a target instead of guessing or starting a duplicate), a draft vs. placeholder summary of the template library, and, if target is given, how many scaffold requests are pending for it.

Comments and screenshots live in .guddion-web/ next to the reviewed file. Server discovery (get_status) and the token-verification cache live in ~/.guddion-web/ (servers.json, auth-cache.json) since they aren't tied to a single reviewed file.

Using it as a library

import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { registerCoreTools } from 'guddion-web';

const server = new McpServer({ name: 'my-extended-agent', version: '0.1.0' });
registerCoreTools(server);

// register your own additional tools on the same `server` here

await server.connect(new StdioServerTransport());