Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/Azzygoatcoder/agent-useful-skillsnpx agentmods add skills/azzygoatcoder/agent-useful-skills/office-toolsWrote 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/azzygoatcoder/agent-useful-skills/office-tools)<a href="https://agentmods.dev/skills/azzygoatcoder/agent-useful-skills/office-tools"><img src="https://agentmods.dev/badge/skills/azzygoatcoder/agent-useful-skills/office-tools/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/azzygoatcoder/agent-useful-skills/office-tools"><img src="https://agentmods.dev/badge/skills/azzygoatcoder/agent-useful-skills/office-tools.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00069 | $0.01982 |
| Opus 5 | $0.00034 | $0.00991 |
| Sonnet 5 | $0.00014 | $0.00396 |
| Haiku 4.5 | $0.00007 | $0.00198 |
Grade A, and why
office-tools 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 9d 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 — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Office Tools — Office/PDF 文件处理
科研骨架的 Office 模块。Excel 数据处理 + markdown↔Office 转换 + PDF/Office 提图给 vision 读。
场景判定
| 场景 | 触发 | 命令 |
|---|---|---|
| Excel 数据处理 | 实验数据/表格分析 | read / stats |
| markdown 表 → Excel | 阅读报告/防撞车矩阵转 xlsx 分析 | md2xlsx |
| Excel → markdown | xlsx 回写笔记 | xlsx2md |
| CSV → Excel | 实验数据导入 | csv2xlsx |
| PDF/Office 提图 | 论文配图、报告插图 | source 优先(arXiv 源码包作者原图)→ extract 回退 → vision.py |
| markdown → Word | 课程作业/报告转 docx | md2docx(pandoc) |
| markdown → PPT | 课程汇报/讲稿转 pptx | md2pptx(pandoc) |
写作:markdown → Word/PPT(pandoc)
office-tools md2docx 笔记.md 报告.docx [--toc] [--reference-doc bin/templates/reference.docx]
office-tools md2pptx 讲稿.md 汇报.pptx [--slide-level 2] [--reference-doc 模板.pptx]
- LLM 写 markdown(天然输出)→ pandoc 转 Office,薄封装在 office_tools(pandoc 全部能力自然继承:公式/引用/双栏/备注)
- LaTeX 公式($..$) → Word/PPT 原生 OMML 方程(可编辑,实测 docx+pptx 都出);这是选 pandoc 而非其他路线的关键
- 中文字体:docx 用
--reference-doc bin/templates/reference.docx(已预设宋体正文/黑体标题/1.5倍距/首行缩进2字符) - pptx 结构:
#=分节标题页、##=一页,输出原生文本框(可编辑,非图片);公式同样 OMML - 重新生成默认模板:
pandoc -o reference.docx --print-default-data-file reference.docx→style-reference-docx;模板可在 WPS/Word 手动微调后保存即生效
关键能力:看图(模型无视觉,靠 vision 代理)
模型不能直接看 Office/PDF 里的图——正确链路:
office_tools extract pdf 论文.pdf --outdir 图/
→ vision.py 图/p7_img957.png "这是什么图?"
→ 模型通过 vision 描述理解图
- PDF:默认提取嵌入图;
--pages 1,3渲染整页为 PNG - docx/pptx:提取内嵌图片
- 依赖
vision.py(Qwen3-VL-32B,SiliconFlow)——读图的文字/结构说明走它,模型本身无视觉
拿论文原图:源码包优先(存在 LaTeX 源码版就直接拿)
多数 arXiv 论文有 LaTeX 源码包——需要论文原图时首选它,作者亲手画的原图无碎片/无渲染损耗、矢量保持矢量:
python papers/arxiv_fetch.py source <id> --outdir 笔记/assets/
# e-print 下载 → 解压 → \includegraphics 反查作者原图 → PDF 转 PNG
extract 只在无源码包时作回退(区域渲染;extract_image 原始字节会拿复合图碎片,已弃用)。
两阶段过滤(省 vision 调用)
不是所有图都值得 vision——extract 先免费滤装饰图,classify 只对幸存图花 vision:
extract pdf 论文.pdf --outdir 图/ # 免费层:尺寸/文件大小/页眉页脚 + [CAP]Figure 标题标记
classify 图/ # vision 层:幸存图分类 价值图/装饰图
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.
- 9d ago First seen · 105 lines · 69 tokens per session scan A 1d949cbbe7d4
office-tools is a skill published in the GitHub repository Azzygoatcoder/agent-useful-skills (6 stars, last pushed 11d ago), licensed MIT. It adds 69 tokens to every session and 1,982 once invoked, about $0.0003 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
dsh-office-artifacts
Create, repair, transform, or verify XLSX, DOCX, PPTX, and PDF deliverables with format-aware tools and reopen or render checks.
llama-parse
Use this skill to parse complex documents (PDFs, Word documents, PowerPoint presentations, Excel spreadsheets, or images) into clean Markdown or structured JSON using the LlamaParse API. Make sure to use this skill whenever the user asks to extract tables from PDFs, handle complex document structures (multi-column…
document-exports
Generate and TEST downloadable document exports (PDF/CSV) from a Node/Express backend — pdfkit streaming, CSV BOM, cents formatting, and the supertest/pdfkit pitfalls that silently break tests.
dsh-cowork
Read and write office documents and Jupyter notebooks (xlsx, pdf, docx, pptx, ipynb) with bounded windows and stable cell/slide addresses.
markdown-everything
Converts 20+ document formats (PDF, DOCX, XLSX, PPTX, images, audio) to Markdown. Invoke when user asks to convert documents, extract text from files, or transform formats to Markdown.
documents
Read, convert, and extract text from PDF, Word, Excel, PowerPoint, and OpenDocument files. Use when the user asks to read a document, convert between formats, pull text out of a PDF, or summarise a file the agent cannot open directly.