Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/unicomai/wanwu/pdf-explorenpx skills add UnicomAI/wanwu --skill pdf-exploregit clone --depth 1 https://github.com/UnicomAI/wanwuWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/unicomai/wanwu/pdf-explore)<a href="https://agentmods.dev/skills/unicomai/wanwu/pdf-explore"><img src="https://agentmods.dev/badge/skills/unicomai/wanwu/pdf-explore.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00192 | $0.03257 |
| Opus 5 | $0.00096 | $0.01629 |
| Sonnet 5 | $0.00038 | $0.00651 |
| Haiku 4.5 | $0.00019 | $0.00326 |
Grade A, and why
pdf-explore scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 249 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PDF Explore — navigate a PDF too big to embed
A 50-page PDF read in full is ~200K tokens of context. When the answer draws on several sections at once (summarize the methods; compare section 3 and section 5), or when the answer is "every page" (list all the datasets / citations / figures / benchmarks mentioned anywhere in this document), reading the whole thing page-by-page is the expensive way to get it. This skill parses the PDF once into persistent text with a deterministic Python kernel, then lets you narrow — by outline, by lexical scan, by regex — and read only the pages you actually need, reasoning over them yourself. Nothing you read vanishes: it is ordinary text and ordinary files.
Setup (any agent, no API key)
This is a pure skill — kernel.py is deterministic Python and you
(the base model) do all the reasoning. There is no host runtime and no
LLM API. Load the helpers once per session in a Python cell:
exec(open("skills/claude-science/pdf-explore/kernel.py").read())
# adjust the path to wherever this skill is installed
Nothing auto-loads it outside Claude Science. Then call the helpers
directly (no import). If a helper is "not defined", you haven't exec'd
kernel.py yet — go back and run the line above.
Dependencies: pip install pypdfium2 pillow (pillow does the PNG encoding
for mode="image"; it is not pulled in by the pypdfium2 wheel).
Which helper
| when | returns | |
|---|---|---|
pdf_pages(path, pages=[...], mode="text") |
you need several pages/sections at the same time — summaries, comparisons, anything where the answer draws on more than one range | [{page, text, n_chars}, ...] — persistent text; write to a file then read it |
pdf_outline(path) |
structured doc (paper, report, book) with an embedded TOC | [{page, heading, level}, ...] — the embedded outline, or [] if the PDF has none |
pdf_scan(path, query, top_k) |
narrow a long doc to a handful of candidate pages for a query | {hits: [{page, score, matched, text}], n_scanned} — a lexical pre-filter (no LLM); you read the shortlist and judge relevance |
pdf_grep(path, pattern) |
exhaustive regex sweep (DOIs, accession ids, every "Table N", emails) | [{page, matches, lines?}, ...] — every match with its page |
pdf_pages(mode="image", dpi=200) |
read a small value, axis label, or legend off a figure | [{page, image_path}, ...] — open the PNG with your agent's image tool |
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 249 lines · 192 tokens per session scan A bcc0556586ac
pdf-explore is a skill published in the GitHub repository UnicomAI/wanwu (2,454 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 192 tokens to every session and 3,257 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
data-analysis
Use this skill when the user uploads Excel (.xlsx/.xls) or CSV files and wants to perform data analysis, generate statistics, create summaries, pivot tables, SQL queries, or any form of structured data exploration. Supports multi-sheet Excel workbooks, aggregation, filtering, joins, and exporting results to…
data-analysis
Use this skill when the user uploads Excel (.xlsx/.xls) or CSV files and wants to perform data analysis, generate statistics, create summaries, pivot tables, SQL queries, or any form of structured data exploration. Supports multi-sheet Excel workbooks, aggregation, filtering, joins, and exporting results to…
prompt-writing
Create, refine, and optimize high-quality YAML prompts for AI assistants. Use when working with prompt templates, system prompts, agent prompts, or any prompt engineering tasks. Provides structure guidelines, template patterns, and quality standards for YAML-based prompts.
co-mail-and-drive
Read and send mail from the user's own Gmail or Outlook account, send from the agent's own address, manage their Outlook contacts, and list/search/download/upload their Google Drive files — with co gmail, co outlook, co email, and co gdrive. Use when the user asks about their inbox, an email they received or want to…
pptx-maker
Generate or restyle a PowerPoint deck. Use when the user wants to create or edit a .pptx presentation, build slides from text or a URL, or design a reusable slide style.
chat-complex-documents
Chat with and search your complex documents — ask questions, extract tables and fields, and get answers grounded in the source. Connects the hosted Unstructured Transform MCP server to parse, structure, and enrich PDFs, Word/Excel/PowerPoint, images, scanned files, emails, and 60+ other formats into clean, AI-ready…