Search the documentation

Pick a page and open it with Enter.

Attachments

Upload originals of any type; read, unpack, edit and download the result.

Attach files of any type: ZIP archives, documents, source code, images or files without an extension. Each upload keeps the complete original on the backend.

Say what you want done with the files. The model can inspect them, read supported formats, unpack a ZIP, edit working copies and export the result as a download. Image analysis and image generation keep using their existing tools.

POST /api/v1/chat/stream
{
  "chat_id": "project-review",
  "tools": true,
  "messages": [
    {
      "role": "user",
      "content": "Unpack this project, fix the README and give me a new ZIP.",
      "attachment_ids": ["a904577a208845c98dbce47c1d4655f5"]
    }
  ]
}

Working with files

list_filestool

List attached originals and files in this conversation's working directory.

read_filetool

Read text and source files in pages, or extract text from PDF, DOCX, PPTX and XLSX. PDF reading uses pypdf.

copy_filetool

Copy an attached original or working file byte-for-byte into a working copy.

write_filetool

Write edited text into the conversation's working directory; attached originals stay unchanged.

edit_filetool

Replace an exact UTF-8 text fragment in a working copy. The match must be unique unless replace_all=true.

extract_archivetool

Unpack a ZIP into the conversation's working directory within the configured expansion limits.

export_filetool

Export a working file or package a directory as a ZIP and return a download link.

File processing needs tools=true. Uploading accepts every format; reading or editing depends on the available parser or tool. Unknown binary formats remain available as originals, and the model can explain what further conversion is needed.

For a small change in a large text file, copy_file creates a working copy and edit_file replaces the requested fragment without regenerating the whole file. export_file returns the complete edited result.

Images

PNG, JPEG, WebP and GIF retain their chat previews. The agent can use analyze_image to inspect them or generate_image with reference_images to make a changed or new image.

Older saved chats with inline text attachments remain readable. New text uploads keep the full file rather than a browser-truncated copy.

Limits

UPLOADS_MAX_FILESint · default 8

Files per upload request and per user message.

UPLOADS_MAX_BYTESint · default 20000000

Per original or exported file, 20 MB by default.

UPLOADS_MAX_EXTRACTED_BYTESint · default 100000000

Maximum expanded ZIP content, 100 MB by default.

UPLOADS_MAX_ARCHIVE_MEMBERSint · default 1000

Maximum number of members in an archive.

UPLOADS_DIRpath · default data/uploads

Where originals, exports and conversation work files live.

UPLOADS_ENABLEDbool · default true

Enable file uploads and the conversation's file tools.

GET /api/v1/capabilities reports uploads, uploads_max_bytes and uploads_max_files. The composer checks those limits before uploading and shows size errors in the selected UI language. The backend also checks them; oversized files return 413 with code file_too_large and details.max_bytes and details.filename.

Downloads and sharing

Uploads and attachment processing require an active session. Downloads also require a session, except when the file is referenced by a currently shared chat. Removing the share removes public access. Reopening a chat keeps its original references and exported download links.