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

@feelreef/mcp

v0.3.1

Published

REEF with MCP — edit a feelreef native site's markdown from any MCP client: read the page grammar, save to a preview, inspect what you built, publish when you mean to. The AI-first way to build on feelreef.

Readme

@feelreef/mcp

Edit a feelreef native site from any MCP client — Claude, ChatGPT, your own agent. Every edit lands on the site's own git repo (the source of truth), builds to a preview, and goes live only when you say so.

The site's content is plain markdown plus a one-line %% sitetile: … %% grammar in a git repo — an LLM's native tongue, not a wall of block JSON. So an agent connected here can read what it built, not just write blindly. That's the point.

npx @feelreef/mcp        # or add it to your MCP client (below)

Scope, honestly. These tools edit a feelreef native site that already exists — there is no create-a-site-from-nothing tool, and the hosted path for owners who aren't us is still parked (src/phase2/). Building needs either the sitetile renderer on your machine or a runner we provision per site. If you're a cold-start agent hoping to spin a site up unattended: not today. Editing, reading back, previewing and publishing an existing site — that part is real and it's yours. See https://feelreef.com/for/agents.

Install (Claude Code)

claude mcp add feelreef -- npx -y @feelreef/mcp

Point any MCP client at the feelreef-mcp binary. Editing needs nothing but Node ≥20 — the sitetile parser is vendored into the package, so get_page / save_page / create_page work on a fresh machine with no other checkout. Building (turning the repo into a deployed site) needs either the local sitetile renderer or a runner — see Building.

The tools

| tool | what it does | |---|---| | list_sites | the sites this adapter can edit | | add_site / check_site / remove_site | register / preflight / unregister a site | | list_pages · get_page | a site's pages + posts; one page's markdown + parsed structure | | describe_page_grammar | the coral vocabulary for a page body, so you never guess a section | | save_page · create_page · create_post | validate, write, git-commit (no deploy) | | inspect_page | see the built page: links, images, headings + a problems list | | site_status | repo vs live — did my edit actually ship? | | build_preview | build the repo IR → deploy to the preview *.pages.dev | | publish_site | deploy to the live domain. Never automatic; needs confirm:true |

No delete tool by design: an agent that can't delete a page can't lose one.

The loop

get_page → (edit the markdown) → save_page → build_preview → inspect_page the *.pages.dev
                                                                   │
                                                     happy?  →  publish_site {confirm:true}

save_page commits to the repo but changes nothing live. build_preview shows the result on a preview URL. publish_site is the only thing that touches the real domain.

Building

build_preview / publish_site are the same verbs wherever the build runs. The adapter picks the path automatically:

  • Local — on a machine with the sitetile renderer (~/Developer/tile), the build runs here. This is the maintainer's dogfood path.

  • Runner — on any other machine, point the site at a reef-runner and the build happens in the cloud: the adapter uploads the site's IR, the runner builds and deploys it, and hands back the same honest report (a routes manifest and a read-back that the deployed URL really serves this build). Configure it per site:

    add_site key:"mysite" repo:"/path/to/site" previewProject:"mysite-preview"
             runner:{ url:"https://<your-reef-runner>", token:"<token>" }
  • Neitherbuild_preview returns an honest error telling you to set up one of the above, rather than failing cryptically.

Runner access is provisioned per site today, not self-serve — ask us ([email protected]) and we'll point one at your site. The runner's source and protocol spec live in the monorepo, which isn't public yet; what ships here is the adapter that talks to it.

Adding a site

add_site never trusts a path — it preflights the repo first (is it git, does its IR parse as sitetile, is there a build-fixture trap, does Cloudflare actually bind the domain) and refuses anything unsafe to edit. A site with a live domain + prod project is added full (can publish); a site with only a preview project is preview-only (edit + preview, publish disabled until cutover).

License

MIT © CVER Inc. — including the vendored sitetile parser in vendor/, which ships in this tarball and is the thing that reads and writes your markdown. Read it: that's the whole content model. (The renderer's own repo isn't public yet; the moat was never the parser — it's the loop quality and the running platform.)