[BUG] Read tool's PDF support requires poppler-utils but it's undocumented, usually absent, and not detected after install

Open 💬 14 comments Opened Feb 6, 2026 by carrotRakko

What's Wrong?

The Read tool's description says "This tool can read PDF files (.pdf)", but PDF reading depends on poppler-utils (specifically pdftoppm), which:

  1. Is not installed by default in common development environments — In our case, a container based on node:22-bookworm did not have it. It is not part of coreutils and requires explicit installation.
  2. Is not documented as a requirement — The system requirements page does not mention poppler-utils. The Read tool's description promises PDF support with no caveats.
  3. Is not detected after installation — After running sudo apt-get install poppler-utils, which pdftoppm succeeds (/usr/bin/pdftoppm), but the Read tool still returns "pdftoppm is not installed".

What Should Happen?

Either:

  • Bundle or auto-install the dependency so PDF reading works out of the box, or
  • Document it as a system requirement for PDF support, or
  • At minimum, detect it correctly after installation without requiring a restart

Error Messages/Logs

pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.

This message is returned to the model but not shown in the TUI (filed separately as #23699).

Steps to Reproduce

  1. Start Claude Code in an environment without poppler-utils (tested in a container based on node:22-bookworm)
  2. Ask Claude to read a PDF file
  3. Read fails with "pdftoppm is not installed"
  4. Run sudo apt-get install poppler-utils
  5. Verify: which pdftoppm/usr/bin/pdftoppm
  6. Ask Claude to read the same PDF again
  7. Read fails again with the same error

Model: Opus

Is this a regression?: I don't know

Claude Code Version: 2.1.33

Platform: Anthropic API

Operating System: Ubuntu/Debian Linux

Terminal/Shell: iTerm2

Additional Information

  • Related: #23699 (Read tool errors are not shown in TUI)
  • The workaround is curl + pdftotext + Read on the resulting text file — 3 tool calls for what should be a single Read

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

View original on GitHub ↗

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