How to attach files to an AI agent chat and keep them with your project
A file you give an AI agent should not disappear into a chat history. This guide shows how to attach a PDF, an image or a screenshot, keep the file in the project folder where it belongs, and understand what the agent actually reads from it.
Two jobs in one gesture
When you attach a file to a message, you usually want two things. The first is obvious: the agent should use the file to answer. The second is easy to forget: the file should end up somewhere you can find it next week, next to the rest of the project.
Most chat tools only do the first. The file lives inside one conversation. Start a new thread and the agent no longer sees it; look for it a month later and you are scrolling through old messages instead of opening a folder.
Pasting the content instead is worse. A pasted PDF loses its layout, its tables and its page numbers. Long documents get cut. Nothing tells you later which version you pasted.
The rule that fixes this is simple: keep files where the work happens. If an AI agent works inside a project folder, the files you hand it should land in that folder, under a name you recognize, and stay there after the conversation ends.
How Pandore handles attachments
Since version 0.7.0 (see the changelog), the chat in Pandore does both jobs at once. In a project chat, every file you attach is copied, when you send the message, into a subfolder of the project folder called "Pièces jointes", the project's attachments folder. The agent reads it from there, and it stays there once the conversation is over.
A few details matter in practice:
- Nothing is copied before you send. If you attach a file and remove it before sending, the project folder stays untouched.
- Nothing is overwritten. If "quote.pdf" already exists in the folder, the new one becomes "quote (2).pdf".
- No second copy of a file already there. A file you pick from the attachments folder itself is not copied again.
- One limit: 500 MB per file.
Attach a file, step by step
- 01Open the project chat
Open a project linked to a folder on your disk and go to its Chat tab. A "file access" badge in the conversation header means the agent can read and edit files in that folder.
- 02Add your files
Click the paperclip next to the message field, drag files onto the chat from your file manager, or paste a screenshot. A pasted image gets a name with the date and time. The files appear just above the field, each with a button to remove it.
- 03Say what each file is for
Write the request as you would to a colleague, naming each file's role: "The PDF is the client's brief, the screenshot is their current site. List what the brief asks for that the site does not do yet." If you send files without any text, Pandore sends "See the attached files."
- 04Send
The files are copied into "Pièces jointes" and listed under your message with their name and size. Click one to show it in its folder.
Attachments also work in two less obvious places. If the agent is still answering, your message goes to the queue with its files, which are copied right away. And if you call agents by name with @ in the same message, each of them receives the files.
What the agent actually receives
This is the part most people never see, and it explains most surprises. The answer depends on who reads the file.
An agent working in the folder gets paths, not content
Claude Code, Codex and Gemini CLI run inside the project folder. Pandore does not paste your file into their prompt. It adds a short note to your message that lists the attached files by their path in the project folder, and asks the agent to open the ones it needs before answering.
That has two benefits. The agent reads the file with its own tools, and for Claude Code that includes PDFs and images. And a long document costs only what the agent actually reads from it, instead of being pasted whole into the request.
Later in the conversation, the history keeps a short note of which files came with which message. You can write "go back to the brief I attached earlier" and the agent has the path in front of it.
A local model gets the text
A local model cannot open files. For it, Pandore extracts the text and adds it to the message: the content of text files (plain text, Markdown, CSV, JSON, code and similar formats) and the text layer of PDFs. Each file is capped at 24,000 characters and the whole message at 60,000. Beyond that, the text is cut and marked as truncated.
Two consequences follow. A scanned PDF with no text layer gives the model nothing to read, and the model is told so. And an image means nothing to a local model, which brings us to the next point.
Images, screenshots and other formats
Local models in Pandore do not see images. Files Pandore cannot extract text from, such as Word or Excel documents, are in the same situation.
In automatic mode (Settings › AI, with local and remote working together), a message that carries an image or one of these files goes to your remote agent instead of the local model. In local-only mode, it stays local: the model is told that an image is attached that it cannot see, and to say so if the answer depends on it.
| What you attach | Agent working in the project folder | Local model |
|---|---|---|
| Text, Markdown, CSV, JSON, code | Gets the path and opens the file | Gets the text, up to 24,000 characters |
| Gets the path; Claude Code reads PDFs | Gets the extracted text, if the PDF has any | |
| Image or screenshot | Gets the path; Claude Code reads images | Cannot see it; in automatic mode, the message goes to the remote agent |
| Word, Excel and other formats | Gets the path | No text; in automatic mode, the message goes to the remote agent |
A practical consequence: if you want a local model to read a spreadsheet, export it as CSV first. For a Word document, export it as PDF or plain text.
Local or remote: what leaves your computer
Pandore has no server. Copying the file into the project folder happens on your disk and sends nothing anywhere.
What happens next depends on who reads it. When a remote agent such as Claude Code opens an attached file, the content it reads goes to the provider behind that agent as part of its work, exactly like any other file it opens in the folder. That provider's own terms apply. When a local model reads it, the text stays on your computer. If that difference matters for your work, our guide to running a local LLM on a Mac shows how to set one up.
Three habits keep this under control:
- Check your mode before attaching something sensitive. In automatic mode, an image or a Word file goes to the remote agent. If a document must stay on your machine, switch to local-only mode first, and export it to a format the local model can read.
- Attaching does not widen access. An agent working in the project folder can already open the files in it, within the permissions you set in Settings: read only, may change files, or may run commands. Attaching a file copies it into that same folder.
- Attach only what you would leave in the folder. The copy stays in "Pièces jointes" after the conversation. That is the point, but it also means the file is filed with the project until you delete it.
Without a project folder
Not every conversation belongs to a project folder. In the general chat, or in a conversation about a client rather than a project, there is no folder to copy into. Pandore then keeps the files with the conversation, in its own data folder, and a note below the attached files tells you so before you send.
In that case no agent opens the files itself. Whichever agent answers receives the text of text files and PDFs, with the same limits as a local model, and nothing from images. If you need an agent to look at a screenshot, attach it in a project chat.
Good habits for attached files
- Rename before you attach. "scan0042.pdf" tells the agent and your future self nothing; "supplier quote v2.pdf" does. The name you give is the one kept in the folder.
- Do not attach what is already in the folder. If the file already sits somewhere in the project folder, give its path in your message instead. An agent working in the folder can open it, and attaching it would only add a copy to "Pièces jointes".
- Say which file is which. With three attachments, one sentence on the role of each saves a round of questions.
- Tidy the folder now and then. "Pièces jointes" is an ordinary folder, so move what deserves a better place. The file list under an old message points to where the file was first copied, so it will not follow a file you moved.
- Check the reading before the real question. For a long PDF, ask first what it contains and where. You will see right away whether the agent opened the right file, before you rely on its answer.
If you use Claude Code every day, the Claude Code desktop page shows the rest of the setup: Claude Code running inside each project folder, from a desktop app.