VCode home

Send a photo, a video or a file with your message

Agents: claude, codex, opencode · On: phone, desktop

The + under the composer attaches a screenshot or a video. Hold it and you get the whole file browser instead. On a desktop you can also paste an image straight into the box, or drag a file from another window and drop it on the composer.

Why you would use it

The fastest way to show an agent a broken screen is the screenshot you just took. On a phone that is two taps: +, then the newest photo.

How to use it

  1. Tap + (#attach), at the left end of the row under the box. Android Chrome opens its photo picker with the newest screenshot first, because the input (#photo-input) accepts images and videos only.

    A picked image staged as a chip above the composer, with its thumbnail, name and size.

  2. To attach anything else, hold +: a long press on a phone, a right click on a desktop. That opens the file browser (#file-input), which also takes video/*, text/*, application/pdf and application/json.

    Two chips above the box: the image, and a text file showing a document glyph instead of a thumbnail.

  3. On a desktop, paste an image into the box (#draft) instead.

  4. Type your message, or do not. An attachment on its own is a complete message.

  5. Send.

What you see

Options and settings

Option Default What it changes
VCODE_MAX_ATTACHMENT_BYTES unset the largest file this workstation takes, in bytes, in place of the 100 MB cap
#photo-input accept image/*,video/* what the + tap offers
#file-input accept image/png,image/jpeg,image/gif,image/webp,image/*,video/*,text/*,application/pdf,application/json what holding + offers

Files the models can read as images are image/png, image/jpeg, image/gif and image/webp. Anything else is classified as a file and passed to the agent by path. A video is a file: the agent gets its path and reads it with its own tools, for example ffmpeg to pull frames.

Limits and known gaps