Skip to main content

How to Send Files to X02 From an AI Chat

Four ways a file gets from your machine into X02 through an assistant — inline upload, rehosting from a URL, drop links and the standing tray — with the size ceilings and expiry times for each.

By X02 Team · · MCP, AI, Uploads, Tutorial, Developer Tools

"Upload this screenshot" is the single most common thing anyone asks an assistant to do with X02, and it is the one place where the protocol gets in the way. An AI client can show the model your attachment, but it has no mechanism for handing the bytes to a remote server — and no client exposes your attachments as public URLs, which is just as well.

So X02 has four routes instead. This page is which one applies when, and what each costs you.

[!TIP] Quick Navigation:


The four routes at a glance

Route Use it for Ceiling Expires
The tray (x02.me/drop) Anything, when you know in advance you will want it Your plan's file size limit Drop waits 24 hours
Drop link (request_file_from_user) Anything, when the assistant asks mid-conversation Your plan's file size limit Link open 15 minutes
From a URL (upload_from_url) Images already online Your plan's file size limit —
Inline (upload_file) Icons, SVGs, short text files 1 MB hard, ~128 KB comfortable —

The pattern: the two routes that go through the chat are the limited ones. Anything that travels as text in a conversation is expensive and capped. The two that route around the conversation carry whatever your plan allows.

Architecture Diagram


The tray: drop first, ask later

The best route, and the one nobody discovers on their own.

Open x02.me/drop and pin it as a tab. Paste anything into it — Ctrl+V works anywhere on the page, which is the entire interaction for a screenshot already on your clipboard. Dragging files in works too.

Whatever is sitting there gets picked up by the next assistant that asks. You never see a link, never wait, never go back and confirm. Ask "upload the screenshot I just dropped and give me the link" and it is already done by the time it answers.

[!NOTE] A tray drop waits 24 hours for someone to collect it. Unlike a drop link, it is not tied to one assistant — whichever one asks next gets it. That is the point: the tray is shared across your clients, a drop link is not.

Each drop is handed over once. Collecting it marks it claimed, so asking a second assistant the same question does not re-deliver the same pile of files.


Drop links: ask first, drop after

When you ask for an upload and there is nothing in your tray, the assistant gives you a link:

https://x02.me/drop/K7M2QXR4

Open it, paste or drag the file, and the assistant collects it without you saying anything. It polls in roughly ten-second stretches, so a "not yet" in the middle of the conversation is normal rather than a failure — it means the link is still open and it is still watching.

Three things worth knowing:

The link lasts fifteen minutes. Wander off and come back to an expired one and the assistant simply issues another. Nothing is lost.

The code is eight characters from an alphabet with no O/0 or I/1, so reading one aloud or retyping it is survivable.

It is delivered to one assistant only. A file handed to Claude through a drop link does not appear in Cursor. If you want something available to whichever assistant asks next, use the tray instead.


Rehosting from a URL

If the file is already online, this is the fastest route by a distance: give the assistant the URL and the bytes go straight from the source to X02 without passing through the conversation at all.

"Rehost https://example.com/diagram.png on my account and give me the link."

Two constraints:

Size follows your plan: 80 MB anonymous, 200 MB on a registered account, 512 MB on Pro. The remote file's Content-Length is checked before the download starts, and the real size again afterwards, so an oversized file fails fast rather than halfway.


Inline upload, and why it is so small

upload_file carries the file base64-encoded inside the tool call itself. That works, and for small things it is the most direct route there is — an SVG, a favicon, a config snippet the assistant just generated.

For anything photographic it is hopeless, and the arithmetic is worth seeing. Base64 inflates bytes by about a third. A modest 150 KB screenshot becomes roughly 200,000 characters of text that has to pass through the model's context on the way. Most clients will not emit that much, and the ones that do make you pay for it twice.

So: comfortable under 128 KB, refused outright above 1 MB. When it refuses, it says so in terms you can act on — upload it yourself on x02.me and tell the assistant what it was called, or hand over a URL instead.

That first suggestion works better than it sounds, because of how search behaves. X02 renames files on upload, but it keeps your original name alongside the generated one, and list_files searches both. Upload quarterly-report-final.png through the website and then say "find the quarterly report I just uploaded" — the assistant finds it by the name it had on your machine, without you ever touching the generated one.


What happens after the upload

The stored name is not your name. X02 assigns a short generated filename, and that is what every other tool expects — rename_files, move_files, delete_files, share_folder. Assistants are told to use the name returned by the upload. If you are cross-referencing by hand, check list_files rather than assuming.

It lands in your default upload folder. If you have set one, assistant uploads go there too, by every route. See setting a default upload folder.

It counts against your normal quota. MCP is not a separate allowance — same daily limit (250 uploads on a registered account, 1,500 on Pro), same per-plan file size ceiling. Before a big batch, ask:

"How many uploads do I have left today?"

You can set an expiry at upload time. Both upload tools accept 1h, 6h, 1d, 7d or 30d, after which the file deletes itself. Say "upload this but have it expire in a day" and the assistant passes it through. Omit it and the file is permanent.


Next Steps & Related Tutorials

What to learn next Guide Link
What MCP is and what it can do Connect AI Assistants to X02 with MCP
Step-by-step setup for your client Set Up X02 in Claude, ChatGPT, Cursor and More
What each permission grants X02 MCP Permissions: What You Are Actually Approving
Things to ask your assistant Ten Things to Ask an Assistant Connected to X02
Upload files by every other method How to Upload Files to X02
Set a default upload folder How to Set a Default Upload Folder

Read this article on X02