Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/graniet-ocr-and-documents
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, presentations, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
ocr-and-documents- Description
- Extract text from PDFs and scanned documents. Use web_extract for remote URLs, pymupdf for local text-based PDFs, marker-pdf for OCR/scanned docs. For DOCX use python-docx, for PPTX see the powerpoint skill.
- License
- MIT
- Instructions
- 174 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- name: missing
Files (4)
- DESCRIPTION.md
- SKILL.md
- extract_marker.py · scripts/
- extract_pymupdf.py · scripts/
SKILL.md (first lines)
## Kheish Compatibility
This skill is repo-local and stays inactive until explicitly activated.
When the original instructions refer to legacy tool names, use these Kheish mappings:
- `terminal` => `bash`
- `web_extract` => `web_fetch`, plus `web_search` when discovery is needed
- `search_files` => `grep_search` and `glob_search`
- `browser_*` tools require a browser-capable surfaced tool or MCP; if none is available, use the closest available surface and say so explicitly
When the instructions mention local helper files, resolve them from `${KHEISH_SKILL_DIR}`.
# PDF & Document Extraction
For DOCX: use `python-docx` (parses actual document structure, far better than OCR).
For PPTX: see the `powerpoint` skill (uses `python-pptx` with full slide/notes support).
This skill covers **PDFs and scanned documents**.
## Step 1: Remote URL Available?
If the document has a URL, **always try `web_extract` first**:
```
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])
web_extract(urls=["https://example.com/report.pdf"])
```
This handles PDF-to-markdown conversion via Firecrawl with no local dependencies.
Only use local extraction when: the file is local, web_extract fails, or you need batch processing.
## Step 2: Choose Local Extractor
| Feature | pymupdf (~25MB) | marker-pdf (~3-5GB) |
|---------|-----------------|---------------------|
| **Text-based PDF** | ✅ | ✅ |
| **Scanned PDF (OCR)** | ❌ | ✅ (90+ languages) |
| **Tables** | ✅ (basic) | ✅ (high accuracy) |
| **Equations / LaTeX** | ❌ | ✅ |
| **Code blocks** | ❌ | ✅ |
| **Forms** | ❌ | ✅ |
| **Headers/footers removal** | ❌ | ✅ |
| **Reading order detection** | ❌ | ✅ |
| **Images extraction** | ✅ (embedded) | ✅ (with context) |
| **Images → text (OCR)** | ❌ | ✅ |
| **EPUB** | ✅ | ✅ |
| **Markdown output** | ✅ (via pymupdf4llm) | ✅ (native, higher quality) |
| **Install size** | ~25MB | ~3-5GB (PyTorch + models) |
| **Speed** | Instant | ~1-14s/page (CPU), ~0.2s/page (GPU) |
**Decision**: Use pymupdf unless you need OCR, equations, forms, or complex layout analysis.
If the user needs marker capabilities but the system lacks ~5GB free disk:
> "This document needs OCR/advanced extraction (marker-pdf), which requires ~5GB for PyTorch and models. Your system has [X]GB free. Options: free up space, provide a URL so I can use web_extract, or I can try pymupdf which works for text-based PDFs but not scanned documents or equations."
---
## pymupdf (lightweight)
```bash
pip install pymupdf pymupdf4llm
```
**Via helper script**:
```bash
python scripts/extract_pymupdf.py document.pdf # Plain text
python scripts/extract_pymupdf.py document.pdf --markdown # Markdown
python scripts/extract_pymupdf.py document.pdf --tables # Tables
python scripts/extract_pymupdf.py document.pdf --images out/ # Extract images
python scripts/extract_pymupdf.py document.pdf --metadata # Title, author, pages
python scripts/extract_pymupdf.py document.pdf --pages 0-4 # Specific pages
```
**Inline**:
```bash
python3 -c "
import pymupdf
doc = pymupdf.open('document.pdf')
for page in doc:
print(page.get_text())
"
```
---
## marker-pdf (high-quality OCR)
```bash
# Check disk space first
python scripts/extract_marker.py --check
pip install marker-pdf
```
**Via helper script**:
```bash
python scripts/extract_marker.py document.pdf # Markdown
python scripts/extract_marker.py document.pdf --json # JSON with metadata
python scripts/extract_marker.py document.pdf --output_dir out/ # Save images
python scripts/extract_marker.py scanned.pdf # Scanned PDF (OCR)
python scripts/extract_marker.py document.pdf --use_llm # LLM-boosted accuracy
```
**CLI** (installed with marker-pdf):
```bash
marker_single document.pdf --output_dir ./output
marker /path/to/folder --workers 4 # Batch
```
---
## Arxiv Papers
```
# Abstract only (fast)
web_extract(urls=["https://arxiv.org/abs/2402.03300"])
# Full paperFrom graniet/kheish, MIT.
More from graniet/kheish
- 0.645score
trl-fine-tuning
graniet
Fine-tune LLMs using reinforcement learning with TRL - SFT for instruction tuning, DPO for preference alignment, PPO/GRPO for reward optimization, and reward…
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
godmode
graniet
Jailbreak API-served LLMs using G0DM0D3 techniques — Parseltongue input obfuscation (33 techniques), GODMODE CLASSIC system prompt templates, ULTRAPLINIAN…
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
lm-evaluation-harness
graniet
Evaluates LLMs across 60+ academic benchmarks (MMLU, HumanEval, GSM8K, TruthfulQA, HellaSwag).
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
gguf
graniet
GGUF format and llama.cpp quantization for efficient CPU/GPU inference.
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
vllm
graniet
Serves LLMs with high throughput using vLLM's PagedAttention and continuous batching.
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
creative-ideation
graniet
Generate project ideas through creative constraints.
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
peft
graniet
Parameter-efficient fine-tuning for LLMs using LoRA, QLoRA, and 25+ methods.
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
modal
graniet
Serverless GPU cloud platform for running ML workloads.
SkillCFreshness: C★ 217Claude Code +9 - 0.641score
find-nearby
graniet
Find nearby places (restaurants, cafes, bars, pharmacies, etc.) using OpenStreetMap.
SkillCFreshness: C★ 217Claude Code +9 - 0.641score
google-workspace
graniet
Gmail, Calendar, Drive, Contacts, Sheets, and Docs integration via gws CLI (googleworkspace/cli).
SkillCFreshness: C★ 217Claude Code +9 - 0.639score
webhook-subscriptions
graniet
Create and manage webhook subscriptions for event-driven agent activation.
SkillCFreshness: C★ 217Claude Code +9 - 0.636score
xitter
graniet
Interact with X/Twitter via the x-cli terminal client using official X API credentials.
SkillCFreshness: C★ 217Claude Code +9
Signals
- Stars
- 217
- Forks
- 18
- Open issues
- 0
- Last commit (this folder)
- Jun 25, 2026 (4 months ago)
- Last release
- Jun 27, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/graniet/kheish
- Website
- kheish.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from graniet
- 0.645score
vllm
graniet
Serves LLMs with high throughput using vLLM's PagedAttention and continuous batching.
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
gguf
graniet
GGUF format and llama.cpp quantization for efficient CPU/GPU inference.
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
creative-ideation
graniet
Generate project ideas through creative constraints.
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
lm-evaluation-harness
graniet
Evaluates LLMs across 60+ academic benchmarks (MMLU, HumanEval, GSM8K, TruthfulQA, HellaSwag).
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
modal
graniet
Serverless GPU cloud platform for running ML workloads.
SkillCFreshness: C★ 217Claude Code +9 - 0.645score
peft
graniet
Parameter-efficient fine-tuning for LLMs using LoRA, QLoRA, and 25+ methods.
SkillCFreshness: C★ 217Claude Code +9
Cite this page
ocr-and-documents skill. Agent Mart. https://agentmart.dev/skills/graniet-ocr-and-documents (last updated 2026-10-24)