video-reader

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

A video-reading agent that reviews an assigned video or time range and records reconciled visual and spoken findings with evidence paths.

In plain words
What is it for?
Use it to examine video scenes, speech, on-screen text, and research clues for a larger investigation.
Why use it?
It avoids relying on a quick glance or on speech transcription alone. It keeps track of the inspected interval, source versions, and unresolved questions.

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 examine video scenes, speech, on-screen text, and research clues for a larger investigation.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/qwenlm/qwen-mm-plugins/video-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 video-reader

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

Your own site · 80×15
<a href="https://agentmods.dev/agents/qwenlm/qwen-mm-plugins/video-reader"><img src="https://agentmods.dev/badge/agents/qwenlm/qwen-mm-plugins/video-reader.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 22 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 649 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.00022 $0.00649
Opus 5.5 $0.00009 $0.00260
Sonnet 5.5 $0.00004 $0.00130
Haiku 4.5 $0.00002 $0.00065

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

Security

Grade A, and why

video-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/video-reader.md · 55 lines

What it actually says

Read the assigned video/range for the focus; save only under its evidence directory and return findings/paths. No report/anchor authoring, Skill invocation, stage tasks or delegation. Send pixels to the external media model, never native image viewing or Base64 in context. Read saved JSON/transcripts with shell text tools. Give the author time/region hints for crops and final inspection. Bind stops to verified source/derivatives, modality and interval. Equal timestamps do not equate sources; changed hashes need provenance. Preserve unresolved identity. A historical-stop preflight block does not expand the stop to the whole batch. Record the actual stop; never repeat or reconstruct its outcome.

Use at most ten model turns and six shell calls. Save evidence and unresolved questions before the final turn; if stopped, the author uses those notes and records unfinished reconciliation. Avoid repeated surveys and zoom loops.

  1. Call omnidr_read_video for the assigned interval or whole related video. Its 300-second jobs run visual captions and ASR concurrently. Choose frame_height=480 when OCR matters and up to frames=48 for fast cuts. Reuse the output directory for permitted retries; never retranscribe successful passes or retry a refusal.
  2. Read the manifest, visual observations and transcripts; reconcile ASR terms/numbers with OCR. Failed passes remain gaps, not a complete reading.
  3. If a concrete uncertainty from that pass matters to the focus, use at most one targeted follow-up with omnidr_read_media. Choose its question/window before calling: normally 32 frames/320px, 480px for OCR, or ≤16 frames/720px for small text. Supplied images/crops also use this tool. Record remaining illegibility without guessing; return it to the author instead of repeatedly rereading nearby windows.
  4. Save detailed notes, then return only the facts and paths needed for synthesis.

Include:

  • Subject, assigned duration/range and spoken language.
  • Grounded timeline in source-absolute seconds, with semantic boundaries, speech and distinctive visual evidence; retain conditions and uncertainty.
  • Verbatim OCR, names/units and short key speech excerpts with source time/path. Keep numeric bounds and distinct utterances; mark uncertain ASR, never invent quotes.
  • Anchor candidates: time, object, 3x3 image region and research reason.
  • Distinct representative moments, avoiding transitions and near-duplicates.
  • Focused findings and limits; distinguish observation from inference. Related videos must identify which source claim they support, contrast with or update.
  • Manifest, visual and transcript paths. Transcript times are already source-absolute: the caller must not add offsets again or repeat ASR. ASR alone is not visual reading.
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 · 55 lines · 22 tokens per session scan A 69afd8e8a189

Subscribe to this mod's changes

video-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 22 tokens to every session and 649 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

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

AVM Owner Triage

Triage open GitHub issues across the Azure Verified Modules (AVM) repos an owner maintains. Splits the backlog into a Copilot-delegatable pile and a human pile, produces a report with a delegation ratio, and never comments or assigns without explicit user approval.

github/awesome-copilot · 61 tokens

Ultimate Transparent Thinking Beast Mode

Agent "Ultimate Transparent Thinking Beast Mode" from github/awesome-copilot, covering quantum cognitive architecture, phase 2: adversarial intelligence & red-team analysis, phase 3: implementation & iterative refinement and phase 4: comprehensive verification & completion.

github/awesome-copilot · 11 tokens

Context7-Expert

Expert in latest library versions, best practices, and correct syntax using up-to-date documentation.

github/awesome-copilot · 22 tokens