---
title: Upload Files in Chat
description: Drop files into any Pinchy chat and let the agent read, analyze, or transcribe them.
---

Drop a file into a Pinchy chat and the agent receives its content directly — no copy-pasting, no separate upload step.

## Supported file types

**Text and documents**

Any text-based file — Markdown, CSV, JSON, YAML, plain text, source code, and similar formats — is fully readable by the agent. You can drop a `.csv` or a `.md` just like a PDF and the agent will read the whole thing.

- PDF (with text extraction and vision analysis)
- Microsoft Word (`.docx`)

**Code and text**

- `.txt`, `.md`, `.csv`, `.json`, `.xml`, `.html`, `.css`, plus common source-file extensions

**Images**

- JPEG, PNG, WebP, GIF, HEIC/HEIF

:::note
Audio attachments are not yet supported. Transcription wiring is tracked in [issue #321](https://github.com/heypinchy/pinchy/issues/321).
:::

## Size limit

15 MB per file.

## How files are used

Two things happen when you attach a file:

1. **The file is saved to the agent's [workspace](/concepts/workspaces/)** at `uploads/<filename>`. The agent reads it on demand from there.
2. **Images are also sent inline** to the LLM when the model supports vision, so the agent can "see" an image without a separate read step.

For PDFs, Pinchy automatically picks the best vision-capable model available in your provider configuration. Anthropic Claude and Google Gemini handle PDFs natively; other vision-capable models fall back to a text-and-image extraction step.

For Microsoft Word `.docx` files, Pinchy extracts the document's text — paragraphs, headings, and tables — at upload time and ships it directly to the agent as text. No vision model required. Embedded images in `.docx` are not yet processed.

Workspaces are isolated per agent: file-reading tools only see files in that agent's own workspace, never another agent's files or the host system. See [Agent Workspaces](/concepts/workspaces/) for the full picture.

## Shared agents

Files uploaded to a shared agent are visible to all users with access to that agent — they live in a workspace that everyone with access to the agent shares. Pinchy shows a reminder of this in the upload UI. If you're uploading sensitive content, use a personal agent instead. See [Agent Workspaces](/concepts/workspaces/#personal-vs-shared-agent-workspaces) for the privacy implications.

## Preview attachments in chat

Pinchy renders an inline preview next to your chat message:

- **PDFs** show a small first-page thumbnail. Click to open the browser's PDF viewer in a modal — zoom, page-nav and download all work as you'd expect.
- **Images** render as a thumbnail. Click to enlarge.

Both previews survive page reloads — the file lives in the agent workspace, not in browser memory, so it's still there hours or days later.

## Security

Pinchy validates every uploaded file against its actual content, not just the browser-reported MIME type. A file renamed to `.pdf` that contains executable code will be rejected. Filenames are also sanitized before being written to disk.
