Fill a web form by mapping field-name → value, with optional template lookup from browser-templates for known forms
Install
npx skills add https://github.com/ruvnet/ruflo --skill browser-form-fillSKILL.md
Browser Form Fill
Fill a form using a structured field map ({"first_name": "Ada", "company": "..."}). When a browser-templates entry exists for the host, use it to resolve field names → CSS selectors automatically; otherwise resolve via the page accessibility snapshot.
When to use
- Submitting a known form (signup, contact, checkout) where field names are stable.
- Re-using a stored template for a recurring submission.
- Authoring a new template for a site by recording the resolved selectors.
Steps
- Open a recorded session via
browser-record. - Resolve selectors:
- Template path (
--template <name>): pull{field_name → selector}frombrowser-templates. - Snapshot path: call
browser_snapshot, walk the accessibility tree, match each input's accessible name / label to the field map keys.
- Template path (
- AIDefence PII gate: every value in the field map passes
aidefence_has_piibefore any keystroke; recordpii_in_form: truein the session manifest. Do not record the values themselves in the trajectory; record only the field names + a redacted placeholder. - Fill with
browser_fill/browser_type/browser_select/browser_checkper input type. - Submit if
--submit: locate the submit button via the snapshot,browser_click, thenbrowser_waitfor navigation. - Persist the template if a new mapping was discovered:
npx -y @claude-flow/cli@latest memory store --namespace browser-templates \ --key "<host>:<form-name>" \ --value "{field_map:{...}, submit_selector:..., post_submit_url_pattern:...}" - Verify post-submit state if a verification snippet was provided in the field map's
_assertkey.
Caveats
- Trajectory steps for fills MUST redact values. The PII gate is the contract.
- For inputs that require typing simulation (e.g., autocomplete reactions), use
browser_type(simulates keystrokes) rather thanbrowser_fill(sets value programmatically). Record which one was used in the trajectory step. - Multi-step forms are a sequence of
browser-form-fillinvocations; chain them via the same session id. - If the form has a CAPTCHA, surface the request to the user — do not attempt to bypass.
Related skills
agent-browservercel-labs967KBrowser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use fojust-scrapescrapegraphai245KSearch, scrape, crawl, extract structured data, and monitor web pages via the ScrapeGraph AI CLI. Use when the user asks to search the web, scrape a webpage, grab content from a URL, extract JSON from a site, crawl documentation or site sections, monitor a page for changes, inspect request history, check ScrapeGraph credits, or validate API setup.browser-actbrowser-act108Kagent-browser101-skills104KBrowser automation for AI agents via inference.sh. Navigate web pages, interact with elements using @e refs, take screenshots, record video. Capabilities: web scraping, form filling, clicking, typing, drag-drop, file upload, JavaScript execution. Use for: web automation, data extraction, testing, agent browsing, research. Triggers: browser, web automation, scrape, navigate, click, fill form, screenshot, browse web, playwright, headless browser, web agent, surf internet, record video