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

mdrfc

v0.2.2

Published

Simple markdown viewer — terminal + web. RFC-style monospace, 72-col width.

Readme

mdrfc

A markdown viewer for the browser and the terminal. RFC style: monospace, 72 columns.

mdrfc README.md          # open in the browser, reloads when you save
mdrfc docs/              # a folder, with a sidebar of every .md file
mdrfc README.md --term   # render in the terminal instead
cat foo.md | mdrfc       # stdin works too

Install

npx mdrfc README.md      # no install
npm install -g mdrfc     # or keep it around

Needs Node 20 or newer. Also runs under Bun and Deno.

Usage

mdrfc [file|dir]          open in the browser
mdrfc [file] --term       render to the terminal
mdrfc                     read markdown from stdin

FLAGS
  -w, --web                 open in the browser (the default)
  -t, --term                render to the terminal instead
  -p, --port <n>            server port (default 2119)
      --no-open             don't open a browser tab
      --no-color            plain text, no ANSI colour
      --no-frontmatter      hide the frontmatter block
      --width <n>           content width in columns (default 72)
      --theme <auto|light|dark>
      --toc <off|top|left|right>   table of contents (default right)
  -h, --help
  -V, --version

Piping picks the terminal for you, so mdrfc x.md | grep foo and mdrfc x.md > out.txt print text instead of opening a tab. So does an SSH session with no display. Pass --web to open a tab anyway.

In the browser

  • Live reload — save the file, the page updates and keeps your place.
  • Cmd-K — search headings, filenames and text, and jump to the result. The line you picked is highlighted; Esc clears it.
  • Table of contents — in the right margin by default, and it follows you down the page. Move it with --toc or the settings panel.
  • Heading links — click the # beside a heading to jump there and copy the link. Slugs match GitHub's.
  • Images![](diagram.png) loads the file from beside the document, and redraws when you save over it.
  • Reading position — each document reopens where you left off.
  • Settings — the gear button: theme, font, text size, width, table of contents. All remembered in your browser.
  • Foldersmdrfc docs/ lists every .md file in a sidebar, grouped by folder. New files appear without a restart.

In the terminal

--term renders RFC-style text, reflowed to 72 columns and paged through less. --no-color drops the colour for plain text. Given a folder, it prints the file tree, then the folder's README.md.

Width

72 columns by default, in both views.

mdrfc README.md --width 80

The settings panel has a width slider (40–200 columns) that overrides it.

Frontmatter

A YAML (---) or TOML (+++) block at the top of the file is shown as a metadata header rather than as body text, and title becomes the page title.

---
title: RFC 9999 — Widget Protocol
author: Riad
tags: [rfc, draft]
---

# Introduction

--no-frontmatter hides the header. Malformed frontmatter is ignored rather than fatal.

Mermaid diagrams

A ```mermaid fence is drawn as a diagram in the browser.

```mermaid
graph TD
  A[Start] --> B{Choice}
  B -->|yes| C[Do it]
  B -->|no| D[Skip]
```

Click a diagram (or press open in its toolbar) to fill the window with it:

| | | |---|---| | drag, arrow keys | pan | | wheel, pinch, + - | zoom | | double-click | zoom in there | | 0 | fit to the window | | Esc, close, click past it | close |

Diagrams follow the page theme, and mermaid ships with mdrfc, so nothing is fetched from the network. If a diagram won't parse, you get the source you wrote and the reason underneath it. The terminal view leaves a mermaid fence as a code block.

Font

Pages are set in Iosevka Brick, which ships with mdrfc, so a machine with no monospace font of its own reads the same as one with a dozen. Pick another family in the settings panel — it searches every font installed on your machine — and that choice sticks.

Contributing

See CONTRIBUTING.md for running from a clone.

License

MIT — see LICENSE.