v1.0.0 · MIT License · Node 18+

Markdown, beautifully
in your terminal.

Full CommonMark + GFM support. Syntax highlighting, tables, images, math, Mermaid diagrams, presentation mode, watch mode, and more.

↓ Install via npm ★ View on GitHub
$ npm install -g md-terminal
zsh — 80×24
❯ md README.md

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
               MY AWESOME PROJECT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Features
  ────────────

  ▸ Installation

  • Works everywhere Node 18+ runs
  • Zero config needed
  • Supports italic, bold, ~~strikethrough~~

╭─ TypeScript ───────────────────────────────────╮
│ const render = async (file: string) => {
│   const md = readFileSync(file, 'utf-8');
│   await print(md);
│ };
╰────────────────────────────────────────────────────╯

┌──────────┬────────┬──────────────┐
│ Feature  │ Status │ Notes        │
├──────────┼────────┼──────────────┤
│ Tables   │ ✔ Done  │ GFM tables   │
│ Mermaid  │ ✔ Done  │ ASCII render │
│ Math     │ ✔ Done  │ Unicode      │
└──────────┴────────┴──────────────┘

  ☑ Syntax highlighting
  ☑ Mermaid diagrams
  ☐ Your next feature

┃ "The best tool is the one you actually use."

  ──────────────────
  E = mc²   ∫ₐᵇ f(x)dx
  ──────────────────

────────────────────────────────────────────────────

Everything Markdown

Every feature. Zero config.

✨
Full Markdown Support
CommonMark + GFM: headings, paragraphs, bold, italic, strikethrough, inline code, links, images, blockquotes, and horizontal rules.
CommonMark + GFM
🎨
Syntax Highlighting
30+ languages with language-specific colors. JavaScript, TypeScript, Python, Rust, Go, SQL, YAML, and more — all beautifully highlighted.
highlight.js
⊞
Tables
GFM tables rendered with box-drawing characters, proper column alignment (left, center, right), and bold headers.
┌──┬──┐
☑
Task Lists
GitHub-style checkbox lists rendered as ☑ / ☐ with visual distinction between completed and pending tasks.
☑ ☐
🔗
Clickable Links
OSC 8 terminal hyperlinks for iTerm2, WezTerm, Kitty, and other modern terminals. Ctrl+Click to open URLs directly.
OSC 8
🖼
Image Rendering
Local and remote images rendered inline with terminal-image on supported terminals. ASCII art placeholder fallback for others.
terminal-image
📊
Mermaid Diagrams
Flowcharts, sequence diagrams, pie charts, Gantt charts, class diagrams, state diagrams — all rendered as beautiful ASCII art.
8 diagram types
∑
Math / LaTeX
Block ($$) and inline ($) math rendered with Unicode characters: superscripts, subscripts, Greek letters, operators, and more.
α β γ ∫ Σ ≤
👁
Watch Mode
Automatically re-renders when the file is saved. Perfect for writing Markdown with live preview in a split terminal.
--watch
🎞
Presentation Mode
Use --- as slide separator, then md slides.md --present to navigate with arrow keys. Full-screen, keyboard-driven slides.
--present
📁
Directory Browser
Run md . to browse Markdown files with keyboard navigation. Navigate directories, preview, and open files instantly.
md .
⚡
Shebang Support
Add #!/usr/bin/env md as the first line, chmod +x, and run ./notes.md directly. Markdown documents as executable apps.
chmod +x

Usage

Start in seconds

md README.md Render any Markdown file
md . Interactive file browser
md README.md --watch Watch mode (auto re-render on save)
md slides.md --present Presentation / slideshow mode
md ~/docs/ Browse Markdown in any directory
md --help Show full help text

Pro tip

Type README.md. Just works.

Add this shell function to auto-open *.md files when you type their name.

# ~/.zshrc or ~/.bashrc
command_not_found_handler() {
  if [[ "$1" == *.md ]] && [ -f "$1" ]; then
    md "$1"
    return 0
  fi
  return 127
}

# Then reload your shell:
source ~/.zshrc

# Now just type:
README.md   # ← opens and renders instantly!