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/threefish-ai/negentropy/pdf-readernpx skills add ThreeFish-AI/negentropy --skill pdf-readergit clone --depth 1 https://github.com/ThreeFish-AI/negentropyWrote 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/threefish-ai/negentropy/pdf-reader)<a href="https://agentmods.dev/skills/threefish-ai/negentropy/pdf-reader"><img src="https://agentmods.dev/badge/skills/threefish-ai/negentropy/pdf-reader.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.00041 | $0.01462 |
| Opus 5 | $0.00020 | $0.00731 |
| Sonnet 5 | $0.00008 | $0.00292 |
| Haiku 4.5 | $0.00004 | $0.00146 |
Grade A, and why
pdf-reader 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 4d 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 — 256 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PDF Reader
专门处理 PDF 文档的内容提取,保持原文档的结构和格式。
核心功能
1. 内容提取
- 文本内容: 保留原始排版和格式
- 图片资源: 高质量提取并保存
- 表格数据: 转换为 Markdown 表格格式
- 数学公式: 保留 LaTeX 格式
- 元数据: 标题、作者、创建时间等
2. 结构保持
- 维持文档的章节结构
- 保留页面编号(如需要)
- 保持标题层级关系
- 维护列表和引用格式
Workflow
单文档处理
使用 data-extractor.convert_pdf_to_markdown:
参数配置:
extract_images: true # 提取图片
extract_tables: true # 提取表格
extract_formulas: true # 提取公式
embed_images: false # 图片保存为独立文件
include_metadata: true # 包含文档元数据
批量文档处理
使用 data-extractor.batch_convert_pdfs_to_markdown:
- 支持多个 PDF 文件同时处理
- 保持每个文档的独立性
- 统一的输出格式
页面范围处理(批次支持)
- 指定页面范围:
[start, end] - 支持非连续页面处理
- 用于预览或选择性提取
- 批次处理时指定具体页面段
图片处理流程
1. 图片提取
- 自动识别文档中的所有图片
- 保持原始分辨率
- 支持多种图片格式
2. 图片分析
使用 zai-mcp-server 分析图片内容:
- 理解图片描述
- 生成合适的文件名
- 创建 alt 文本
3. 图片保存
- 保存路径:
/path/to/source/images/pdf_name/ - 命名规则:
figure_{N}_{description}.png - 文件名使用英文,简短且具有描述性
输出格式
Markdown 内容结构
# 文档标题
## 元数据
- **标题**: {title}
- **作者**: {author}
- **页数**: {page_count}
- **创建时间**: {creation_date}
## 内容

### 1. 章节标题
章节内容...
| 表格标题 |
| -------- |
| 内容 |
$$
数学公式
$$
返回数据结构
{
"success": true,
"content": "Markdown 格式的内容",
"metadata": {
"title": "文档标题",
"author": "作者",
"page_count": 150,
"creation_date": "2025-01-01"
},
"assets": {
"images": [
{
"filename": "figure_1_diagram.png",
"path": "../images/pdf_name/figure_1_diagram.png",
"description": "系统架构图"
}
],
"tables": 5,
"formulas": 12
},
"statistics": {
"total_words": 15000,
"total_paragraphs": 80,
"processing_time": "2.5s"
}
}
使用示例
基本用法
提取这个 PDF 的内容:/path/to/document.pdf
指定页面范围
提取 PDF 的第 10-20 页:/path/to/document.pdf [10, 20]
批量处理
批量处理这些 PDF:
- /path/to/doc1.pdf
- /path/to/doc2.pdf
- /path/to/doc3.pdf
高级选项
提取 PDF 内容,需要包含所有图片和表格,但不提取公式:/path/to/document.pdf
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.
- 4d ago First seen · 256 lines · 41 tokens per session scan A 66ab982a1a40
pdf-reader is a skill published in the GitHub repository ThreeFish-AI/negentropy (10 stars, last pushed 4d ago), licensed Apache-2.0. It adds 41 tokens to every session and 1,462 once invoked, about $0.0002 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-31.
Other skills, from other repositories
literature
Load when extracting GEO accessions, dataset metadata, and downloadable references from a scientific paper (PDF / URL / DOI / PubMed ID / raw text) for downstream omics analysis. Skip when the dataset is already in hand; only routing a query (use orchestrator).
security-ownership-map
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. Trigger only when the user explicitly wants a security-oriented ownership or bus-factor analysis grounded in git history (for…
wechat-article-ingest
微信公众号文章 → Markdown 提取 + A层观点提取 + B层问题链生成。 支持直接链接抓取和 PDF 提取两种方式。.
pdf-fill
Fill PDF form fields from a data dict.
genomics-cnv-calling
Load when calling CNV segments via CBS-style segmentation on a bin-level log2-ratio CSV from exome / WGS coverage — emits per-segment 5-class CN state (amplification / gain / neutral / loss / deepdeletion), per-chromosome summary, genome-fraction-altered. Skip when working with single-cell / spatial CNV (use…
genomics-variant-annotation
Load when summarising functional impact of an annotated variant CSV — per-IMPACT counts (HIGH / MODERATE / LOW / MODIFIER), top consequences, gene-affected count. Skip when input is a raw VCF (convert with bcftools +split-vep first); calling raw variants (use genomics-variant-calling); filtering VCFs (use…