notque/markdown-converter
Convert PDF, Office, HTML, data, media, ZIP to Markdown.
npx skills add https://github.com/notque/vexjoy-agent --skill markdown-converter
Convert a file to Markdown with markitdown, zero install:
uvx 'markitdown[all]' input.pdf -o output.md # to file
uvx 'markitdown[all]' input.docx # to stdout
cat blob | uvx 'markitdown[all]' -x .pdf # stdin, with extension hint
When uvx is missing, run pipx run 'markitdown[all]' … with the same arguments. First run downloads dependencies; later runs hit the cache. Output preserves headings, tables, lists, and links.
For video transcripts, use the video-transcript skill.
| Input | Notes |
|---|---|
| PDF, .docx, .pptx, .xlsx, .xls | Document structure preserved |
| HTML, CSV, JSON, XML | Structured Markdown |
| Images | EXIF metadata + OCR text |
| Audio | EXIF metadata + speech transcription |
| ZIP, EPub | Iterates contents, converts each |
| Flag | Effect |
|---|---|
| -o FILE | Write output to FILE |
| -x .EXT | Extension hint for stdin input |
| -m MIME | MIME-type hint |
| -c CHARSET | Charset hint, e.g. UTF-8 |
Cause: page is an image; the base extractor reads text layers only.
Solution: render pages to images (pdftoppm), then convert the images so OCR runs.
Take notque/markdown-converter from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference uvx.
Without those the skill loads but fails at the first command.