Drop files into the conversation
The paperclip in the chat composer (or drag-drop anywhere on the pane) accepts more file types than is obvious. Each kind is processed differently — text in-process and quick, audio/video deferred to a worker that can take 20-60 minutes per hour of video.
Text — TXT, MD, PDF, DOCX
Extracted on the API's own thread. PDF uses pdfplumber for text + table extraction; DOCX uses python-docx. Cap is 50 MiB per file; longer documents are truncated with a note in the chip status. Available on hosted demo + self-host.
Audio — MP3, WAV, M4A
Queued to the worker process which runs faster-whisper (small model, multilingual). Transcript joins the conversation as a new message. Available on self-host only — the hosted demo rejects audio uploads with HTTP 422 to keep the free tier sustainable.
Video — MP4, MOV, MKV, WebM
ffmpeg pulls the audio track, then the audio path runs (faster-whisper). 10 GiB per file cap. Available on self-host only — same rationale as audio. Local-path attachments (`POST /attachments/register-local-path`) let self-hosters skip the upload entirely for files already on the API container's disk.
To attach: drag a file onto the chat pane, or click the paperclip in the composer. Status chips above the message show extraction progress. Once "extracted", the file's content joins the next extraction pass and starts feeding the graph.