doc-reader

doc-reader is an agent for Claude Code from QwenLM/Qwen-MM-Plugins. It costs 19 tokens per session (415 once invoked), scanned A, original, Apache-2.0.

A document-reading agent that reads a local file or web document from beginning to end, checks relevant figures, and returns findings tied to page numbers.

In plain words
What is it for?
Use it to answer a research question from a PDF or web page, including evidence from charts, tables, and scanned pages.
Why use it?
It removes the need to manually search long documents or rely on incomplete previews. It preserves the source and records where each finding came from.

Agent for Claude Code ✓ vendor

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

Part of the qwen-mm-plugins-omnidr plugin — 5 agents shipped together

Good fit Use it to answer a research question from a PDF or web page, including evidence from charts, tables, and scanned pages.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/qwenlm/qwen-mm-plugins/doc-reader
About the project

Qwen-MM-Plugins is a collection of plugins that gives agent harnesses native multimodal abilities, including reading images, video, documents, code, and data. It is used to add these capabilities to coding agents across several supported harnesses, either through local models or multimodal APIs. The catalogue entries are its independently installable skills, MCP servers, and setup instructions.

QwenLM/Qwen-MM-Plugins · 3,152 stars · on GitHub

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.

Clone the repo
git clone --depth 1 https://github.com/QwenLM/Qwen-MM-Plugins

Made for: Claude Code.

Or install qwen-mm-plugins-omnidr, the plugin that ships this one along with the rest of its 5 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 doc-reader

README.md
[![agentmods](https://agentmods.dev/badge/agents/qwenlm/qwen-mm-plugins/doc-reader/github.svg)](https://agentmods.dev/agents/qwenlm/qwen-mm-plugins/doc-reader)
Your own site
<a href="https://agentmods.dev/agents/qwenlm/qwen-mm-plugins/doc-reader"><img src="https://agentmods.dev/badge/agents/qwenlm/qwen-mm-plugins/doc-reader/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 doc-reader

Your own site · 80×15
<a href="https://agentmods.dev/agents/qwenlm/qwen-mm-plugins/doc-reader"><img src="https://agentmods.dev/badge/agents/qwenlm/qwen-mm-plugins/doc-reader.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 19 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 415 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.00019 $0.00415
Opus 5.5 $0.00008 $0.00166
Sonnet 5.5 $0.00004 $0.00083
Haiku 4.5 $0.00002 $0.00042

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

Security

Grade A, and why

doc-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 2d 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.

src/capabilities/omnidr/agents/doc-reader.md · 38 lines

What it actually says

You are the OmniDR document reader. The caller supplies a local document or canonical URL, a research question and an evidence destination. Return text and saved artifact paths, never the entire raw document or page images.

Complete this document assignment only. Use the document/media MCP tools directly; do not invoke the top-level OmniDR Skill, plan a full report, or spawn further agents.

  1. Download remote originals with omnidr_fetch_source(engine="direct"); HTML also produces readable text. Retain canonical source URLs.
  2. Extract PDF text with omnidr_read_document: render=false, omitted end_page covers the remainder. Read the saved text fully, chunking long files; a tool preview may omit text. Keep .reading.json records. For web pages use readable_path, not raw HTML, and consume it fully in bounded chunks. Older permitted HTML can be parsed locally once; retain the original and hash. Save notes before returning.
  3. Render only important figures/tables and scanned pages (render=true, ≤20 pages per call), then use omnidr_read_media. Reconcile with text, preserving units.
  4. Save detailed notes: title, authors/publisher, date, page count, reading scope, concrete findings with page numbers, verbatim passages, source SHA-256, and gaps. Do not label partial or unreadable documents fully read.

Return document identity, question-specific findings, page references, relevant quoted passages, uncertainties, source hash, reader-notes path and PDF page-reading records. Only fully read primary/authoritative sources count toward the three-source floor. Ledger scope is exactly full or partial; put page/figure details in notes.

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. 2d ago First seen · 38 lines · 19 tokens per session scan A c626180eb06c

Subscribe to this mod's changes

doc-reader is an agent published in the GitHub repository QwenLM/Qwen-MM-Plugins (3,152 stars, last pushed 2d ago), licensed Apache-2.0. It adds 19 tokens to every session and 415 once invoked, about $0.0001 per session on Opus 5.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-10-23.

Related

Other agents, from other repositories

quarto-critic

Adversarial QA agent that compares Quarto HTML against Beamer PDF benchmark. Produces harsh, actionable criticism. Does NOT edit files — read-only analysis only.

brycewang-stanford/Auto-Empirical-Research-Skills · 38 tokens

report-generator

Use this agent when building the intelligence report synthesis layer — fusing multi-source findings into structured analyst reports, implementing confidence scoring, generating PDF/JSON exports, and designing the report data models. Examples: Context: Building the final output layer of the OSINT pipeline. user: "Build…

daemon-blockint-tech/Grond · 195 tokens

literature-extractor

Extracts findings from papers into the argument graph for a survey. Reads PDFs and records each finding as a proposition with the paper attached, returns a structured report. Never judges credibility and never writes the survey's synthesis conclusions.

yqi96/warranted · 49 tokens

playwright-test-generator

Use this agent when you need to create automated browser tests using Playwright Examples: Context: User wants to generate a test for the test plan item.

microsoft/playwright · 151 tokens

.NET-Notebook-Migration-Agent

Expert .NET and documentation transformation agent that migrates Polyglot Jupyter notebooks into clean Markdown and companion .NET sample code.

microsoft/ai-agents-for-beginners · 33 tokens

code-reviewer

Performs thorough code reviews for the Notebooks in the Cookbook repo, focusing on Python/Jupyter best practices, and project-specific standards. Use this agent proactively after writing any significant code changes, especially when modifying notebooks, Github Actions, and scripts.

anthropics/claude-cookbooks · 52 tokens