---
title: "PDF input"
canonical: "https://canmyagentuse.com/features/pdf-documents"
contentKind: "feature"
locale: "en"
description: "Upload a PDF for use as model input."
llmSummary: "PDF input makes an uploaded PDF available as model input. Text extraction, visual page analysis, file limits, and attachment limits are qualifiers."
publishedAt: "2026-08-28T00:00:00.000Z"
updatedAt: "2026-08-28T00:00:00.000Z"
verifiedAt: "2026-08-28"
tags: ["perception"]
---

# PDF input

PDF input makes an uploaded PDF available as model input. Text extraction, visual page analysis, file limits, and attachment limits are qualifiers.

- HTML: https://canmyagentuse.com/features/pdf-documents
- JSON: https://canmyagentuse.com/api/v1/features/pdf-documents.json
- Markdown: https://canmyagentuse.com/features/pdf-documents.md

Terminology basis: **Common product term** — https://docs.x.ai/grok/faq.

## Current support at a glance

PDF input: 10 supported, 0 partial, 0 unsupported, 21 unreviewed across 31 cataloged products.

- Reviewed current products: 10 of 31
- Supported: 10
- Partial: 0
- Unsupported: 0
- Unreviewed: 21
- Not applicable: 0

Unknown or unreviewed means insufficient published evidence; it does not mean unsupported.

This row asks whether the exact harness can accept a PDF and expose useful document content to the model. Evidence should distinguish text extraction from page-image understanding, tables and forms from plain text, scanned PDFs from born-digital files, and password-protected files from ordinary documents.

Record page, file-size, file-count, plan, and model limits as qualifiers. A generic file picker or workspace file reader does not by itself prove PDF parsing.

The reviewed surfaces remain separate because limits and fidelity differ by product. These cells establish PDF input, not reliable OCR for every scan, support for encrypted files, or identical handling of forms, annotations, and embedded media.

Unlisted harness cells remain **unknown** until a dated note and public source support a more specific status. Use the Markdown and JSON twins if you are an agent reading this site.

## Catalog context

- Category: [perception](/categories/perception.md)
- Terminology basis: Common product term
- Aliases: PDF upload, PDF input, document attachment
- Family: [File and media inputs](/features/file-inputs.md)
- Siblings: [Audio file input](/features/audio-file-input.md), [Document input](/features/office-document-input.md), [File upload limits](/features/upload-limits.md), [Image input](/features/image-input.md), [Video input](/features/video-input.md)

## Compatibility assertions

Unknown means insufficient published evidence; it does not mean unsupported.

### ChatGPT (web)

- Harness: [ChatGPT](/harnesses/chatgpt-web.md)
- current: **Unknown**
- preview: **Unknown**

### Claude (web)

- Harness: [Claude](/harnesses/claude-web.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Claude web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): PDF upload is supported; visual elements are analyzed for PDFs under 100 pages, with narrower text-oriented handling outside that boundary
  - Constraint (runtime): chat uploads are limited to 500 MB per file and 20 files per chat; project files have a separate 30 MB limit
  - Constraint (policy): encrypted PDFs, OCR quality, and complete fidelity for forms, annotations, and embedded media are not established by the reviewed page
  - Evidence: [Anthropic Help Center — Uploading files to Claude](https://support.claude.com/en/articles/8241126-upload-files-to-claude) — documented; observed 2026-08-28
  - Qualification note 3: Evidence checked 2026-08-28: Claude accepts PDFs in chats on its web and desktop surfaces. Its help documentation describes visual analysis for PDFs under 100 pages, a 500 MB per-file chat limit, and a separate 30 MB project-file limit; larger or nonvisual handling has narrower fidelity.
- preview: **Unknown**

### Gemini (web)

- Harness: [Gemini](/harnesses/gemini-web.md)
- current: **Unknown**
- preview: **Unknown**

### Copilot (web)

- Harness: [Copilot](/harnesses/copilot-web.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Microsoft Copilot web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): PDF is a supported document upload; Copilot can analyze, extract, summarize, answer questions, and continue with follow-up questions about uploaded files
  - Constraint (runtime): each file is limited to 50 MB and up to 20 files can be attached in one conversation
  - Constraint (runtime): scanned-page OCR, complete visual-page fidelity, forms, annotations, and embedded media are not established by the reviewed page
  - Evidence: [Microsoft Support — File upload in Microsoft Copilot](https://support.microsoft.com/en-US/microsoft-copilot/file-upload-in-microsoft-copilot) — documented; observed 2026-08-28
  - Qualification note 6: Evidence checked 2026-08-28: Microsoft Copilot web accepts PDF uploads up to 50 MB and documents analysis, extraction, summarization, and follow-up questions about uploaded files.
- preview: **Unknown**

### Grok (web)

- Harness: [Grok](/harnesses/grok-web.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Grok Web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): web documentation reports a limit of approximately 100 attached files per message
  - Constraint (policy): extremely large documents may need to be split into smaller files
  - Evidence: [xAI — Grok files and data FAQ](https://docs.x.ai/grok/faq) — documented; observed 2026-08-28
  - Qualification note 1: Evidence checked 2026-08-28: xAI's Grok FAQ lists PDF among the document types accepted directly in Grok Web chats and describes summarization, extraction, comparison, and analysis of uploaded files.
- preview: **Unknown**

### Grok Bot (desktop)

- Harness: [Grok Bot](/harnesses/grok-bot-desktop.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Grok Bot desktop documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): desktop composer accepts up to six attachments per message and documents a 25 MB limit per document
  - Constraint (policy): encrypted, damaged, unusually formatted, or very large files may not be readable
  - Evidence: [xAI — Grok Bot files and results](https://docs.x.ai/grok-bot/files-and-results) — documented; observed 2026-08-28
  - Qualification note 2: Evidence checked 2026-08-28: Grok Bot's desktop composer accepts PDF and plain-text documents. It accepts up to six attachments per message, with documents limited to 25 MB each; encrypted, damaged, unusually formatted, or very large files may not be readable.

### Perplexity (web)

- Harness: [Perplexity](/harnesses/perplexity-web.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Perplexity web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): PDF files can be attached to a web session and their content enters the session context; short files are analyzed in full while long files may be reduced to extracted important parts
  - Constraint (runtime): complete page-image, scanned-page, form, annotation, and embedded-media fidelity is not established by the reviewed page
  - Evidence: [Perplexity Help Center — File uploads](https://www.perplexity.ai/help-center/en/articles/10354807-file-uploads) — documented; observed 2026-08-28
  - Qualification note 5: Evidence checked 2026-08-28: Perplexity web accepts PDFs as file attachments and uses their content as session context. Short files are analyzed in full while longer files may be reduced to extracted important parts; visual-PDF fidelity is not established by the reviewed page.
- preview: **Unknown**

### Le Chat (web)

- Harness: [Le Chat](/harnesses/le-chat.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Mistral Vibe web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): PDFs can be uploaded and queried directly; answers are documented as coming from uploaded content
  - Constraint (policy): Le Chat is now Vibe at the same chat.mistral.ai entry point; this claim is scoped to the Work upload path
  - Constraint (runtime): Mistral documents image and scanned-page interpretation separately, but does not guarantee complete fidelity for every PDF form, annotation, or embedded object
  - Evidence: [Mistral Docs — Work with Files and Canvas](https://docs.mistral.ai/vibe/work/files-and-canvas) — documented; observed 2026-08-28
  - Evidence: [Mistral Docs — Vibe overview](https://docs.mistral.ai/vibe) — documented; observed 2026-08-28
  - Qualification note 7: Evidence checked 2026-08-28: Mistral's current Vibe Work documentation, which supersedes Le Chat at chat.mistral.ai, accepts PDFs and answers from their uploaded content. Mistral separately describes image and scanned-page interpretation, but complete PDF visual fidelity is not guaranteed.
- preview: **Unknown**

### Devin (web)

- Harness: [Devin](/harnesses/devin-web.md)
- current: **Unknown**
- preview: **Unknown**

### Replit Agent (web)

- Harness: [Replit Agent](/harnesses/replit-agent.md)
- current: **Unknown**
- preview: **Unknown**

### ChatGPT (desktop)

- Harness: [ChatGPT](/harnesses/chatgpt-desktop.md)
- current: **Unknown**
- preview: **Unknown**

### Claude (desktop)

- Harness: [Claude](/harnesses/claude-desktop.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Claude desktop documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): PDF upload is supported; visual elements are analyzed for PDFs under 100 pages, with narrower text-oriented handling outside that boundary
  - Constraint (runtime): chat uploads are limited to 500 MB per file and 20 files per chat; project files have a separate 30 MB limit
  - Constraint (policy): encrypted PDFs, OCR quality, and complete fidelity for forms, annotations, and embedded media are not established by the reviewed page
  - Evidence: [Anthropic Help Center — Uploading files to Claude](https://support.claude.com/en/articles/8241126-upload-files-to-claude) — documented; observed 2026-08-28
  - Qualification note 3: Evidence checked 2026-08-28: Claude accepts PDFs in chats on its web and desktop surfaces. Its help documentation describes visual analysis for PDFs under 100 pages, a 500 MB per-file chat limit, and a separate 30 MB project-file limit; larger or nonvisual handling has narrower fidelity.
- preview: **Unknown**

### Cursor (desktop)

- Harness: [Cursor](/harnesses/cursor.md)
- current: **Unknown**
- preview: **Unknown**

### OpenWork Desktop (desktop)

- Harness: [OpenWork Desktop](/harnesses/openwork-desktop.md)
- current: **Unknown**

### Copilot Chat (desktop)

- Harness: [Copilot Chat](/harnesses/vscode-copilot.md)
- current: **Supported**
  - Target: dated-documentation — current GitHub Copilot Chat documentation for VS Code; observed 2026-08-28
  - Environment: local-default
  - Constraint (runtime): PDF attachments can be pasted, dragged, or added from the VS Code Explorer when the selected model supports image input
  - Constraint (plan): PDF and image attachments are documented as available on all Copilot plans and enabled by default
  - Constraint (runtime): page, size, OCR, and complex-layout limits are not listed on the reviewed page
  - Evidence: [GitHub Docs — Asking GitHub Copilot questions in your IDE](https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/chat-with-copilot/chat-in-ide?tool=vscode) — documented; observed 2026-08-28
  - Qualification note 8: Evidence checked 2026-08-28: VS Code Copilot Chat accepts PDF attachments when the selected model supports image input; GitHub documents PDF attachments as available on all Copilot plans.
- preview: **Unknown**

### Chrome WebMCP origin trial (desktop)

- Harness: [Chrome WebMCP origin trial](/harnesses/chrome-webmcp-preview.md)
- current: **Unknown**

### Windsurf (desktop)

- Harness: [Windsurf](/harnesses/windsurf.md)
- current: **Unknown**
- preview: **Unknown**

### Zed Agent (desktop)

- Harness: [Zed Agent](/harnesses/zed-agent.md)
- current: **Unknown**
- preview: **Unknown**

### Continue (desktop)

- Harness: [Continue](/harnesses/continue.md)
- current: **Unknown**
- preview: **Unknown**

### Cline (desktop)

- Harness: [Cline](/harnesses/cline.md)
- current: **Unknown**
- preview: **Unknown**

### JetBrains AI (desktop)

- Harness: [JetBrains AI](/harnesses/jetbrains-ai.md)
- current: **Unknown**
- preview: **Unknown**

### Warp (desktop)

- Harness: [Warp](/harnesses/warp.md)
- current: **Unknown**
- preview: **Unknown**

### Claude CLI (cli)

- Harness: [Claude CLI](/harnesses/claude-cli.md)
- current: **Supported**
  - Target: dated-documentation — current Claude Code error documentation; observed 2026-08-28
  - Environment: local-default
  - Constraint (runtime): attached PDFs are supported up to 100 pages and 32 MB
  - Constraint (policy): password-protected and invalid PDFs are rejected; complete OCR, form, annotation, and embedded-media fidelity is not established
  - Evidence: [Claude Code Docs — Error reference](https://code.claude.com/docs/en/errors) — documented; observed 2026-08-28
  - Qualification note 9: Evidence checked 2026-08-28: Claude Code accepts attached PDFs and documents a maximum of 100 pages and 32 MB, with password-protected and invalid PDFs rejected.
- preview: **Unknown**

### ChatGPT CLI (cli)

- Harness: [ChatGPT CLI](/harnesses/chatgpt-cli.md)
- current: **Unknown**
- preview: **Unknown**

### Codex CLI (cli)

- Harness: [Codex CLI](/harnesses/codex-cli.md)
- current: **Unknown**
- preview: **Unknown**

### OpenCode (cli)

- Harness: [OpenCode](/harnesses/opencode.md)
- current: **Unknown**
- preview: **Unknown**

### Gemini CLI (cli)

- Harness: [Gemini CLI](/harnesses/gemini-cli.md)
- current: **Supported**
  - Target: dated-documentation — current Gemini CLI custom-command documentation; observed 2026-08-28
  - Environment: local-default
  - Constraint (runtime): supported PDF files referenced with @{...} inside a custom command are encoded and injected as multimodal input
  - Constraint (runtime): this evidence establishes custom-command file injection; PDF limits, OCR behavior, and ordinary-prompt attachment methods are not established by the reviewed page
  - Evidence: [Gemini CLI — Custom commands](https://geminicli.com/docs/cli/custom-commands/) — documented; observed 2026-08-28
  - Qualification note 10: Evidence checked 2026-08-28: Gemini CLI custom commands encode supported PDF paths referenced with @{...} and inject them as multimodal input.
- preview: **Unknown**

### Aider (cli)

- Harness: [Aider](/harnesses/aider.md)
- current: **Unknown**
- preview: **Unknown**

### Goose (cli)

- Harness: [Goose](/harnesses/goose.md)
- current: **Unknown**
- preview: **Unknown**

### Copilot CLI (cli)

- Harness: [Copilot CLI](/harnesses/copilot-cli.md)
- current: **Unknown**
- preview: **Unknown**

### Amp (cli)

- Harness: [Amp](/harnesses/amp-cli.md)
- current: **Unknown**
- preview: **Unknown**
