detachbox
PagesFiles, screenshots and photos

Files, screenshots and photos

Show the agent a bug the way you would show a colleague: paste the screenshot, and the agent gets its path and reads it. Files travel the other way just as easily. Click a path the agent prints, and the file opens in a viewer over the terminal, ready to read, download or share.

Paste screenshots into the agent

Copy a screenshot and press ⌘V or Ctrl+V in the terminal. The image uploads to /uploads/clipboard/ in this terminal and its path is pasted at the cursor; Claude Code, Codex and OpenCode turn that path into an image attachment.

  • Images up to 20 MB go in as images the agent reads; a bigger one uploads as a file.
  • Images become WebP at most 2500 px on the long side, the size the agents read: several times smaller than the screenshot, with the same detail for the agent. Where WebP encoding is unavailable they become JPEG, and an image that conversion would not make smaller goes as it is.
  • A file copied in Finder or Explorer pastes the same way: ⌘V uploads the file itself.
  • Claude Code's own image paste works too: press Ctrl+V inside Claude Code and it finds the image you just pasted.

The first paste may make the browser ask for clipboard access; the terminal points to the prompt by the address bar. If the browser blocks clipboard access for the site, allow it in the site settings and paste again.

Drop files onto the terminal

Drag files from your computer onto the terminal; it shows "Drop to upload to this terminal".

  • Files up to your plan's limit: 100 MB on Start, 250 MB on Pro, 500 MB on Max, 1 GB on Business, 2 GB on Business Plus, 5 GB on Business Max, 10 GB on Business Ultra.
  • Files go straight to your terminal, in pieces. When your connection drops, the upload waits and picks up from the last piece that arrived; nothing starts over.
  • Drop several at once: their paths are pasted in one line, separated by spaces and escaped for the shell where a name needs it.
  • Images up to 20 MB join pasted ones in /uploads/clipboard/. Other files land in /uploads/ under their own names; a second file of the same name becomes name (1).ext.
  • A folder is refused: zip it and drop the zip, or drop the files inside it.

Send photos from your phone

Tap Paste a photo on the key bar under the terminal. The phone offers its photo library, the camera and its files; pick one photo or several.

  • An iPhone photo in HEIC turns into a JPEG on the way, since no agent reads HEIC. AVIF, BMP and TIFF become PNG.
  • A photo larger than 4096 × 4096 is scaled down to fit.
  • A photo the browser can't convert stays on the phone, and the terminal tells you which one.

The key bar's Paste button pastes an image from the phone's clipboard as well. Phone covers the rest of the key bar.

Watch and cancel an upload

A pill over the terminal shows "Pasting image…" or "Uploading report.pdf…" with its progress in percent. Press Esc or pick Cancel to stop it; the part already sent is cleared from the terminal. One drop runs at a time, three of its files at once. While the connection is down the pill says "Connection lost. Resuming where it stopped…", and the upload carries on by itself once you're back online.

Where uploads live

Only this terminal sees its uploads, and they go when it ends or restarts. Pasted images keep the newest 50 from the last 24 hours: each new paste clears older ones. Move a file into your project to keep it.

Open file paths from the output

Paths the agent prints become links once the file exists: they underline as you point at them. ⌘-click or Ctrl-click one, or tap it on a phone.

  • Absolute paths, ~/…, ./…, ../… and paths such as src/app.ts.
  • A :line or :line:col suffix, such as src/app.ts:42, opens the file at that line. A bare name like app.ts links when it carries a line.
  • Relative paths start in the folder the shell is in right now.
  • file:// links and the links ls --hyperlink prints open in the viewer too; web links open in a new browser tab.

Open any file by path

Pick Open file… in the ⌘K command menu, or on the terminal's Files and previews page. Type an absolute path, a path from your home (~/…) or one relative to the terminal's folder; add :line to jump there.

Read files in the viewer

The viewer opens over the terminal; on a phone it takes the whole screen. Its header shows the file's folder, size and when it changed, and Esc closes it.

  • Code, with line numbers and highlighting for 25 languages, Dockerfiles and Makefiles among them; a :line link centres on that line and marks it.
  • Markdown, rendered the way GitHub shows it. Raw HTML inside is skipped, and images show as their alt text.
  • Images and PDFs. On a phone that shows only a PDF's first page, pick Open in a new tab.
  • CSV and TSV as a table, the first 1,000 rows.
  • Long logs: a file over 1 MB opens at its last 256 KB, and Load earlier lines reads back 256 KB at a time.
  • HTML as source, with Open rendered to see the page.
  • Anything else: its size and type, with Download.

A folder path says "This is a folder", with Open on the files host for a listing of up to 2,000 entries.

The viewer shows files up to 20 MB, and Download supports files up to 1 GiB. Copy path copies the absolute path.

  1. Open the file in the viewer and pick Share link.
  2. Under The link works for, pick 15 minutes, 1 hour, 1 day or 7 days.
  3. Pick Create the link, then Copy link.

Anyone with the link can download that one file, no account needed, until its time is up. The terminal's Files and previews page lists its links under Shared files: how many times each was opened (point at the count for the last time), when it expires, a button to copy it again and Revoke to end it early. A terminal holds up to 50 live links. Its links survive a restart and end with the terminal.

Open your files in the browser

Each terminal has a files address: https://files-<terminal ID>.detachbox.dev/<absolute path>. It serves what that terminal can read, with the same sign-in as previews. Open rendered shows an HTML report or a built site from there as a page. Such a page reaches only the files under its own folder, and never files whose names start with a dot, such as .env, .git or .detachbox.