Extract and structure text from scanned PDFs and document images with a local-first OCR workflow, layout-aware fallbacks, and explicit heavyweight dependency controls.
65
80%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./packages/ekko-agent/skills/ocr-and-documents/SKILL.mdUse this Skill when ordinary document extraction fails because the source is scanned, image-based, or layout-heavy.
Call skill_view for this Skill and use its returned baseDirectory. Helpers live in /scripts.
Prefer local processing. Do not upload a private document to an external OCR service unless the user explicitly authorizes that transfer.
python3 <baseDirectory>/scripts/extract_pymupdf.py input.pdf -o extracted.md
python3 <baseDirectory>/scripts/extract_marker.py --check
python3 <baseDirectory>/scripts/extract_marker.py input.pdf -o extracted.mdRun helpers with terminal_exec, using python3 as the command and arguments as an array. Use --help for exact options.
extract_pymupdf.py requires PyMuPDF:
python3 -m pip install pymupdfIts --markdown mode additionally requires pymupdf4llm.
extract_marker.py uses marker-pdf, which can require several gigabytes of packages and model downloads. Never install it automatically. Check available disk space and ask the user before installing or downloading large models.
If the source is a URL, first use an available browser or HTTP tool to identify whether it points to HTML or a document. Download only the requested document, respect authentication and access boundaries, and then process the local copy. Do not assume a specific web tool exists.
07ccb17
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.