Browser pane cannot upload files: no equivalent of chrome-devtools upload_file

Status Open
Maintainer reply None cached
Activity 1 comment · opened Sep 1, 2026

What I was trying to do

Drive a real posting flow (Instagram carousel: five local JPEGs plus a caption) through the in-app Browser pane, stopping short of publishing so the user could review and press the final button themselves.

The pane is the correct browser for this. It carries the user's real logged-in session for the target account, and it is visible to them, so a human-approved action can be staged and handed over in place.

The gap

The Browser pane has no file-upload tool. mcp__Claude_Browser__computer can click, type, drag and press keys; form_input sets input/textarea/select/checkbox/contenteditable values. Neither can attach a file from the local filesystem to an <input type="file">.

The chrome-devtools MCP has exactly this (upload_file, taking an element ref and a list of local paths), and it works. But it attaches to a separate headless profile signed into a different account, which is the wrong one for the task.

Why the workarounds do not hold

  • Base64 through javascript_tool: constructing File objects in the page from an injected data string works, but five images came to about 1.1 MB of base64, which is not a reasonable amount of text to push through a tool call. It scales with image size, and image upload is the case that needs it.
  • Fetching the bytes from a URL in page context: needs the files on a public HTTPS host first. That means publishing the user's not-yet-published content to a third party purely as a transport step.
  • A local server via preview_start: an https:// page cannot fetch http://localhost, so mixed-content blocking rules it out.

Ask

A file-upload capability on the Browser pane, matching chrome-devtools's shape:

upload_file({ ref, filePaths: ["/abs/path/a.jpg", "/abs/path/b.jpg"], tabId })

Multi-file matters: carousels, batch attachments and multi-document forms are all single inputs taking several files.

Uploading a file is a normal part of finishing work in a browser: attaching a screenshot to a bug report, adding a document to a form, putting images into a post. Right now the pane can drive every step of those flows except the one that moves the file, which means the whole flow falls back to the user doing it by hand.

Environment

Claude Code, macOS 15.5 (Darwin 25.5.0), Opus 5.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗