一键导入
mineru
MinerU document parsing API - convert PDF/DOC/PPT/images to Markdown/JSON. Supports OCR, formula recognition, table extraction, and batch processing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
MinerU document parsing API - convert PDF/DOC/PPT/images to Markdown/JSON. Supports OCR, formula recognition, table extraction, and batch processing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Grimoire — turn a PDF/document/raw text into reading notes + a reusable skill pack in one parse. Auto-classifies book/paper/document, scaffolds type-specific notes for an Obsidian vault, and mines per-source skills merged per book/course. Built on the MinerU parsing API (OCR, formula/table, batch). Scripts never call an LLM and never write the vault; skill install is OPT-IN (--install / scripts/skill-install.sh) and deliberately crosses the candidate-only boundary by explicit user request, recorded in the manifest. Raw text → skill via --from-text; cross-agent install + management via the grimoire-manage companion skill.
Plan and operate safe Kedou media workflows for authorized content: online video parsing, desktop downloader batch jobs, subtitle/danmaku/lyric extraction, Xiaohongshu/Zhihu/CSDN-style text extraction, and handoff to local CLI or Knowledge Hub processing. Use when the user mentions Kedou, 蝌蚪, kedou.life, video parsing/download, batch subtitle download, danmaku download, lyrics extraction, text/image extraction from supported platforms, or troubleshooting Kedou downloader/cookie/proxy/save-path issues.
Companion to Grimoire — the OPT-IN layer that takes a produced skill pack, asks the user which global agents to configure, installs it across them, and then manages it (status / list / sync / uninstall / preflight gate). Use after grimoire.sh has produced & you have reviewed a skill pack and the user wants it usable in their other agents (Claude Code / Codex / Trae / opencode / copilot / qwen / deepseek / stepfun), or wants to re-sync after a Trae/stepfun/deepseek app update, check cross-agent parity, remove a skill everywhere, or add a confirm-before-running gate. This deliberately crosses Grimoire's default "scripts never install skills" boundary by explicit user request and records it in the pack manifest. Triggers: 装 skill 到其它 agent / 把技能打通到所有 agent / 跨 agent 安装技能 / skill 没出现在某个 agent / 重新同步技能 / 卸载某个技能 / skill 确认门 / install skill across agents / cross-agent skill / sync skills after update / skill preflight gate / grimoire-manage.
把 PDF/DOC/PPT/Image 转成 Markdown。默认走本地 MinerU 3.1.4(M5 mbp 127.0.0.1:8010,1-3s/PDF),云端 fallback 走 mineru.net /api/v4(URL/extra_formats/local 离线)。一行命令 `pdf2md`,自动按输入路由。Trigger 词:pdf转md / pdf to markdown / 解析 pdf / mineru / pdf2md / 把这个 PDF 转成笔记 / 提取 PDF 内容 / arxiv 论文转 md。
YouTube 视频智能剪辑工具。下载视频和字幕,AI 分析生成精细章节(几分钟级别), 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频,并生成总结文案。 使用场景:当用户需要剪辑 YouTube 视频、生成短视频片段、制作双语字幕版本时。 关键词:视频剪辑、YouTube、字幕翻译、双语字幕、视频下载、clip video
| name | mineru |
| description | MinerU document parsing API - convert PDF/DOC/PPT/images to Markdown/JSON. Supports OCR, formula recognition, table extraction, and batch processing. |
| triggers | ["mineru","pdf解析","文档解析","document parsing","pdf to markdown","extract pdf"] |
MinerU converts PDF, DOC, DOCX, PPT, PPTX, PNG, JPG, JPEG, HTML into machine-readable Markdown/JSON. Supports OCR (109 languages), formula/table recognition, cross-page table merging, and batch processing.
Two modes:
https://mineru.net/api/v4 (no GPU required, token-based)mineru-api --port 8000 (self-hosted, requires GPU or CPU backend)~/.config/mineru/tokenAuthorization: Bearer <token>mkdir -p ~/.config/mineru
echo "YOUR_TOKEN" > ~/.config/mineru/token
chmod 600 ~/.config/mineru/token
| Item | Limit |
|---|---|
| Single file size | 200MB max |
| Single file pages | 600 pages max |
| Daily priority pages | 2000 pages/account |
| Batch upload | 200 files/request |
| Token validity | 90 days |
| Model | Use Case | Speed | Notes |
|---|---|---|---|
hybrid | Default since v2.7.0 — best of pipeline + vlm | Medium | Recommended for most use |
pipeline | General documents, CPU-friendly | Fast | Pure CPU support |
vlm | Complex layouts, higher accuracy | Slower | Needs GPU (10GB+ VRAM) |
MinerU-HTML | HTML output, preserves formatting | Medium | For web content |
Base URL: https://mineru.net/api/v4
POST /extract/task
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string | yes | - | File URL (no direct upload) |
| model_version | string | no | hybrid | hybrid / pipeline / vlm / MinerU-HTML |
| is_ocr | bool | no | false | Enable OCR |
| enable_formula | bool | no | true | Formula recognition |
| enable_table | bool | no | true | Table recognition |
| language | string | no | ch | Document language |
| data_id | string | no | - | Custom identifier |
| page_ranges | string | no | - | e.g. "2,4-6" |
| callback | string | no | - | Callback URL for async results |
| extra_formats | array | no | - | ["docx"], ["html"], ["latex"] |
Response:
{"code": 0, "data": {"task_id": "xxx"}, "msg": "ok"}
GET /extract/task/{task_id}
States: pending → running → done / failed / converting
Done response: includes full_zip_url (download link)
POST /file-urls/batch
Returns presigned upload URLs (valid 24h). System auto-submits extraction after upload.
POST /extract/task/batch
Submit multiple URLs at once, returns batch_id.
GET /extract-results/batch/{batch_id}
# FastAPI server
mineru-api --host 0.0.0.0 --port 8000
# Gradio WebUI
mineru-gradio --server-name 0.0.0.0 --server-port 7860
# OpenAI-compatible server (for remote VLM inference)
mineru-openai-server --port 30000
| Variable | Description | Default |
|---|---|---|
MINERU_MODEL_SOURCE | Model source: modelscope / huggingface | huggingface |
MINERU_API_MAX_CONCURRENT_REQUESTS | Max concurrent API requests | Unlimited |
MINERU_API_ENABLE_FASTAPI_DOCS | Enable /docs page | true |
Access at http://127.0.0.1:8000/docs after starting.
mineru -p input.pdf -o output/ -b hybrid-http-client -u http://server:30000
| Code | Issue | Fix |
|---|---|---|
| A0202 | Token invalid | Check Bearer prefix and token |
| A0211 | Token expired | Recreate at mineru.net |
| -60002 | Unrecognized format | Check file extension |
| -60005 | File too large | Max 200MB |
| -60006 | Too many pages | Max 600, split document |
| -60008 | URL timeout | Check URL accessibility |
| -60012 | Task not found | Verify task_id |
~/.claude/skills/mineru/scripts/mineru-parse.sh — full-featured CLI wrapper.
# URL mode
mineru-parse.sh https://example.com/doc.pdf
# Local file with options
mineru-parse.sh /path/to/file.pdf --model vlm --ocr --output /tmp/result
# Extra formats
mineru-parse.sh doc.pdf --format docx --format latex
# Page ranges
mineru-parse.sh doc.pdf --pages "1-5,8" --output ./results
# Auto-extract markdown from zip
mineru-parse.sh doc.pdf --output ./results --extract
import requests, time
TOKEN = open("~/.config/mineru/token").read().strip()
BASE = "https://mineru.net/api/v4"
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
def parse_document(url, model="hybrid", ocr=False, extra_formats=None):
"""Parse a document from URL, return download link."""
body = {
"url": url, "model_version": model,
"is_ocr": ocr, "enable_formula": True, "enable_table": True,
}
if extra_formats:
body["extra_formats"] = extra_formats
resp = requests.post(f"{BASE}/extract/task", headers=HEADERS, json=body)
task_id = resp.json()["data"]["task_id"]
while True:
result = requests.get(f"{BASE}/extract/task/{task_id}", headers=HEADERS).json()
state = result["data"]["state"]
if state == "done":
return result["data"]["full_zip_url"]
elif state == "failed":
raise Exception(f"Task failed: {result}")
time.sleep(5)
TOKEN=$(cat ~/.config/mineru/token)
# Submit
curl -s -X POST "https://mineru.net/api/v4/extract/task" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/doc.pdf","model_version":"hybrid"}'
# Check result
curl -s "https://mineru.net/api/v4/extract/task/{task_id}" \
-H "Authorization: Bearer $TOKEN"
pip install uv
uv pip install -U "mineru[all]"
Requirements: Python 3.10-3.13, 16GB+ RAM, 20GB+ SSD. GPU optional (Volta+ or Apple Silicon).