Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Convert documents, spreadsheets, images, and structured files into clean, structured Markdown optimized for AI processing without authentication.
Convert documents, spreadsheets, images, and structured files into clean, structured Markdown optimized for AI processing without authentication.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Convert files into clean, structured, AI-ready Markdown using the markdown.new API powered by Cloudflare Workers AI toMarkdown(). Supports 20+ formats including documents, spreadsheets, images, and structured data. No authentication required (500 requests/day per IP).
Use this skill whenever you need to: Extract text from files for LLM processing Convert PDFs or Office files into Markdown Normalize data into structured text Process uploaded user files Scrape webpage content into Markdown Convert images into AI-generated descriptions + content Common AI workflows: RAG ingestion pipelines Knowledge base creation Document summarization Dataset extraction Spreadsheet analysis OCR-like extraction from images
.pdf .docx .odt
.xlsx .xls .xlsm .xlsb .et .ods .numbers
.jpg .jpeg .png .webp .svg
.txt .md .csv .json .xml .html .htm Notes: Image conversion uses AI object detection + summarization. HTML URL conversion uses a web page pipeline. Uploaded HTML uses Workers AI conversion.
https://markdown.new
Returns plain Markdown text. GET /:file-url Example: curl -s "https://markdown.new/https://example.com/report.pdf"
Returns metadata + Markdown. GET /:file-url?format=json Example: curl -s "https://markdown.new/https://example.com/report.pdf?format=json"
Use when you want structured JSON response. POST / Content-Type: application/json Body: { "url": "https://example.com/report.pdf" } Example: curl -s https://markdown.new/ \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com/report.pdf"}'
Use when file is not publicly accessible. POST /convert multipart/form-data Example: curl -s https://markdown.new/convert \ -F "file=@document.pdf"
{ "success": true, "url": "https://example.com/report.pdf", "title": "Quarterly Report", "content": "# Quarterly Report\n\n...", "method": "Workers AI (file)", "duration_ms": 1200, "tokens": 850 }
{ "success": true, "data": { "title": "Q4 Report", "content": "# Q4 Report\n\n...", "filename": "report.xlsx", "file_type": ".xlsx", "tokens": 1250, "processing_time_ms": 320 } }
Use: GET /:url When: You only need Markdown text Speed is important No metadata required
Use POST when: Metadata is needed Token counts are required Monitoring or logging is implemented Building automation workflows
Use /convert only if: File is local File is private File requires authentication to access Otherwise always prefer URL conversion.
Agents should: Check "success": true Retry once if network failure Validate content length > 0 Fallback to alternate extraction if needed
500 requests/day per IP without API key No signup required Agents should: Cache results when possible Avoid duplicate conversions
const res = await fetch("https://markdown.new/", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ url: "https://example.com/file.pdf" }) }); const data = await res.json(); console.log(data.content);
import requests res = requests.post( "https://markdown.new/", json={"url": "https://example.com/file.pdf"} ) data = res.json() print(data["content"])
If user provides: Input TypeActionPublic file URLUse GET or POSTLocal fileUse POST /convertImageConvert then summarizeSpreadsheetConvert then analyzeWebpageConvert URL HTML
The Markdown should be: Clean Structured AI-friendly Minimal noise Ready for LLM ingestion
Complex PDF layouts may lose formatting Large spreadsheets may be truncated Images rely on AI interpretation accuracy Token limits may apply
This skill provides a universal file-to-Markdown conversion layer for AI systems with: No authentication Simple HTTP interface Multi-format support Structured output Fast processing Ideal for document ingestion, RAG pipelines, and automation agents.
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.