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/deja111vu/docuflow/docuflow-usingnpx skills add deja111vu/docuflow --skill docuflow-usinggit clone --depth 1 https://github.com/deja111vu/docuflowWhat 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.00156 | $0.03619 |
| Opus 5 | $0.00078 | $0.01809 |
| Sonnet 5 | $0.00031 | $0.00724 |
| Haiku 4.5 | $0.00016 | $0.00362 |
Grade A, and why
docuflow-using 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 yesterday.
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 — 279 lines — stays where its author put it; the contents beside it link to each section on GitHub.
docuflow — AI-agent interface for office documents
docuflow provides a unified read / create / edit interface for .docx, .xlsx, and .pdf through MCP tools (preferred for agents) or the Python API (for scripts). Markdown is the lingua franca: documents are read as markdown, edits are expressed as markdown or as structured EditPatch objects. Version 0.2.0 brought an in-place editor, run-aware search/replace, and a template-aware writer — apply_patches is now the recommended path for edits, not edit_document.
1. Before you start: discover the sandbox roots
get_sandbox_roots() # → ["C:/Users/.../Documents/Work", ...]
Every path you pass to a tool must live inside one of the allowed roots. If the user gives you a path outside the roots, you'll get PathSecurityError. The fix is either to add a root on MCP startup, or to use relative names within an allowed directory.
2. Choosing the right tool
| Task | Tool | Notes |
|---|---|---|
| Read the whole document | read_document |
Returns markdown + outline + tables + metadata. Large JSON. |
| Structure only | get_outline |
Cheaper than read_document for big files. |
| Tables only | extract_tables |
|
| Metadata (author, pages, size) | get_document_info |
|
| Create a new document from scratch | create_document(path, markdown[, template_path]) |
Full rewrite. template_path (optional) is a reference .docx whose fonts and sectPr are inherited. |
| Fill a Jinja2 template | render_template(template_path, output_path, data) |
template_path — markdown with Jinja2 + frontmatter or a .docx (in which case the formatting is inherited). Optional markdown_template inline. |
| List variables a template needs | list_template_variables(template_path) |
|
| Targeted edits by stable IDs | apply_patches(path, patches) |
Recommended for edits: in-place, preserves fonts, table borders, sectPr. |
| Bulk text replacement | find_and_replace(path, find, replace[, regex]) |
In-place, run-aware: preserves bold/italic/color on neighbouring runs. |
| Rewrite a document from markdown | edit_document(path, markdown) |
Legacy. Drops all formatting. Only use when recreating over an existing file you don't care about. |
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.
- yesterday First seen · 279 lines · 156 tokens per session scan A fb79aa627550
docuflow-using is a skill published in the GitHub repository deja111vu/docuflow (0 stars, last pushed 2mo ago), licensed MIT. It adds 156 tokens to every session and 3,619 once invoked, about $0.0008 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
doc-reader
Read any common document/data file — PDF, Word (.docx), Excel (.xlsx/.xls), PowerPoint (.pptx), images (OCR), CSV/TSV, plain text, JSON/YAML/TOML, HTML/XML, and most source-code files. Use the readdocument tool.
markdown-converter
Markdown conversion: PDF, Office, HTML, data, OCR, audio, ZIP, YouTube.
skill-doc-delivery
Convert markdown to DOCX, PPTX, XLSX, PDF office documents — use when you need exportable deliverables.
kordoc
Use this skill whenever the user wants to read, create, fill, edit, compare, validate, or preview Korean Hangul/official documents — .hwp (HWP 3.x/5.x), .hwpx, .hml (HWPML) — or convert Korean-office PDF/DOCX/XLS/XLSX to Markdown. Triggers include any mention of 'hwp', 'hwpx', 'hml', '한글 문서', '아래한글', '한컴', '공문서'…
omh-materials-package
This is a Hermes-native materials-package workflow skill.
superlinked-docs
Offload document, image, and structured-output work to the Superlinked inference cluster: convert PDF/DOCX/PPTX/XLSX/HTML/scans to clean markdown, describe an image (caption + tags), or produce schema/grammar-constrained JSON off the cluster — instead of ingesting the file directly, which can reduce the tokens billed…