> For the complete documentation index, see [llms.txt](https://docs.eesel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eesel.ai/integrations/knowledge/uploading-files.md).

# Uploading Files

Upload files to your AI agent's knowledge. It answers from your PDFs, Word documents and text files, or from knowledge you write in eesel, and cites them.

Uploading files gives your AI agent knowledge that lives in documents rather than in an app. You upload PDF, Word, CSV, text or Markdown files up to 25MB each, or write files directly in eesel, and your agent answers from them wherever it works.

Upload a document here and your AI teammate answers from it. It reads the file the same way it reads your helpdesk or your website. You can also write knowledge directly in eesel, and your agent can create and update these files itself.

## Add files to eesel

{% stepper %}
{% step %}

### Upload your files

Open the **Files** section in the left sidebar and click the plus icon. Drag your documents into the upload area, or browse for them. Each uploaded file can be up to **25MB**. You can also ask your agent in chat to take some documents. It opens the upload for you.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-a34bd11986951152eb329f759662a5bd41173722%2Ffiles-upload-modal.png?alt=media" alt="The dashboard chat with the Upload Files modal open in front of it, showing a drag and drop area, a Choose a file button, the 25MB limit, and three files ready to upload"><figcaption><p>The upload area, opened from the chat, with files ready to go.</p></figcaption></figure>

**Check it worked.** The **Files** list in the left sidebar shows the new file by name. From a terminal, `eesel files` lists it.
{% endstep %}

{% step %}

### Ask it something

Ask your agent a question the uploaded documents answer. It replies from them and lists the files it used under **Sources**. You can also pass a customer's question straight to your agent here. It answers, then offers to draft the reply.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-14be3e06372bac51b7f8b4bcee78143f8b1e046c%2Ffiles-test-chat.png?alt=media" alt="The dashboard chat where the user passes on a customer question, and the agent answers from the uploaded files, lists them under Sources, and offers to draft a reply"><figcaption><p>The agent answers from your uploaded files and names the ones it used.</p></figcaption></figure>
{% endstep %}

{% step %}

### Let it write files too

Ask your agent in chat to write a document and save it. Use this for a summary it built, a list it compiled, or the notes from a scheduled job. Anything it writes lands in the same **Files** list, where you can open, read and edit it. The editor shows a save state, plus **Share** and **Export** controls.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-bb6f355b08f924e8d1b0f8f51fba3bd24bb80b2b%2Ffiles-agent-written.png?alt=media" alt="A policy document the agent wrote, open in the Files editor with Saved, Share and Export controls, and the chat that asked for it listed under Recents"><figcaption><p>A file your agent wrote and saved, open in the Files editor.</p></figcaption></figure>
{% endstep %}

{% step %}

### Use it where your team works

Your agent answers from these files anywhere you have invited it. In Slack, a teammate mentions it with a question and it replies in the thread from the same uploaded documents.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-392fcb168e6c78acc76c4421e7916e37586d25c8%2Ffiles-slack-thread.png?alt=media" alt="A Slack thread where a teammate mentions eesel with a policy question and eesel replies in the thread with the answer from the uploaded files"><figcaption><p>The same knowledge, answered in a Slack thread.</p></figcaption></figure>
{% endstep %}
{% endstepper %}

## Sources

Every file you upload or create becomes a source your agent can answer from. Every other integration on the agent is also a source. So one answer can draw on your helpdesk, your website and your files at once. See [Integrations](/integrations/overview.md).

**Re-uploading replaces the old version.** A file is stored under its filename. Uploading a file with the same name overwrites what was there before. That is how you update an uploaded document. It also means two different documents that share a filename overwrite each other, so give them distinct names.

You stay in control the whole way. Adjust your AI agent's access to knowledge to your liking.

### Supported formats

For **uploaded** files:

| Format         | Extension          | Notes                                  |
| -------------- | ------------------ | -------------------------------------- |
| **PDF**        | `.pdf`             | Text is read from the PDF's text layer |
| **Word**       | `.docx`            | Word documents                         |
| **Plain text** | `.txt`             | Any plain text file                    |
| **Markdown**   | `.md`, `.markdown` | Kept as written                        |
| **CSV**        | `.csv`             | Comma-separated data files             |

{% hint style="warning" %}
**Scanned PDFs do not work.** Text is read from the PDF's own text layer, and there is no image-to-text conversion. A PDF that is really a photo or a scan of a page indexes as empty, with no error. Test a PDF by trying to select text in it. If you cannot, your agent cannot read it either. Export a text-based version instead.
{% endhint %}

Other formats, including spreadsheets and HTML files, are turned away when you pick them, with a message naming the supported types. Save them as PDF, Word, text or CSV first.

## Creating files in the platform

1. Open the **Files** section in the left sidebar
2. Click **Create** to start a new file
3. Write or paste your content
4. Save. The file is available as knowledge straight away

Created files support `.md`, `.txt`, `.csv`, `.json` and `.html`, up to **5MB** each.

### Exporting

Any file you created in the platform can be exported as **PDF**, **Word**, **HTML** or **Markdown**. An uploaded file has the same menu in the Files viewer. You can copy it or download it as Markdown or HTML.

## Tips

**Use PDFs for policies and manuals.** Handbooks, manuals and policy documents work well, as long as the text is selectable.

**Create files for knowledge that lives nowhere else.** If it exists in no other app, write it in the platform.

**CSV files work for structured data.** A product catalogue, an FAQ list or a pricing table, saved as CSV.

**Keep files focused.** One large file of mixed content is harder to answer from than a few focused ones.

{% hint style="info" %}
**From Claude Code, Cursor or a terminal.** `eesel login` signs you in. `eesel files` lists your files and uploads new ones. `eesel chat` asks your agent a question, so you can check an upload from the terminal. For steps with no command, such as editing a file in the platform, use the dashboard chat. Full command reference: [The eesel CLI](/apis-and-developer-resources/cli.md). Step-by-step: [Set up from Claude Code or the terminal](/getting-started/set-up-from-a-coding-agent.md). From an MCP client: [Claude Code and MCP clients](/apis-and-developer-resources/claude-code-and-mcp-clients.md).
{% endhint %}

## Limitations

* **Uploads are up to 25MB each**, and files created in eesel up to 5MB.
* **Scanned PDFs index as empty.** There is no image-to-text conversion.
* **Only the supported formats.** PDF, Word (`.docx`), CSV, plain text and Markdown for uploads.
* **Same name, same file.** Uploading a file with an existing name overwrites it.
* **Knowledge only.** Files has no triggers and no actions, so an upload does not start your agent.

## Troubleshooting

<details>

<summary>File not processing?</summary>

Check the format is one in the table above. Check the file is not password-protected. For a PDF, check the text is selectable. Scanned pages index as empty.

</details>

<details>

<summary>Content not appearing in answers?</summary>

Give it a few minutes, because a large file takes time to process. Then test in the dashboard chat by asking a question that only that file answers.

</details>

## FAQ

<details>

<summary>How do I upload files to my AI agent?</summary>

Open **Files** in the left sidebar of the eesel dashboard, click the plus icon, and drag your documents in or browse for them. Your agent answers from them as soon as they are processed. You can also ask your agent in chat to take some documents, and it opens the upload for you. See [Add files to eesel](#add-files-to-eesel).

</details>

<details>

<summary>Which file types can I upload to eesel?</summary>

PDF, Word (`.docx`), CSV, plain text (`.txt`) and Markdown (`.md`), up to 25MB each. Files you write in eesel can be `.md`, `.txt`, `.csv`, `.json` or `.html`, up to 5MB. See [Supported formats](#supported-formats).

</details>

<details>

<summary>Why is my agent not answering from an uploaded PDF?</summary>

Most often the PDF is a scan with no text layer, so it indexes as empty. Try selecting text in the PDF. If you cannot, your agent cannot read it either, so export a text-based version. A large file can also take a few minutes to process.

</details>

<details>

<summary>How do I update a file I uploaded to eesel?</summary>

Upload the new version with the same filename. It replaces the old one.

</details>

<details>

<summary>Can my agent create files by itself?</summary>

Yes. It can create new files and add to existing ones. They appear in your **Files** list alongside the ones you made. You and your agent may edit the same file at the same time. Your edit is kept, and its version is saved separately.

</details>

<details>

<summary>Can I export a file I created in eesel?</summary>

Yes, as PDF, Word, HTML or Markdown. An uploaded file can be copied or downloaded as Markdown or HTML from the same menu.

</details>

<details>

<summary>Does uploading a file make my agent do anything?</summary>

No. Your agent answers from a file when someone asks. To have it act on incoming work, create an [automation](/automations-and-schedules/automations-and-schedules.md) on an integration that has triggers.

</details>

<details>

<summary>Can I use my uploaded files from Claude or ChatGPT?</summary>

Yes, through eesel. Once your files are uploaded, you can talk to your eesel agent from Claude, ChatGPT or Cursor, and it answers from them. See [Use eesel from Claude and other assistants](/apis-and-developer-resources/use-eesel-from-claude-and-other-assistants.md), [Use eesel from ChatGPT](/apis-and-developer-resources/use-eesel-from-chatgpt.md) and [Claude Code and MCP clients](/apis-and-developer-resources/claude-code-and-mcp-clients.md).

</details>

## Related pages

* [Internal operations](/use-cases/internal-operations.md)
* [Website](/integrations/knowledge/website.md)
* [Instructions and Memory](/instructions-and-memory/instructions-and-memory.md)
* [Integrations overview](/integrations/overview.md)
* [Set up from Claude Code or the terminal](/getting-started/set-up-from-a-coding-agent.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.eesel.ai/integrations/knowledge/uploading-files.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
