Skip to main content

Uploading Files in Chat

Supported file types, size limits, and how files are used in tutor and agent chats

Written by Kat Morgan
Updated today

You can upload files directly into tutor and agent chat conversations. Click the + button in the composer to attach a file, or drag and drop it into the chat area.

The chat composer showing the attachment button


​

Supported file types

The following file types are accepted across tutor and agent chats.

Images

  • JPEG (.jpg, .jpeg)

  • PNG (.png)

  • GIF (.gif)

  • WebP (.webp)

  • HEIC / HEIF (.heic, .heif) - common on iPhones and iPads

Images are displayed inline in the chat and can be analysed by the AI.

Documents

  • PDF (.pdf)

  • Word documents (.docx)

Documents are processed so the AI can read and respond to the content.

Text and code files

  • Plain text (.txt), Markdown (.md)

  • Python (.py), JavaScript (.js, .jsx), TypeScript (.ts, .tsx)

  • Ruby (.rb), Java (.java), C/C++ (.c, .cpp, .h)

  • Go (.go), Rust (.rs), Swift (.swift), Kotlin (.kt), C# (.cs), Scala (.scala)

  • HTML (.html), CSS (.css, .scss), Vue (.vue), Svelte (.svelte)

  • YAML (.yaml, .yml), JSON (.json), SQL (.sql)

  • Shell scripts (.sh, .bash, .zsh)

Text and code files are read directly into the conversation so the AI can review, explain, or help debug the content.


​

File size limits

  • Maximum file size: 10 MB per file

  • Maximum files per message: 10


​

How files are used in conversation

When you upload a file, the AI reads its content and can:

  • Images - Describe what it sees, answer questions about diagrams or photos

  • Documents - Summarise, answer questions, extract key information

  • Code files - Explain the code, find bugs, suggest improvements


​

Content moderation

All uploaded files are checked by content moderation before being processed. Images are scanned for inappropriate content, and documents are checked for policy violations. If a file is flagged, it is blocked and the student sees a moderation response message instead.

Did this answer your question?