GitHub - mblode/allmd: Convert web pages, YouTube videos, PDFs, Google Docs, video/audio files, and images to markdown.

Turn the whole universe into markdown.

npm version MIT License

  • Web pages: fetch any URL and convert to clean markdown with Firecrawl.
  • YouTube videos: extract transcripts with timestamps.
  • PDFs: parse text content from PDF files.
  • Google Docs: convert published Google Docs to markdown.
  • Video/audio: transcribe media files using Whisper.
  • Images: describe images using GPT vision.
  • Word documents: convert .docx files to markdown.
  • EPUB ebooks: convert .epub files to markdown.
  • CSV/TSV files: convert tabular data to markdown tables.
  • PowerPoint: convert .pptx presentations to markdown.
  • Tweets: capture tweets/X posts as markdown.
  • RSS/Atom feeds: convert feed entries to markdown.
  • Auto-detect: pass any URL or file — allmd figures out the type automatically.
  • AI formatting: non-web output is polished with GPT for consistent, readable markdown.
  • Interactive mode: run allmd with no arguments to pick a converter.

Installation

Set the API keys for the converters you use:

export OPENAI_API_KEY=your-key
export FIRECRAWL_API_KEY=your-key

OPENAI_API_KEY is required for AI-backed converters. FIRECRAWL_API_KEY is required for web page conversion. Web pages use Firecrawl markdown directly and do not require OPENAI_API_KEY.

Requires Node.js 20+ and ffmpeg for video/audio (bundled via ffmpeg-static).

Usage

Run allmd with no arguments for interactive mode, or pass any URL/file for auto-detection.

allmd https://example.com                       # auto-detect input type
allmd web https://example.com -o article.md
allmd youtube https://youtube.com/watch?v=dQw4w9WgXcQ -o transcript.md
allmd pdf document.pdf -o document.md
allmd gdoc https://docs.google.com/document/d/... -o doc.md
allmd video recording.mp4 -o transcript.md
allmd image screenshot.png -o description.md
allmd docx report.docx -o report.md
allmd epub book.epub -o book.md
allmd csv data.csv -o data.md
allmd pptx slides.pptx -o slides.md
allmd tweet https://x.com/user/status/123 -o tweet.md
allmd rss https://blog.example.com/feed -o feed.md
allmd examples                                  # show more usage examples

Options

-o, --output <file>      Write output to a specific file
-d, --output-dir <dir>   Output directory for converted files
-v, --verbose            Enable verbose output
-c, --clipboard          Read input from clipboard
    --copy               Copy output to clipboard
    --stdout             Print output to stdout instead of writing a file
    --parallel <n>       Number of parallel conversions (default: 3)
    --no-frontmatter     Skip YAML frontmatter in output
-V, --version            Show version
-h, --help               Show help

API

import { convertWeb, convertPdf, convertYoutube } from "allmd";

const result = await convertWeb("https://example.com");
console.log(result.markdown);

Available converters: convertWeb, convertYoutube, convertPdf, convertGdoc, convertVideo, convertImage, convertDocx, convertEpub, convertCsv, convertPptx, convertTweet, convertRss.

AI Agents

Add allmd as a skill for Claude Code, Cursor, Codex, and other AI coding assistants:

npx skills add mblode/allmd

License

MIT