Files

Every project can have files the agent can read, write, and edit. They're stored in Avi's cloud storage, scoped to your project. The agent can:

  • List files in the project, including nested directories.
  • Read any file. Text files (markdown, CSV, JSON, code, etc.) come through as text. Images and PDFs are read natively — Avi can see the contents of a PDF or screenshot directly, no extraction step. Word, Excel, and PowerPoint files (.docx/.xlsx/.pptx) are read as extracted text — spreadsheets come through sheet-by-sheet so Avi can reason over the rows.
  • Write new files (text or binary).
  • Edit parts of existing text files in place.
  • Move and rename files or whole directories.
  • Delete files.

Getting files in

There are four ways to put a file into a project:

  • Files panel: open the Files panel from the project sidebar and drag in (or pick from your computer). Files appear in the directory tree and are immediately readable by the agent.
  • Paste or drop in chat: paste a screenshot from the clipboard, or drag a file onto the chat composer. Attachments are saved into the project's Attachments/ folder automatically, so they show up in the Files panel and Avi can come back to them in later conversations. Limits: 8 attachments per message, 10 MB each. Very large images are automatically downscaled before they're shown to the model (the stored file keeps its full resolution).
  • Let the agent create them: Avi can write new files as it works (a generated report, a chart, a transformed CSV).
  • Pull them in from connected apps: with the Google app enabled, ask Avi to save an email attachment or a Google Drive file into the project — "grab the invoice PDF from Dana's email and review it". The file lands in the project's files (attachments default to an email-attachments/ folder), and since PDFs and images are read natively, Avi can review the contents right away. Files up to 10 MB.

Files persist for as long as the project exists.

Getting files out

Project files also travel the other way. With the Google app enabled, Avi can attach project files to emails it sends or drafts ("send the Q3 report to Dana as an attachment" — up to 18 MB of attachments per email) and upload project files to Google Drive byte-exact, including binary files like PDFs and images — optionally converting them into native Google Docs or Sheets on the way.

Editing files safely

When Avi edits part of a file in place, it has to point at a snippet that's unique in the file — otherwise the edit might land at the wrong copy of a common phrase. If your file has the same exact line in two spots, Avi will ask for more context to disambiguate, or you can tell it explicitly to replace every occurrence.

Edits are also protected against collisions: if a file changed between Avi reading it and writing it back (say, a teammate re-uploaded it), the write is refused and Avi re-reads before retrying — so nobody's changes get silently overwritten.

Finding files

Avi's project-wide search covers files too — by name, and by content for text files. "Find the Q3 budget spreadsheet" works even when the filename doesn't say Q3.

Large files

Avi can read very large text files (logs, big CSVs) in pages — by line range or byte range — rather than swallowing the whole thing at once. You don't have to think about this — Avi will page through automatically when a file is big.

Folders and previews

The Files panel supports full folder management: create folders (the "New folder" button in the top bar, or hover a folder for a create-inside action), rename files and folders in place, drag files and folders between directories, and delete a folder with everything in it. Click any file to see a preview — images and PDFs render inline, text files show their contents — plus a download button.

Search: the box at the top of the panel matches filenames as you type (across the whole project, not just expanded folders). Press Enter to also search file contents — semantic matching, so "quarterly revenue" finds the Q2 summary even when no filename says so. Esc or ✕ returns to the tree exactly where you left it.

The Attachments/ folder is special: chat uploads land there and messages reference those paths permanently, so it can't be renamed or deleted, and subfolders can't be created inside it (individual files in it can still be renamed, moved out, or deleted).

Custom metadata on files

Every file carries a freeform metadata JSON object — the same extensibility surface Tasks, Notes, and Contacts have (Data Types). Use it to attach cross-system identifiers (stripe.invoice_id, hubspot.attachment_id), workflow state (reviewed_by, team_owner), or any tag you'll later want to filter on. Two systems writing different top-level keys never clobber each other.

You can read or write a file's metadata from the agent (Avi sets and merges keys as part of cloud_files-write, and filters listings by metadata containment), from apps, or from the HTTP API directly. See the Data Types page for the full merge semantics and query shape.

When you list a directory with a metadata filter, directories with no matching files inside are hidden — the filtered view is focused, not a tree of empty folders. List without a filter to see the full structure.