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/AlekseiUL/hermes-researcher-agentnpx agentmods add skills/alekseiul/hermes-researcher-agent/markitdown-document-ingestionWrote 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/alekseiul/hermes-researcher-agent/markitdown-document-ingestion)<a href="https://agentmods.dev/skills/alekseiul/hermes-researcher-agent/markitdown-document-ingestion"><img src="https://agentmods.dev/badge/skills/alekseiul/hermes-researcher-agent/markitdown-document-ingestion/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/alekseiul/hermes-researcher-agent/markitdown-document-ingestion"><img src="https://agentmods.dev/badge/skills/alekseiul/hermes-researcher-agent/markitdown-document-ingestion.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00060 | $0.00999 |
| Opus 5 | $0.00030 | $0.00500 |
| Sonnet 5 | $0.00012 | $0.00200 |
| Haiku 4.5 | $0.00006 | $0.00100 |
Grade A, and why
markitdown-document-ingestion 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 12d 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 — 126 lines — stays where its author put it; the contents beside it link to each section on GitHub.
MarkItDown Document Ingestion
When to use
Use this skill when a research task includes a document or file that should become readable Markdown before analysis:
- public PDFs, reports, whitepapers, policy files, manuals, or papers;
- DOCX / PPTX / XLSX files shared as research sources;
- HTML files, CSV, JSON, XML, EPUB;
- trusted small ZIP bundles of public documents after size/file-count inspection;
- source packs that need to feed a source ledger or research brief.
The goal is not to make the document “true”. The goal is to create a readable analysis copy, then run the normal research evidence gate.
Recommended local tool
Microsoft MarkItDown is the preferred lightweight converter when available:
markitdown input.pdf -o output.md
markitdown input.docx -o output.md
markitdown input.pptx -o output.md
If the CLI is not installed, install it in your own environment according to the upstream project docs, for example in a local virtual environment:
python3 -m pip install markitdown
Do not put credentials or private documents into third-party services during conversion unless the user explicitly approves that path.
Safe workflow
- Confirm the document is in scope for the research task.
- Convert one explicit file, not a broad directory.
- For archives, inspect file count, total size, and paths before extraction or conversion; reject path traversal, huge archives, and unknown nested content.
- Save the Markdown copy under a task-specific working folder.
- Check the output before relying on it.
- Cite the original document as source-of-truth; Markdown is only an analysis copy.
Example:
mkdir -p research-artifacts/document-ingestion
markitdown ./sources/report.pdf -o ./research-artifacts/document-ingestion/report.md
wc -c ./research-artifacts/document-ingestion/report.md
sed -n '1,80p' ./research-artifacts/document-ingestion/report.md
Verification after conversion
Check for common failure modes:
- empty or tiny Markdown output;
- only metadata but no body;
- garbled text or broken Cyrillic/Unicode;
- missing pages, tables, speaker notes, or slides;
- tables converted as unreadable plain text;
- scanned PDF produced almost no text;
- private data accidentally included in the output.
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.
- 12d ago First seen · 126 lines · 60 tokens per session scan A c7a8e71ebc6e
markitdown-document-ingestion is a skill published in the GitHub repository AlekseiUL/hermes-researcher-agent (57 stars, last pushed 7d ago), licensed MIT. It adds 60 tokens to every session and 999 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-30.
Other skills, from other repositories
animate-objects
This spell transforms inert → reactive. It does NOT create new tools, train models, run one-off fixes, or build physical systems. The key pattern: existing artifact + trigger/watcher + bounded autonomy.
engineering-technical-writer
A technical writing guide for producing documentation that developers can understand and use.
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
livestock-archive-auditor
An audit assistant that compares livestock-farm Excel records with daily production reports.
ocr-and-documents
Extract text from PDFs/scans (pymupdf, marker-pdf).
google-workspace
Gmail, Calendar, Drive, Contacts, Sheets, and Docs — through Hermes-managed OAuth and a thin CLI wrapper. When gws is installed, the skill uses it as the execution backend for broader Google Workspace coverage; otherwise it falls back to the bundled Python client implementation.