PDF Toolkit
XiaomiMiMo/MiMo-Code
Reads, transforms, composes and fills PDFs with Python scripts for extraction, merging, watermarking, encryption, OCR and form filling.
A skill your agent uses when tasks involve reading, creating, or reviewing PDF files where rendering and layout matter; prefer visual checks by rendering pages (Poppler) and use Python tools such as…
$ npx skills add trailofbits/skills-curated --skill openai-pdf -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install trailofbits/skills-curated openai-pdf --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/trailofbits/skills-curated.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/openai-pdf/skills/openai-pdf .claude/skills/openai-pdf && 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 "openai-pdf" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/openai-pdf/skills/openai-pdf into .claude/skills/openai-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openai-pdf", 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/trailofbits/skills-curated/tree/main/plugins/openai-pdf/skills/openai-pdfType 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 trailofbits/skills-curated --skill openai-pdf -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install trailofbits/skills-curated openai-pdf --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/openai-pdf/skills/openai-pdf .agents/skills/openai-pdf && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openai-pdf" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/openai-pdf/skills/openai-pdf into .agents/skills/openai-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openai-pdf", 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 trailofbits/skills-curated --skill openai-pdf -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install trailofbits/skills-curated openai-pdf --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/openai-pdf/skills/openai-pdf .cursor/skills/openai-pdf && 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 "openai-pdf" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/openai-pdf/skills/openai-pdf into .cursor/skills/openai-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openai-pdf", 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/trailofbits/skills-curated.git --path plugins/openai-pdf/skills/openai-pdf--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 trailofbits/skills-curated --skill openai-pdf -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install trailofbits/skills-curated openai-pdf --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/openai-pdf/skills/openai-pdf .gemini/skills/openai-pdf && 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 "openai-pdf" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/openai-pdf/skills/openai-pdf into .gemini/skills/openai-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openai-pdf", 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 trailofbits/skills-curated openai-pdfInstalls 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 trailofbits/skills-curated --skill openai-pdf -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/openai-pdf/skills/openai-pdf .github/skills/openai-pdf && 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 "openai-pdf" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/openai-pdf/skills/openai-pdf into .github/skills/openai-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openai-pdf", 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 trailofbits/skills-curated --skill openai-pdf -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install trailofbits/skills-curated openai-pdf --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/openai-pdf/skills/openai-pdf .opencode/skills/openai-pdf && 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 "openai-pdf" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/openai-pdf/skills/openai-pdf into .opencode/skills/openai-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openai-pdf", 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.
openai-pdfA skill your agent uses when tasks involve reading, creating, or reviewing PDF files where rendering and layout matter; prefer visual checks by rendering pages (Poppler) and use Python tools such as…
Openai PDF is an agent skill from trailofbits/skills-curated, published by the product's own GitHub organization. Use when tasks involve reading, creating, or reviewing PDF files where rendering and layout matter; prefer visual checks by rendering pages (Poppler) and use Python tools such as reportlab, pdfplumber, and pypdf for generation and extraction. Originally from OpenAI's curated skills catalog.
Its SKILL.md is about 670 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Documents & Office, covering PDF. It works with pypdf, OpenAI and Python. The repository describes itself as: Curated, community-vetted Claude Code plugin marketplace. The licence is CC-BY-SA-4.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6d05be4. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadGrepGlobWriteEditFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
uvpython3brewapt-getpdftoppmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.
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.
Openai PDF loads about 669 tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 273 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 noted patterns worth knowing about, such as sudo or a known installer.
sudo apt-get install -y poppler-utilsallowed-tools: Bash, Read, Grep, Glob, Write, EditAutomated 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.
The full file from trailofbits/skills-curated at commit 6d05be4, republished under its CC-BY-SA-4.0 licence (© trailofbits). 273 words, ~669 tokens.
.claude/skills/openai-pdf/SKILL.md (or your agent's skills folder).pdftoppm if available.reportlab to generate PDFs when creating new documents.pdfplumber (or pypdf) for text extraction and quick checks; do not rely on it for layout fidelity.tmp/pdfs/ for intermediate files; delete when done.output/pdf/ when working in this repo.Prefer uv for dependency management.
Python packages:
uv pip install reportlab pdfplumber pypdfIf uv is unavailable:
python3 -m pip install reportlab pdfplumber pypdfSystem tools (for rendering):
# macOS (Homebrew)
brew install poppler
# Ubuntu/Debian
sudo apt-get install -y poppler-utilsIf installation isn't possible in this environment, tell the user which dependency is missing and how to install it locally.
No required environment variables.
pdftoppm -png $INPUT_PDF $OUTPUT_PREFIX<!-- TODO: review -->
© trailofbits, CC-BY-SA-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/openai-pdf/skills/openai-pdf of trailofbits/skills-curated.
Open the folder on GitHubat commit 6d05be4
We found 9 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 9 other GitHub owners. This page covers the copy in trailofbits/skills-curated, which our catalogue first saw on October 7, 2026.
Openai PDF 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 |
|---|---|---|---|---|---|---|
| Openai PDF this skilltrailofbits/skills-curated | 512 | 9 repos | ~669 | Automated safety check: Notes | CC-BY-SA-4.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 | |
| PDFNousResearch/hermes-agent | 252k | — | ~3.1k | Automated safety check: Pass | MIT | |
| PDF ExploreHughYau/AcademicForge | 2.6k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| PDF Readerespennilsen/pi | 122 | — | ~1.6k | Automated safety check: Pass | MIT |
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.
NousResearch/hermes-agent
PDF files: create, read, merge, fill, OCR, edit text. An agent skill from NousResearch/hermes-agent.
HughYau/AcademicForge
A skill your agent uses when the user has attached a PDF, paper, report, or other document and the answer needs content from more than one place in it: summarize the methods or any other section…
espennilsen/pi
Read and extract content from PDF files — text, tables, metadata, and images.
JimLiu/science-skills
A skill your agent uses when the user has attached a PDF, paper, report, or other document and the answer needs content from more than one place in it: summarize the methods or any other section…
trailofbits/skills-curated
Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV/JSON for graph databases and visualization.
trailofbits/skills-curated
A skill your agent uses when the task involves reading, creating, or editing .docx documents, especially when formatting or layout fidelity matters; prefer python-docx plus the bundled…
trailofbits/skills-curated
A skill your agent uses when the agent is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script…
trailofbits/skills-curated
A skill your agent uses when the user asks to create, scaffold, or edit Jupyter notebooks (.ipynb) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script…
trailofbits/skills-curated
A skill your agent uses when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli…
trailofbits/skills-curated
Searches X/Twitter for real-time perspectives, dev discussions, product feedback, breaking news, and expert opinions using the X API v2.
Categories
A skill your agent uses when tasks involve reading, creating, or reviewing PDF files where rendering and layout matter; prefer visual checks by rendering pages (Poppler) and use Python tools such as…. Openai PDF is an agent skill from trailofbits/skills-curated, published by the product's own GitHub organization. Use when tasks involve reading, creating, or reviewing PDF files where rendering and layout matter; prefer visual checks by rendering pages (Poppler) and use Python tools such as reportlab, pdfplumber, and pypdf for generation and extraction.
Openai PDF fits situations like: tasks involve reading; reviewing PDF files where rendering and layout matter; prefer visual checks by rendering pages (Poppler) and use Python tools such as reportlab; pypdf for generation and extraction.
Run `npx skills add trailofbits/skills-curated --skill openai-pdf -a claude-code`. Or copy the skill folder (plugins/openai-pdf/skills/openai-pdf in trailofbits/skills-curated) into .claude/skills/openai-pdf in your project. Claude Code loads it when a task matches its description.
Run `npx skills add trailofbits/skills-curated --skill openai-pdf -a codex`. Or copy the skill folder (plugins/openai-pdf/skills/openai-pdf in trailofbits/skills-curated) into .agents/skills/openai-pdf 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 trailofbits/skills-curated --skill openai-pdf -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openai-pdf, .gemini/skills/openai-pdf, .github/skills/openai-pdf and .opencode/skills/openai-pdf in your project.
Going by SKILL.md and its folder, Openai PDF needs the command-line tools its instructions call (uv, python3, brew, apt-get and pdftoppm). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Write, Edit.
SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Openai PDF is published under the CC-BY-SA-4.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 669 tokens (SKILL.md is roughly 2.7k 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 Openai PDF: PDF Toolkit (XiaomiMiMo/MiMo-Code, 14k stars), PDF Generation, Forms and Extraction (pipeshub-ai/pipeshub-ai, 3.8k stars), PDF (NousResearch/hermes-agent, 252k stars) and PDF Explore (HughYau/AcademicForge, 2.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
trailofbits (a GitHub organization, an official publisher) maintains it in trailofbits/skills-curated, which has 512 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on July 14, 2026.
Source: trailofbits/skills-curated on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.