[MODEL] Claude reads image files with Read tool believing it will display them to the user

Resolved 💬 3 comments Opened Mar 20, 2026 by carrotRakko Closed Apr 17, 2026

Preflight Checklist

  • [x] I have searched existing issues for similar behavior reports
  • [x] This report does NOT contain sensitive information (API keys, passwords, etc.)

Type of Behavior Issue

Other unexpected behavior

What You Asked Claude to Do

I asked Claude to generate an image (via a Python script using PIL) and then discuss the result with me. I did NOT ask Claude to show me the image.

What Claude Actually Did

  1. Claude generated the image file successfully
  2. Claude then used the Read tool to read the image file
  3. Claude presented its response as if the image was now visible to me, saying things like "here's the output (top) and the input (bottom)" with references to the image content
  4. The user only sees Read image (4KB) in the tool output — the actual image content is never displayed

Expected Behavior

Claude should understand that the Read tool makes image content available to itself (as a multimodal LLM), not to the user. If Claude wants the user to see a generated image, it should tell the user the file path so they can open it themselves.

Files Affected

N/A — the issue is about Claude's incorrect mental model of what Read does, not about file access.

Permission Mode

Accept Edits was ON (auto-accepting changes)

Can You Reproduce This?

Yes, every time with the same prompt

Steps to Reproduce

  1. Ask Claude Code to generate an image file (e.g., a chart, diagram, or visualization using PIL/matplotlib)
  2. After the image is saved, ask Claude about the result or simply observe — Claude will often proactively Read the image
  3. Claude will then describe the image as if the user can see it too, using language like "here, take a look" or "as you can see in the image above"
  4. The user only sees Read image (4KB) in their terminal

Claude Model

Opus

Relevant Conversation

Claude said (paraphrasing):

"Let me read the image to show you." [Read tool call on the PNG file] "Here's the output (top) and the input (bottom). The structure looks correct..."

The user saw:

● Read(/tmp/arc/my_output.png)
  ⎿  Read image (4KB)

No image content was visible to the user.

Impact

Low

Claude Code Version

2.1.80 (Claude Code)

Platform

Anthropic API

Additional Context

The Read tool's description says "This tool allows Claude Code to read images" — this is accurate, but Claude appears to interpret "read" as "display to user." The system prompt's instruction to "Output text to communicate with the user" likely reinforces the assumption that tool results are shown to the user. In practice, Read results for images show only a brief summary like Read image (4KB) in the user's terminal.

This is a recurring pattern — Claude consistently believes that reading an image file is equivalent to showing it to the user, and will even use language like "here, take a look" after reading.

Related: #36476 #36088 #29254 (these are feature requests for actually displaying images inline; this issue is about the model's incorrect belief that Read already does this)

✍️ Author: Claude Code with @carrotRakko (AI-written, human-approved)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗