Solutions · Form filling
Forms filled the way a person would.
Snapshots name every field by its label. The agent fills them by ref, in React-safe ways, uploads files, picks options and checks the result before it submits.
browser_open{url: "https://example.com/apply", mode: "act"}
browser_snapshot{} # e4 textbox "Full name", e5 textbox "Email", e9 combobox "Country" …
browser_fill_form{fields: {"e4": "Ada Lovelace", "e5": "[email protected]"}}
browser_select_options{ref: "e9"} # lists the options; pick one with browser_fill or a click
browser_upload{ref: "e12", files: [{name: "cv.pdf", base64: "…"}]}
browser_snapshot{} # check before submittingHow it works
01
Refs, not selectors
A snapshot lists the page's interactive elements with a role, an accessible name and a ref (e1, e2 …); new elements since the last snapshot are marked. The agent acts on refs, so it does not need to write or maintain CSS selectors.
Fill sets values the way frameworks expect (React, Vue and others see a real input event). Click can be a real mouse click or a DOM click. File uploads, dropdowns, hovers and key presses are tools of their own.
02
Guarded writes
Submitting a form is a write, so it needs an act tab. Your per-site rules decide where writes are allowed. Sensitive actions (pay, transfer, delete, send, accept terms) are recognised by their text and URL and recorded in the audit log.
FAQ
Questions people ask
Does it work with React and other single-page apps?
Yes. Fill dispatches the input and change events frameworks listen for, and waits for the page to settle. The browser is a real Chromium, so the page's own JavaScript runs as usual.
Can it upload files?
Yes: browser_upload puts up to 20 files into a file input (or the button that opens a file picker) by ref. Over REST, the upload action takes the files too.
How do I stop it submitting by mistake?
Open read tabs for anything that only needs looking, since they cannot write at all. For act tabs, set the site to read-only or ask in your site rules. Approvals are off by default; with ask, each write is marked in the audit log.
Can personal details come from the vault?
Yes, for values the agent should not see (an account number, an API key): store them as fields of a vault entry and fill them with browser_fill_secret.
Can I replay a form without an LLM?
Record the run, turn it into a script (browser_record_script) and replay it (browser_replay). Replays run the same steps without a model and stop at the first step they cannot do, saying which locators they tried.
Give your agent a browser that remembers.
Start with the free trial. Connect Claude Code, Cursor, Codex or your own code in a minute.