allmd
v1.1.5
Published
CLI tool to convert various content types to markdown
Maintainers
Readme
- 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 with OpenAI transcription models and optional speaker controls.
- Images: describe images using GPT vision.
- Word documents: convert
.docxfiles to markdown. - EPUB ebooks: convert
.epubfiles to markdown. - CSV/TSV files: convert tabular data to markdown tables.
- PowerPoint: convert
.pptxpresentations 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
allmdwith no arguments to pick a converter.
Installation
npm install -g allmdSet the API keys for the converters you use:
export OPENAI_API_KEY=your-key
export FIRECRAWL_API_KEY=your-keyOPENAI_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+. Video/audio conversion uses the bundled ffmpeg-static binary.
Testing
npm run test
npm run test:e2enpm run test:e2e builds the package, runs npm pack, installs the packed tarball into an isolated temporary global npm prefix, and tests the installed allmd binary. It does not modify your real global npm packages.
Live converter smoke tests are opt-in because they use network APIs:
OPENAI_API_KEY=... FIRECRAWL_API_KEY=... npm run test:e2e:liveUsage
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 examplesOptions
-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 helpAPI
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