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

mdc-workspace

v0.2.0

Published

A local markdown workspace where humans and coding agents review docs together — margin comments and agent-suggested edits anchored to the text, stored beside each file; the doc changes only when you accept. Renders markdown, images, HTML, and PDF; truste

Downloads

337

Readme

mdc

A local markdown workspace for you and your coding agent — render your docs in the browser, review them together in the margin, and run small tools over them. Comments live beside each file, so your docs stay untouched.

What is mdc?

Point mdc at a folder and it renders your whole workspace in the browser — markdown (with Mermaid diagrams, syntax-highlighted code, task lists, and more), images, PDFs, and .html files. From there:

Work with your markdown:

  • Review in the margin. Highlight any passage and leave a comment. Your coding agent reads the same comments and replies in the margin — review becomes a threaded, persistent conversation instead of a copy-paste-into-chat loop. The source doc is never touched; comments — and any suggested edits waiting for your decision — live in a sidecar beside it.

    The mdc review loop

  • Accept edits from the margin. Ask for a change and your agent proposes it as a suggestion — a diff right on the thread card. Accept writes it into the doc (in rendered view or the editor, where it's a normal undoable edit), Reject discards it, or reply to send it back for another pass. Your doc changes only when you accept.

    Accepting a suggestion from the margin

  • Triage across docs. One dashboard shows every open thread across the whole folder, so you can see what still needs attention without opening each file.

    Comment dashboard

  • Edit in place. Toggle any doc between rendered view and a raw-markdown editor with a syntax palette (⌘/). mdc is a place to work, not just a window.

And go beyond it:

  • View what your agent builds. Ask your agent for a mockup, report, or diagram and it renders inline in mdc — an .html file opens in a sandboxed frame, so you review it in place instead of switching to another tab.

    HTML rendered in mdc

  • Run mini apps. A trusted HTML file runs as a small app that reads and writes your workspace markdown — a Kanban board, a task browser — through a permissioned bridge.

    A mini app running in mdc

And even more. Create and organize files and folders, open several docs in tabs, jump by outline or fuzzy file search, edit and reply to individual comments, follow [[wikilinks]] and section anchors, render Mermaid diagrams, switch between light and dark — and a keyboard shortcut for most of it.

Quick start

Requires Node 20+.

# Run without installing (./my-docs is the folder to serve)
npx mdc-workspace serve ./my-docs

# …or install it globally, then run `mdc` anywhere
npm install -g mdc-workspace
mdc serve ./my-docs

serve renders the folder's contents and opens it in your browser. Browse the file tree, read your docs, and view any images, PDFs, or HTML inline. The server keeps running in the background — that's all you need to look around.

To review docs with an agent or run mini apps, set your agent up next.

Set up your agent

Reviewing docs together, viewing what your agent builds, and building mini apps all run through a coding agent. mdc works with any coding agent that can run shell commands — it reads and writes comments through the mdc CLI while you drive the browser.

Setup is a one-time thing: tell your agent to run mdc setup and follow it. That guide walks the agent through everything — the review loop, persisting the instructions, and getting standing approval for the mdc command — checking in with you where it needs your OK. When it's done, you and your agent are wired up; the ways to review below just work.

See docs/agent-setup.md for the complete agent-facing guide.

Reviewing with an agent

Set the name mdc displays for you (defaults to user), so it can tell your comments apart from the agent's:

mdc identity "Your Name"

Highlight a passage in any doc and leave a comment. Then review it one of two ways — the way you ask decides which:

  • Ask once. Tell your agent to review your comments on the file. It reads the pending threads, replies in the margin, and stops. The simplest way in.
  • Review together. Ask your agent to review with you, and it watches the file for a back-and-forth: each time you click Hand off it replies, then re-arms for the next round, until you click End session. Your agent knows how to start this from mdc setup.

Either way, when a thread calls for a doc change the agent attaches a suggestion — you'll see the diff on its card and can Accept (the file updates in place), Reject, or keep the conversation going. Deciding is always yours, in the browser.

The Hand off button is how you pass the doc to a watching agent mid-session. If no agent is connected when you click it, it copies a ready-to-paste prompt instead — a quick way to kick off a review from the clipboard.

Mini apps

A mini app is a single trusted HTML file that reads and writes your workspace through a window.mdc bridge — for example, a Kanban board backed by your markdown files. Try a packaged one:

mdc example kanban

Then open the copied .html in mdc and trust it to run.

Ask your agent to build one. Describe the tool you want over your workspace files and it writes the HTML — or modifies an app you already have. The build contract lives in docs/mini-app-guide.md: the bridge API, manifest format, sandbox limits, and design conventions.

Trust model. Apps are sandboxed: an untrusted HTML file renders read-only with no file access. When you explicitly trust an app, it runs with allow-scripts only (no same-origin access) and can read and write files through the mediated bridge — within a declared scope, and with a confirmation at the moment it writes outside its own folder. Trust is recorded per-workspace in .mdc.toml under an [apps] table that mdc writes for you (editing an app's file re-prompts for trust); you don't edit it by hand.

CLI

The commands you'll use directly:

| Command | What it does | | --- | --- | | mdc serve [root] | Serve a folder in the browser (defaults to the current directory). --force moves a running server to a new root. | | mdc open <file> | Focus a file in the already-open browser tab. | | mdc stop | Stop the running server. | | mdc check | Report whether a server is running. | | mdc identity [name] | Show or set your display name (~/.mdc.toml). | | mdc setup | Print the agent setup guide (meant for your agent to read). | | mdc example [name] | Copy a packaged example app into the workspace (omit the name to list them). |

Your agent uses a second set of commands to read and reply to comments (comment, reply, resolve, watch, list-pending, …) — those are covered by mdc setup. Run mdc --help for the full reference and flags.

Run from source

git clone <repo-url>
cd mdc
npm install
npm run build      # builds the frontend bundle + CLI
npm link           # optional: put `mdc` on your PATH

mdc serve ./my-docs

Run the test suite with npm test.

License

MIT © Yang-Cheng Chen