PDF Processing
anthropics/skills
Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.
Extracts text from images and PDFs, including invoices, receipts, ID cards and tables, with plain text, JSON or Markdown output and a choice of OCR providers.
$ npx skills add YaoApp/yao --skill yao-ocr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install YaoApp/yao yao-ocr --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/YaoApp/yao.git skills-src && mkdir -p .claude/skills && cp -r skills-src/tools/skills/yao-ocr .claude/skills/yao-ocr && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "yao-ocr" agent skill from https://github.com/YaoApp/yao/tree/main/tools/skills/yao-ocr into .claude/skills/yao-ocr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yao-ocr", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/YaoApp/yao/tree/main/tools/skills/yao-ocrType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add YaoApp/yao --skill yao-ocr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install YaoApp/yao yao-ocr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/YaoApp/yao.git skills-src && mkdir -p .agents/skills && cp -r skills-src/tools/skills/yao-ocr .agents/skills/yao-ocr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "yao-ocr" agent skill from https://github.com/YaoApp/yao/tree/main/tools/skills/yao-ocr into .agents/skills/yao-ocr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yao-ocr", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add YaoApp/yao --skill yao-ocr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install YaoApp/yao yao-ocr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/YaoApp/yao.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/tools/skills/yao-ocr .cursor/skills/yao-ocr && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "yao-ocr" agent skill from https://github.com/YaoApp/yao/tree/main/tools/skills/yao-ocr into .cursor/skills/yao-ocr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yao-ocr", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/YaoApp/yao.git --path tools/skills/yao-ocr--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add YaoApp/yao --skill yao-ocr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install YaoApp/yao yao-ocr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/YaoApp/yao.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/tools/skills/yao-ocr .gemini/skills/yao-ocr && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "yao-ocr" agent skill from https://github.com/YaoApp/yao/tree/main/tools/skills/yao-ocr into .gemini/skills/yao-ocr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yao-ocr", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install YaoApp/yao yao-ocrInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add YaoApp/yao --skill yao-ocr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/YaoApp/yao.git skills-src && mkdir -p .github/skills && cp -r skills-src/tools/skills/yao-ocr .github/skills/yao-ocr && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "yao-ocr" agent skill from https://github.com/YaoApp/yao/tree/main/tools/skills/yao-ocr into .github/skills/yao-ocr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yao-ocr", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add YaoApp/yao --skill yao-ocr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install YaoApp/yao yao-ocr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/YaoApp/yao.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/tools/skills/yao-ocr .opencode/skills/yao-ocr && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "yao-ocr" agent skill from https://github.com/YaoApp/yao/tree/main/tools/skills/yao-ocr into .opencode/skills/yao-ocr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yao-ocr", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
yao-ocrExtracts text from images and PDFs, including invoices, receipts, ID cards and tables, with plain text, JSON or Markdown output and a choice of OCR providers.
The skill wraps the ocr_recognize tool, called through the tai command line. It takes a file path or URL for an image or PDF and can use either a vision-language model or a traditional OCR service such as Baidu, Google, Azure or PaddleOCR, choosing one automatically when you do not name a provider.
Options control the recognition type (general by default, with presets such as table and invoice), the output format (text, JSON with coordinates and fields, or Markdown), accurate or standard mode, a language hint and a PDF page range. A custom prompt can steer vision-language recognition only; traditional OCR ignores it.
Read from SKILL.md and the folder at commit 0b6ee5f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Yao OCR Tools loads about 1.6k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 508 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 508 words (~1,635 tokens).
“Two tools for optical character recognition, supporting both VLM-OCR (vision language models) and traditional OCR APIs (Baidu, Google, Azure, PaddleOCR).”
Just SKILL.md in tools/skills/yao-ocr of YaoApp/yao.
Open the folder on GitHubat commit 0b6ee5f
Yao OCR Tools next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Yao OCR Tools this skillYaoApp/yao | 8.1k | — | ~1.6k | Automated safety check: Pass | Custom licence | |
| PDF Processinganthropics/skills | 180k | 48 repos | ~2k | Automated safety check: Pass | Proprietary | |
| PDF Processing with PythonHKUDS/DeepTutor | 41k | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| PDF ToolkitTokenRhythm/opensquilla | 7.1k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| PDF ToolkitXiaomiMiMo/MiMo-Code | 14k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| PDF Generation, Forms and Extractionpipeshub-ai/pipeshub-ai | 3.8k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 |
anthropics/skills
Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.
HKUDS/DeepTutor
Reads, extracts from, creates, merges, splits, watermarks, encrypts and fills PDF files with pdfplumber, pypdf and reportlab inside a Python sandbox.
TokenRhythm/opensquilla
Deterministic PDF operations through bundled scripts: extract text and tables, merge files or page ranges, split by range, fill form fields and build PDFs from data.
XiaomiMiMo/MiMo-Code
Reads, transforms, composes and fills PDFs with Python scripts for extraction, merging, watermarking, encryption, OCR and form filling.
pipeshub-ai/pipeshub-ai
Picks the right library for generating a new PDF, filling an existing PDF form, or extracting text and tables, defaulting to Node where possible.
agentscope-ai/QwenPaw
Handles PDF tasks with Python libraries and command-line tools: extract text and tables, merge, split, rotate, create, fill forms and more.
YaoApp/yao
Lets an agent read and describe images through a vision model and generate or edit images from text prompts, using the tai command-line tool.
YaoApp/yao
Lists, downloads, references and deploys agents on a Yao host through five bash-invoked tools, keeping edits to the smith namespace while allowing read-only study of any agent.
YaoApp/yao
Transcribes audio files such as mp3, m4a, wav and webm to text with the tai audio_transcribe tool, and lists the available speech-to-text providers.
YaoApp/yao
Starts, lists, checks, restarts and stops long-running background services through Yao daemon tools, reporting the verified port and URL of each.
YaoApp/yao
Starts, lists, monitors, waits on and stops long-running background commands through a dedicated set of job-management tools.
YaoApp/yao
Lists workspaces and reads or writes their files on a remote node through five tai tool commands, for cross-node file work the local filesystem cannot do.
Categories
Extracts text from images and PDFs, including invoices, receipts, ID cards and tables, with plain text, JSON or Markdown output and a choice of OCR providers. The skill wraps the ocr_recognize tool, called through the tai command line. It takes a file path or URL for an image or PDF and can use either a vision-language model or a traditional OCR service such as Baidu, Google, Azure or PaddleOCR, choosing one automatically when you do not name a provider.
Yao OCR Tools fits situations like: pulling structured fields out of an invoice or receipt PDF; converting a photographed table into Markdown; reading text from ID cards, bank cards or business licenses; recognizing handwritten documents or a page range of a scanned PDF.
Run `npx skills add YaoApp/yao --skill yao-ocr -a claude-code`. Or copy the skill folder (tools/skills/yao-ocr in YaoApp/yao) into .claude/skills/yao-ocr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add YaoApp/yao --skill yao-ocr -a codex`. Or copy the skill folder (tools/skills/yao-ocr in YaoApp/yao) into .agents/skills/yao-ocr in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add YaoApp/yao --skill yao-ocr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/yao-ocr, .gemini/skills/yao-ocr, .github/skills/yao-ocr and .opencode/skills/yao-ocr in your project.
SKILL.md names no scripts, command-line tools or credentials: Yao OCR Tools is instructions for the agent only. Our summary lists: The tai command line tool; An OCR provider or LLM connector set up for it.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Yao OCR Tools has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.
About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Yao OCR Tools: PDF Processing (anthropics/skills, 180k stars), PDF Processing with Python (HKUDS/DeepTutor, 41k stars), PDF Toolkit (TokenRhythm/opensquilla, 7.1k stars) and PDF Toolkit (XiaomiMiMo/MiMo-Code, 14k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
YaoApp (a GitHub organization) maintains it in YaoApp/yao, which has 8,090 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 5, 2026.
Source: YaoApp/yao on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.