pdf-to-md

pdf-to-md is a skill for Claude Code from fmschulz/omics-skills. It costs 38 tokens per session (3,219 once invoked), scanned A, original, MIT.

A workflow for converting PDF and office documents into clean Markdown, or plain text formatted with headings and sections. Scientific papers receive an additional bundle containing Markdown and structure-checking files for later analysis.

In plain words
What is it for?
Use it to extract reports, slides, letters, forms, and scientific papers for analysis, manuscript preparation, or computer-science article extraction.
Why use it?
It provides a local document-extraction path while warning that automatic PDF parsing can produce errors such as broken words, missing author details, and merged columns.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the omics-skills plugin — 34 skills, 4 agents shipped together

Good fit Use it to extract reports, slides, letters, forms, and scientific papers for analysis, manuscript preparation, or computer-science article extraction.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/fmschulz/omics-skills/pdf-to-md
Install

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.

Any agent
npx skills add fmschulz/omics-skills --skill pdf-to-md
Clone the repo
git clone --depth 1 https://github.com/fmschulz/omics-skills

Made for: Claude Code.

Or install omics-skills, the plugin that ships this one along with the rest of its 34 skills, 4 agents.

Wrote 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.

agentmods badge for pdf-to-md

README.md
[![agentmods](https://agentmods.dev/badge/skills/fmschulz/omics-skills/pdf-to-md/github.svg)](https://agentmods.dev/skills/fmschulz/omics-skills/pdf-to-md)
Your own site
<a href="https://agentmods.dev/skills/fmschulz/omics-skills/pdf-to-md"><img src="https://agentmods.dev/badge/skills/fmschulz/omics-skills/pdf-to-md/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.

agentmods 80×15 button for pdf-to-md

Your own site · 80×15
<a href="https://agentmods.dev/skills/fmschulz/omics-skills/pdf-to-md"><img src="https://agentmods.dev/badge/skills/fmschulz/omics-skills/pdf-to-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 38 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,219 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 1 finding, up to medium

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • medium Data Exfiltration · line 80
    Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
    Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00038 $0.03219
Opus 5 $0.00019 $0.01610
Sonnet 5 $0.00008 $0.00644
Haiku 4.5 $0.00004 $0.00322

Measured 10d ago against content hash 8abddc830f81, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

pdf-to-md scanned grade A with 1 finding 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 10d ago.

The scan reads SKILL.md. This mod also ships 7 executable files (scripts/article_extraction.py, scripts/build_section_audit.py, scripts/liteparse_to_md.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- For the OCR API engine: `OCR_API_KEY` or `NELLI_API_KEY`, plus `curl`.
skills/pdf-to-md/SKILL.md · 268 lines

How it starts

The opening of the file, as written. The whole thing — 268 lines — stays where its author put it; the contents beside it link to each section on GitHub.

pdf-to-md

Turn a PDF into Markdown. The right path depends on the document type and whether external document submission has been approved:

  • Scientific paper → produce the canonical paper-to-md bundle (Markdown + section_audit.json + article.json) so it can feed csag-extraction. Use LiteParse v2 locally unless the user explicitly approves the remote OCR API.
  • Any other PDF (reports, slides, letters, forms) → just convert to Markdown with LiteParse v2 for a fast, local, no-key result. Stop there.

LiteParse must be v2 (run-llama/liteparse, the Rust rewrite with the LiteParse Python API and lit CLI). LiteParse v1 is a different, unsupported API. liteparse_to_md.py pins liteparse>=2,<3 and refuses to run on anything else, so uv run always provisions the right per-platform v2 binary inside the wheel — nothing to vendor or compile, and no API key. OCR is on by default (bundled Tesseract).

LiteParse output is a draft, not the deliverable. LiteParse is a mechanical parser: it has no native Markdown, infers headings from font size/weight, and introduces artifacts (split words, broken hyphenation, dropped author blocks, merged columns). Whenever LiteParse is the engine, the LLM running this skill is responsible for shaping that draft into the right form — see "Shape the LiteParse output" below. The OCR API engine needs far less shaping.

Instructions

Step 0 — Classify the document and pick a path

Document Remote upload approved? Path
Scientific paper / manuscript yes, and an OCR key is configured Mode A, OCR API with --allow-remote
Scientific paper / manuscript no Mode A, LiteParse v2 locally
Anything else no remote upload needed Mode B, LiteParse v2 locally

Check for a key without printing it:

if [ -n "${OCR_API_KEY:-}${NELLI_API_KEY:-}" ]; then
  echo "OCR key configured"
else
  echo "No OCR key configured"
fi

Read the full file on GitHub · 268 lines

Changes

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.

  1. 10d ago First seen · 268 lines · 38 tokens per session scan A 8abddc830f81

Subscribe to this mod's changes

pdf-to-md is a skill published in the GitHub repository fmschulz/omics-skills (7 stars, last pushed 4d ago), licensed MIT. It adds 38 tokens to every session and 3,219 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

pydicom

Use pydicom to read, inspect, write, transform, and safely preflight local DICOM datasets and pixel data. Applies to DICOM metadata, transfer syntaxes, compression plugins, frames, private elements, JSON, and bounded de-identification review.

K-Dense-AI/scientific-agent-skills · 56 tokens

liteparse

Local document and PDF parsing that returns spatial text with bounding boxes. Use for extracting text from PDFs, DOCX, Office files, and images; running OCR on scans; producing layout-preserved JSON for RAG; batch-ingesting folders of papers; or rendering pages to PNG for multimodal agents. Distinguishing capabilities…

K-Dense-AI/scientific-agent-skills · 86 tokens

markitdown

Convert heterogeneous documents and selected URIs to Markdown with Microsoft MarkItDown for text analysis, search, and LLM/RAG ingestion. Covers safe local conversion, streams, Office/PDF/data formats, batch workflows, plugins, vision OCR, Azure extraction, and the official MCP server.

K-Dense-AI/scientific-agent-skills · 61 tokens

open-notebook

Self-hosted, open-source alternative to Google NotebookLM for AI-powered research and document analysis. Use when organizing research materials into notebooks, ingesting diverse content sources (PDFs, videos, audio, web pages, Office documents), generating AI-powered notes and summaries, creating multi-speaker…

K-Dense-AI/scientific-agent-skills · 123 tokens

pptx-posters

Create and audit editable scientific posters in macro-free PowerPoint (.pptx) from author-approved local content and assets. Use when the requested deliverable is a PowerPoint research/conference poster and exact physical, printer, accessibility, provenance, and package-security checks are required.

K-Dense-AI/scientific-agent-skills · 59 tokens

pdf

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and…

K-Dense-AI/scientific-agent-skills · 92 tokens