Skip to content

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.

  • 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.

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.

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.

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.

  • 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 becomes upload. 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.