markit-markdown-converter
Skill by ara.so — Daily 2026 Skills collection.
markit converts almost anything to markdown: PDFs, Word docs, PowerPoint, Excel, HTML, EPUB, Jupyter notebooks, RSS feeds, CSV, JSON, YAML, images (with EXIF + AI description), audio (with metadata + AI transcription), ZIP archives, URLs, Wikipedia pages, and source code files. It works as a CLI tool and as a TypeScript/Node.js library, supports pluggable converters, and integrates with OpenAI, Anthropic, and any OpenAI-compatible LLM API.
Installation
CLI Quick Reference
AI / LLM Configuration
Images and audio always get free metadata extraction. AI-powered description and transcription requires an API key.
.markit/config.json (created by markit init):
Environment variables always override config file values. Never store API keys in the config file — use env vars.
SDK Usage
Basic File and URL Conversion
With OpenAI for Vision + Transcription
With Anthropic for Vision
Using Built-in Providers via Config
Writing a Plugin
Plugins let you add new formats or override built-in converters. Plugin converters run before built-ins.
Basic Converter Plugin
Override a Built-in Converter
Register a Custom LLM Provider
Install and Use a Plugin
Common Patterns
Batch Convert a Directory
Convert URL List
CLI in Agent/Automation Scripts
Supported Formats Reference
Run markit formats to see the full live list including any installed plugins.
Troubleshooting
AI description/transcription not working
- Ensure the correct env var is set:
OPENAI_API_KEYorANTHROPIC_API_KEY - Run
markit config showto verify the resolved provider and model - For custom API bases (Ollama, etc.), confirm the server is running and the model supports vision
Plugin not loading
- Run
markit plugin listto confirm it's installed - Check the plugin exports a default function matching
(api: MarkitPluginAPI) => void - Try reinstalling:
markit plugin remove <name>thenmarkit plugin install <source>
PDF returns empty or garbled markdown
- The built-in converter uses text extraction (not OCR). Scanned PDFs need an OCR plugin.
- Try a custom plugin or pre-process with an OCR tool first.
Stdin (markit -) not working
- Pipe content directly:
cat file.pdf | markit - - Ensure the file type can be detected from content; use explicit hints if needed.
Config not being read
- Config is loaded from
.markit/config.jsonrelative to the current working directory - Run
markit initto create it, thenmarkit config showto verify


