Read tool: PDFs cost way more tokens than they need to because of the image rendering
### Preflight Checklist
- [x] I searched existing feature requests and this hasn't been requested (found one related but stale/auto-closed - see below)
- [x] This is a single feature request
Problem Statement
When Claude Code's Read tool opens a PDF, it always sends both the extracted text AND a rendered image of every page, no matter what you're actually asking for. Per Anthropic's own docs (https://platform.claude.com/docs/en/build-with-claude/pdf-support):
The system converts each page of the document into an image. The text from each page is extracted and provided alongside each page's image.
And on cost:
Text token costs: Each page typically uses 1,500-3,000 tokens per page... Image token costs: Because each page is converted into an image, the same image-based cost calculations are applied.
So you pay for text tokens and image tokens on every page, even when there's nothing visual worth looking at. I compared a PDF against the same content as markdown and the PDF version came out around 50-60% more tokens for identical content - which tracks, since both halves get sent together every time.
Most of my PDF reads are just "give me the text" - specs, contracts, exported docs. The image half only earns its cost when there's an actual chart, diagram, or table I need Claude to look at visually.
Proposed Solution
Let Read default to text-only extraction for PDFs, and only pull in the full image+text version when it's actually needed - either:
- automatically, based on whether the page looks text-dense with nothing worth rendering, or
- as an explicit mode Claude picks when calling Read, e.g.
mode: textvsmode: visual
Alternative Solutions
Right now the only workaround is converting the PDF to markdown/text myself before handing it to Claude, which defeats the point of Read supporting PDFs natively.
Priority
Medium - Would be very helpful
Feature Category
Performance and speed
Use Case Example
I ask Claude to read a 10-page PDF spec to answer a question about one section. Today that costs 1,500-3,000 text tokens/page plus a full image per page, for a request where I never needed the visual rendering at all. With text-only extraction as the default, the same read would cost a fraction of that, and Claude could still escalate to the visual version if my question turned out to be about a table or diagram.
Additional Context
Found a related request - #30546 - that proposed a similar "text-first mode" among other multimodal fixes. It got auto-closed by the stale-issue bot after being flagged as a possible duplicate, not because anyone weighed in against the idea - so raising it again here, scoped just to this one piece.
Also loosely related: #23704, about the poppler-utils dependency for PDF rendering - same code path, different problem.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗