Sending files to a session
Agents work with what they can see. Uploading puts a file on the host, next to the session, and hands the agent its path — so “look at this screenshot” or “here is the failing log” works from any device.
On macOS
Section titled “On macOS”- Drag and drop files onto a session card. Several at once is fine.
- Or use Upload Files on the card menu.
An overlay shows progress with an index/total count while a batch runs.
On iPhone and iPad
Section titled “On iPhone and iPad”The command bar has an upload button with three sources:
| Source | For |
|---|---|
| Files | anything already on the device or in iCloud Drive |
| Photo library | screenshots and images you already took |
| Camera | photograph something in front of you, right now |
The camera path takes about five seconds: a whiteboard, a device screen or a sheet of paper, photographed straight into the agent’s context.
Images stop for a moment first
Section titled “Images stop for a moment first”An image on its way to a session opens in the annotation editor: circle what you mean, number it, write a line per number. The agent gets the marked picture and your notes as text. Anything that is not an image uploads directly, and the editor can be switched off in Settings.
What the agent sees
Section titled “What the agent sees”Each session has its own upload directory on the host. Uploaded files land there with a sanitized filename, and the path is handed to the session so the agent can read it directly.
Because the file is on the host, the agent can do real work with it — open it, diff it, run it through a tool — instead of only seeing an inlined image.
Details
Section titled “Details”- Upload directory:
~/.offsite/uploads/<session-id>/on the host. - Filenames are sanitized to
A–Z a–z 0–9 . _ -; a name that reduces to nothing becomesupload. Directory components are stripped, so an upload can never escape its session directory. - Only regular files are accepted — no directories, no symlinks.
- Uploads are user-initiated only. An agent cannot pull a file off your device.
- The transport gives no per-byte progress, which is why a batch shows a spinner plus a file count rather than a percentage.
- Uploads are not cleaned up automatically; the directory is yours to prune.