Convert documents (PDF, EPUB, PPTX, DOCX, XLSX, HTML, images) to Markdown/JSON/HTML using marker-pdf with Claude Haiku LLM enhancement for accurate table, math, and form extraction. Use when user needs to extract content from documents, convert PDFs to markdown, or process document files.
Converts PDF, EPUB, PPTX, DOCX, XLSX, HTML, and images to Markdown/JSON/HTML using marker-pdf with LLM enhancement for accurate table and math extraction.
/plugin marketplace add xdanger/claude-plugins/plugin install xdanger-marker-plugins-marker@xdanger/claude-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Convert PDF, EPUB, PPTX, DOCX, XLSX, HTML, and image files to clean Markdown/JSON/HTML format using the marker-pdf tool with multimodal LLM enhancement.
# Install marker-pdf with full document support
uv tool install marker-pdf[full]
Requires Python 3.10+ and PyTorch.
marker_single "<file_path>" \
--output_format markdown \
--output_dir "<output_directory>" \
--use_llm \
--llm_service marker.services.claude.ClaudeService \
--claude_model_name claude-haiku-4-5 \
--claude_api_key $ANTHROPIC_API_KEY \
--disable_image_extraction
Note: --disable_image_extraction generates plain text output. Remove this flag if images need to be preserved.
| Format | Description | Use Case |
|---|---|---|
markdown | Formatted text with tables, LaTeX equations ($$-fenced), code blocks, image links | General document conversion |
html | Semantic HTML with <img>, <math>, <pre> tags | Web display |
json | Hierarchical structure with block types, bounding boxes, section hierarchy | Programmatic processing |
chunks | Flattened JSON optimized for RAG | Vector database ingestion |
--output_format: markdown (default), html, json, chunks--output_dir: Directory for output files--page_range: Specific pages, e.g., "0,5-10,20"--use_llm: Enable LLM for improved accuracy (tables, forms, math, handwriting)--llm_service: LLM service class (see LLM Services below)--block_correction_prompt: Custom prompt for output refinement--force_ocr: Force OCR on entire document, converts inline math to LaTeX--strip_existing_ocr: Remove existing OCR and re-process--redo_inline_math: Highest quality inline math conversion (use with --use_llm)--disable_image_extraction: Skip image extraction (plain text only)--paginate_output: Add page separators to output--extract_images: Enable image extraction (default: true)--config_json: Load configuration from JSON file--debug: Enable diagnostic logging--force_layout_block: Force layout type, e.g., Table--converter_cls: Custom converter classmarker_single document.pdf \
--use_llm \
--llm_service marker.services.claude.ClaudeService \
--claude_api_key $ANTHROPIC_API_KEY \
--claude_model_name claude-haiku-4-5
marker_single document.pdf \
--use_llm \
--llm_service marker.services.openai.OpenAIService \
--openai_api_key $OPENAI_API_KEY \
--openai_model gpt-4o
marker_single document.pdf \
--use_llm \
--llm_service marker.services.ollama.OllamaService \
--ollama_base_url "http://localhost:11434" \
--ollama_model llama3.2-vision
export GOOGLE_API_KEY="your-api-key"
marker_single document.pdf --use_llm
marker_single "./docs/report.pdf" \
--output_format markdown \
--output_dir "./docs/" \
--use_llm \
--llm_service marker.services.claude.ClaudeService \
--claude_model_name claude-haiku-4-5 \
--claude_api_key $ANTHROPIC_API_KEY \
--disable_image_extraction
marker_single "./docs/report.pdf" \
--output_format markdown \
--output_dir "./docs/" \
--use_llm \
--llm_service marker.services.claude.ClaudeService \
--claude_model_name claude-haiku-4-5 \
--claude_api_key $ANTHROPIC_API_KEY
marker_single "./docs/spreadsheet.pdf" \
--use_llm \
--force_layout_block Table \
--converter_cls marker.converters.table.TableConverter \
--output_format json
marker /path/to/input/folder --workers 4
cat > config.json << EOF
{
"force_ocr": true,
"use_llm": true,
"output_format": "markdown",
"disable_image_extraction": true,
"strip_existing_ocr": true,
"redo_inline_math": true
}
EOF
marker_single document.pdf --config_json config.json
$$...$$```language# for sections{
"pages": [
{
"id": "page_0",
"polygon": [[x1,y1], [x2,y2], ...],
"children": [
{
"id": "block_0",
"block_type": "Text|Table|Image|...",
"html": "<p>content</p>",
"polygon": [...],
"section_hierarchy": {...}
}
]
}
],
"metadata": {
"table_of_contents": [...],
"page_stats": [...]
}
}
Confirm the input file path exists
Determine output directory (default: same as input file)
Use AskUserQuestion tool to ask user preferences (ask both questions together):
Question 1 - Image Extraction:
Question 2 - LLM Service:
Based on user's answers, construct the command:
--disable_image_extraction--llm_service marker.services.claude.ClaudeService --claude_model_name claude-haiku-4-5 --claude_api_key $ANTHROPIC_API_KEY--llm_service marker.services.claude.ClaudeService --claude_model_name claude-sonnet-4-20250514 --claude_api_key $ANTHROPIC_API_KEY--llm_service marker.services.openai.OpenAIService --openai_api_key $OPENAI_API_KEY --openai_model gpt-4o--llm_service marker.services.ollama.OllamaService --ollama_base_url "http://localhost:11434" --ollama_model llama3.2-visionRun the marker_single command with chosen options
Report the output file location and any extraction notes
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.