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

easymd-cli

v0.1.8

Published

Google Docs for markdown — collaborate on the actual .md file in your repo, live with humans and AI agents. CLI: login, auto-sync, and open .md files for real-time editing.

Readme

easymd

Google Docs for markdown — except the file on disk stays canonical.

Collaborate on CLAUDE.md, AGENTS.md, or any .md file in real time. The document on screen is the actual file in your repo. No import/export round-trip, no copy-paste tax.

Web app (landing + demo)

Professional landing page with token savings messaging, Clerk auth for signups, and a protected live demo at /demo.

cd web
cp .env.example .env.local   # add Clerk keys from dashboard.clerk.com
npm install
npm run dev                  # Next.js + collab WebSocket server

Open http://localhost:3000 → Sign up → Live collaborative editor.

Token savings (why markdown for AI)

Converting PDFs, Word/DOCX, or HTML to clean .md cuts token usage dramatically:

| Format | Typical savings | |--------|-----------------| | Raw HTML | 75–90% | | Word / DOCX | 50–70% | | Text-based PDF | 40–65% |

Markdown strips hidden formatting metadata while keeping structure agents need — then reference @CLAUDE.md on demand instead of pasting every prompt.

CLI (local file editing)

npm install
npm run build
easymd open CLAUDE.md

Share the URL with a teammate. Edits sync live via CRDT. Changes land straight back to the file on disk and into git.

CLI auto-sync (push every .md into your account)

Sign in once, then have every markdown file in your repo sync into your easymd account automatically — so anything you or an AI agent writes to disk shows up in the dashboard and is editable live.

npx easymd-cli login          # opens your browser, sign in with Clerk, authorize this machine
npx easymd-cli auto on        # background watcher: every new/changed .md syncs to your account
npx easymd-cli auto status    # check it's running
npx easymd-cli auto off       # stop it

Other commands:

easymd sync ./docs        # one-shot push of all .md under a folder
easymd watch .            # foreground watcher (what `auto on` runs detached)
easymd whoami             # show the logged-in account
easymd logout             # remove credentials + stop auto-sync

Credentials live in ~/.easymd/credentials.json (a long-lived token bound to your Clerk user id — secrets stay on the server). Point the CLI at a self-hosted/production instance with EASYMD_URL=https://your-easymd.example.com.

AI agents (MCP)

easymd ships an MCP server so AI agents edit the same live documents humans do — changes sync in real time and persist to Supabase.

The easiest way is the CLI's bundled MCP server. It authenticates with your easymd login token (no API keys to paste) and works with any agent:

npm i -g easymd-cli
easymd login
easymd mcp-install        # registers it with Cursor + Claude Desktop
# Claude Code:  claude mcp add easymd -- easymd mcp

Or use add-mcp to register it across all detected agents (Cursor, Claude Desktop, VS Code, …) in one command:

npx add-mcp@latest --command easymd --args "mcp" --name easymd

Tools: list_documents, read_document, create_document, update_document, append_to_document. Docs an agent creates show up in your dashboard; edits an agent makes appear live in any open editor.

(The repo also has a server-side MCP at web/scripts/mcp-server.mjsnpm run mcp — which uses the service-role key directly; prefer the CLI version for end users.)

Why

AI agents made markdown load-bearing. AGENTS.md and CLAUDE.md are now the single source of truth for how your project works — but collaborating on them still means pull requests for engineers or copy-paste between Google Docs and your repo for everyone else.

easymd fixes the one painful shared file:

  • Canonical file stays canonical — edit the real .md on disk, not a hosted copy
  • Real-time multiplayer — live cursors, presence, CRDT conflict resolution
  • CLI keeps it honesteasymd open path/to/file.md from your terminal
  • Agents stay in the loop — the same file humans edit is what agents read and write
  • Token-efficient by design — lightweight .md beats bloated DOCX/HTML/PDF for agent context

Project structure

web/                Next.js landing, Clerk auth, protected demo
bin/easymd.js       CLI entry point
src/server.js       Local HTTP + WebSocket server
src/file-sync.js    Disk ↔ Yjs sync
client/             CLI browser editor UI

Clerk setup

  1. Create an app at dashboard.clerk.com
  2. Copy keys into web/.env.local (see web/.env.example)
  3. Enable Email + Google sign-in (recommended)
  4. Set redirect URLs: after sign-in/sign-up → /demo

License

MIT