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

@seanmozeik/markdown-display

v0.4.4

Published

Beautiful terminal markdown viewer

Readme

md (markdown-display)

A markdown viewer for the terminal.

Features

Syntax highlighting — Shiki, the same engine VS Code uses. 100+ languages. Long lines wrap without breaking ANSI color state.

33 themes — Catppuccin, Dracula, GitHub, Gruvbox, Material, Nord, One Dark, Rose Pine, Solarized, Tokyo Night. Default is Catppuccin Frappé.

Clickable links — OSC 8 hyperlinks. Works in iTerm, WezTerm, VS Code terminal, kitty, Alacritty, Hyper.

Paging — Pipes to less when content exceeds terminal height. Short files print directly. Honors $MD_PAGER and $PAGER.

Layout — Width adapts to terminal, capped at 120 characters. Optional centering with maxWidth.

Typography — Soft hyphenation at syllable boundaries. Unicode box-drawing for tables. Nested blockquotes. Multi-level lists.

Nerd Fonts — Language icons in code block headers when available.

Fast — Bun. Standalone binary. No runtime dependencies.

File picker — Run with no arguments for interactive fuzzy search. Type to filter, Enter to open.

Truecolor — 24-bit RGB when supported, degrades to 256-color on older terminals. Auto-detected.

Standards — Respects NO_COLOR and --no-color. Runs on macOS, Linux, Windows.

md README.md
md README.md CHANGELOG.md
cat file.md | md
curl -s https://example.com/doc.md | md

Install

Homebrew

brew install seanmozeik/tap/md

From source (requires Bun)

git clone https://github.com/mozeik/markdown-display.git
cd markdown-display
bun install
bun run build

Produces a standalone binary. Move it to your PATH.

Windows — Binary is mdown to avoid conflict with the built-in md command.

Set-Alias -Name md -Value mdown -Option AllScope

Usage

md README.md
md README.md CHANGELOG.md
md docs/guide.md --width 80

Multiple files are concatenated with filename headers.

Interactive file picker — Run md with no arguments to fuzzy-search and select a markdown file. Type to filter, arrow keys to navigate, Enter to open. Files are sorted by modification time (most recent first).

-w, --width <n>     Output width (default: auto)
-t, --theme <name>  Color theme
--list-themes       Show available themes
-p, --plain         No colors
-r, --raw           Pass through unrendered
--no-color          Disable colors (same as NO_COLOR=1)
--no-pager          Print directly, skip pager
--scroll            Horizontal scroll for code
--wrap              Wrap code (default)

Library Usage

Use md as a library in your own CLI tools to render markdown with beautiful syntax highlighting and formatting.

import { renderMarkdown, render, DEFAULT_CONFIG } from '@seanmozeik/markdown-display';
import { Effect } from 'effect';

// Simple usage with defaults
const program = renderMarkdown('# Hello World\n\nThis is **markdown**.');
Effect.runSync(program);

// Advanced usage with custom config
const customConfig = { ...DEFAULT_CONFIG, width: 80, theme: 'github-dark' };
const advancedProgram = render(markdown, customConfig);
Effect.runSync(advancedProgram);

The library uses Effect v4 for composable error handling and async operations. All rendering functions return Effect programs that can be composed and run with Effect.runSync or Effect.runPromise.

Configuration

~/.config/md/config.toml

theme = "frappe"
width = "auto"
truecolor = "auto"
nerd_fonts = "auto"

[display]
padding = true
maxWidth = 0

[code]
wrap = true
continuation = "→"

[text]
hyphenation = true
locale = "en-us"

[links]
osc8 = "auto"
show_urls = false

[pager]
command = ""
args = ["-r", "-F", "-K", "-X"]

| Setting | Description | | ------------------- | ---------------------------------------------------------------------- | | theme | Color scheme. md --list-themes for options. | | width | Output width. "auto" uses terminal (max 120). | | truecolor | 24-bit color. "auto" detects, true forces, false uses 256-color. | | nerd_fonts | Icon support. "auto" detects. | | display.padding | Margins based on terminal width. | | display.maxWidth | Content width limit. 0 for full width. | | code.wrap | Wrap long lines. false for horizontal scroll. | | code.continuation | Character at line breaks. | | text.hyphenation | Break words at syllables. | | text.locale | Hyphenation language. | | links.osc8 | Clickable hyperlinks. | | links.show_urls | Print URL after link text. | | pager.command | Custom pager. Empty uses $MD_PAGER, $PAGER, or less. | | pager.args | Pager arguments. |

Build

bun run build         # standalone binary (fast iteration)
bun run build:release # full release with tarball + Homebrew formula
bun run dev           # development
bun test              # tests
bun run check         # lint + format

License

MIT