DocumentationFeatures
Files
Attaching files to chats, tasks and instructions, which formats agents can read, the limits, who can read what, and the project's Files section.
You can give agents documents to work with: PDFs, Word, Excel and PowerPoint files, CSV, Markdown, JSON, text, code and images. Agentbits reads each file in the background, splits it into parts and makes it searchable. Agents only read the files they have been given, and treat the content as data, never as instructions.
Where you can attach files
| Where | How it is shared |
|---|---|
Chat, #general |
With the lead by default; the Who can read the files: picker also offers The whole project team or Team: name |
| Chat, direct message | With that agent |
| Chat, task thread | Linked to the task |
| Task drawer (Files) or the New task dialog | Linked to the task |
| Agent terminal (drop on the pane) | With that agent, together with your instruction and its task |
| Files section | Not shared with anyone until you allow it |
In every place you can use the attach button, drag and drop, or paste. Uploads start as soon as you add a file, so text extraction runs while you type. Uploads you remove or never send are deleted.
When the lead turns your message into tasks, it attaches your files to the new tasks (a short note in the chat says so), so the agents doing those tasks can read them.
Supported formats
| Format | What is read |
|---|---|
| Text, page by page (text layer only; layout and tables are approximate) | |
| Word (.docx) | Paragraphs, headings, lists and tables. Tracked deletions are skipped. Headers, footers, footnotes and embedded images are not read. |
| Excel (.xlsx) | All sheets, with date formats. A formula without a cached value shows as =FORMULA. |
| PowerPoint (.pptx) | Slides and speaker notes |
| CSV | Tables; the delimiter is detected |
| Markdown | Split by headings |
| JSON / JSONL, code, plain text | As text |
| Images (PNG, JPEG, GIF, WebP, BMP) | Dimensions; the image itself goes to providers that accept images |
Text files can be UTF-8 (with or without BOM) or UTF-16; anything else is read as Windows-1254. The file type is checked against the file’s actual content, not just its extension.
What is not read
- Scanned PDFs and text in images: there is no OCR. A PDF without a text layer is marked as partially read, with a message.
- Old Office formats (.doc, .xls, .ppt) and .rtf are stored but not read.
- Images reach only providers that accept them: the Anthropic API, OpenAI API (images only; PDFs are not sent to OpenAI as documents), Claude Code and Codex CLI. The Demo provider does not use images.
Limits
| Limit | Value |
|---|---|
| File size | 50 MB per file |
| Files per send | 20 |
| Image preview | Up to 15 MB |
| File an agent saves | Text formats only, 2 MB each, 20 per run |
Extraction runs in a separate worker with memory and time limits, and with limits on how much a compressed Office file may expand.
Who can read what
Access is deny by default: no agent can read a file unless one of these is true.
- The file was sent to the agent: to the lead (default in
#general), to a team, to the whole project team, or to the agent in a direct message or instruction. - The file is linked to the task the agent is working on.
- You allowed it in the file’s Access tab, for that agent or for the whole project team.
Agents can only read files. They cannot change or delete them.
When a file is long, the agent gets a list of the files it can read and a preview, and reads the rest part by part or searches inside it with its file tools. Codex CLI agents have no file tools: they get as many parts as fit in the prompt, with a note saying what was left out.
Every file’s content reaches the model marked as untrusted data. Agentbits also looks for lines that read like instructions aimed at an AI and shows a warning (“instruction-like lines”). These lines are never followed either way.
Denied reads, files saved by agents, your deletions and access changes are written to the audit log.
Files agents produce
- Saved files: during a task, an agent can save its text output as a new file (Markdown, text, CSV, JSON, HTML, XML, YAML, SQL, SVG and similar). The agent that saved it and the project lead (who reviews the work) can read it.
- Folder changes: for Claude Code and Codex CLI agents with file write permission, Agentbits scans the project folder after a successful run and lists the changed files as Folder files. They are not copied; they stay in your folder. The scan skips folders such as
.git,node_modules,distandbuild, and records a limited number of files per run.
Produced files show up as chips in the task thread, as “📎 n files” in #general, in the agent’s transcript and in the task report.
The Files section
Each project has a Files section (Ctrl+9) listing uploads, files agents produced and changes in the project folder.
- Filter by All, Uploaded, Agent or Folder.
- Search name or content…: content hits open the preview at the matching part.
- Upload files or drop files onto the section. Files added here are not shared yet: share them in the chat or a task, or allow access under Access.
- The list shows File, Type, Size, Source, Access, Status and Added.
Click a file to open its preview:
- Content: the extracted text, 20 parts at a time; CSV and Excel as tables; images.
- Access: per-agent switches and Let the whole project team read it. It also lists tasks that give access.
- Usage: where the file was Attached, Given in the prompt, Read or Generated.
- Save as, open with your default app (only for types that are safe to open), Show in folder (folder files) and delete.
Note: Deleting a folder file removes only its record. The file in your project folder is not touched.
Storage
Files are stored inside the Agentbits data folder (on Windows under %APPDATA%\Agentbits). Identical files are stored once. Settings → Data management shows how much space files use, and a project cleanup can remove a project’s file records without touching your project folder. See Settings.
Tip: Backups contain the extracted text. The original files are kept as long as a backup still refers to them.
Found something wrong or missing? Open an issue on GitHub