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

mdtation

v0.2.3

Published

Desktop-inspired terminal markdown viewer for the agentic era — inline comments that flow to your clipboard and CLI.

Readme

🧘 mdtation

A better agentic feedback flow.

npm ci socket license

read, breathe, comment, loop

mdtation

A terminal markdown viewer with comments that stick to lines, persist between sessions, and copy as a reference any agent understands.

The problem

Agents ask for feedback in the worst possible ways.

  • Option pickers: A, B or C, and your real answer is "B, but only if the second half of C". There is no box for that, and no way to ask where B came from.
  • Itemized lists in a chat thread: Finding F7, section 2.1, recommended (b). The list scrolls away while you type, so you answer from memory.
  • A 300-line plan printed into the terminal is read by scrolling a buffer, and your thoughts about line 140 go nowhere.

The loop

  1. The agent writes the plan as a markdown file, not a message, and runs mdtation plan.md watch --until quit.
  2. You open the file in mdtation, read it full screen, and press c on the line (or drag-select the sentence) you disagree with.
  3. Each comment lands in the agent's terminal as you make it: line number, section path, quote, and your note.
  4. The agent replies with add --re <id> or rewrites the file. Both show up on your screen at once, no keypress.
  5. You quit, the watcher returns, the agent revises, and you go round once more.

Review the plan, not the chat. Specs, plans, drafts, reviews: the prose your agent writes deserves a real review flow, not a chat reply.

Install

npm i -g mdtation
mdtation plans/auth.md

The full-screen TUI runs under Bun. Under Node, mdtation renders to stdout instead.

Choose light or dark terminal colors with "theme": "light" or "theme": "dark" in mdtation.json. Dark is the default; MDTATION_THEME overrides the file for a single session.

MDTATION_THEME=light mdtation plans/auth.md

See it

| Comment on a line | Comment on a selection | Menus and palette | |---|---|---| | comment | select | menus |

Keys

| key | action | |---|---| | j k | move the caret (wheel and click work too) | | c | new comment on the caret line or selection | | e | edit the comment under the caret | | C | copy the comment as a reference | | [ ] | previous, next comment | | a | show all comments | | / | command palette | | m | hide or show the menu bar | | ? | help | | q | quit (^s saves checkbox and frontmatter edits first) |

Everything a TUI should have: menu bar, command palette, settings, all mouse ready. View options (color, marks, fences, tables, checkboxes, flow, scroll margin) are remembered.

CLI

mdtation plan.md watch                # block; print each comment as it lands (--json for one object per line)
mdtation plan.md watch --until quit   # ...and return when the viewer closes
mdtation plan.md list                 # print live comments as markdown (--since last for the new ones)
mdtation plan.md add "text" --re <id> # reply in a thread, shows inline in the viewer at once
mdtation plan.md mark                 # checkpoint for --since last
mdtation plan.md archive a1 b2        # done with these (restore to undo); d in the viewer does the same
mdtation plan.md prune --older 7d     # remove archived comments for good
mdtation plan.md print                # render to stdout and exit
mdtation plan.md status               # print the data dir
mdtation skill                        # print the agent skill

Comments live in one json per file under $MDTATION_HOME, $XDG_DATA_HOME/mdtation, or ~/.mdtation, keyed by absolute path, with an append-only .events.jsonl beside it that watch tails. Set MDTATION_AUTHOR so the agent's replies carry its name.

Tell your agent: "Run mdtation skill and follow it for plans/auth.md."

License

MIT