Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

browser-form-fill — Claude Code skill: what it does, how to install

Fills web forms using a structured JSON field map and saved selector templates. It automates data entry and form submission directly in browser sessions.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add ruvnet/ruflo --skill browser-form-fill -a claude-code
Open on GitHub

What browser-form-fill does

The skill maps field names and values from a JSON file to inputs on a webpage. When a layout exists in browser-templates, the tool grabs CSS selectors directly. Otherwise, it inspects the accessibility tree through browser_snapshot to match accessible labels with keys.

Every value passes through an aidefence_has_pii check before any typing starts. Trajectory logs never store raw personal data, replacing sensitive inputs with redacted placeholders. Depending on the element, it either sets values directly or simulates keystrokes with browser_type for autocompleting fields.

Adding --submit clicks the submission button and waits for navigation. The skill cannot bypass CAPTCHAs. When bot detection appears, it pauses and asks the user to handle the check manually.

What it helps with

  • Fill web forms automatically using structured JSON files
  • Save discovered CSS selectors to templates for recurring submissions
  • Filter out sensitive personal data before browser interaction
  • Simulate real keystrokes in inputs that require autocomplete triggers

Example prompts for the agent

  • Fill the web form using the field map file and submit the page with --submit
  • Apply the mapped values to the current form using --template signup

How to install browser-form-fill

1Skills CLI (Vercel)

npx skills add ruvnet/ruflo --skill browser-form-fill -a claude-code

2Manually: put the files in place

~/.claude/skills/browser-form-fill/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/browser-form-fill/

From the same set104

The whole set →
ruflo ruvnet This skill adds multi-agent orchestration, memory, routing, and MCP tools to a project. Use it for swarm tasks and multi-step workflows. Claude Code CX Codex Cursor +1 4,000installs Swarm Orchestration ruvnet Skill for managing agent swarms with parallel execution, dynamic topology, and automatic load balancing. Use when a single agent is not enough and you need to orchestrate specialists of different types. Claude Code CX Codex Cursor +1 2,100installs github-project-management ruvnet Turns issue triage and board upkeep into gh and ruv-swarm calls: labels, subtasks, duplicate lookup. Useful when the tracker holds more tickets than order. Claude Code CX Codex Cursor +1 1,400installs github-workflow-automation ruvnet Automates GitHub Actions with AI agent coordination. Generates optimised pipelines, manages pull requests, analyzes failed runs, and deploys updates with risk assessment. Claude Code CX Codex Cursor +1 1,300installs github-code-review ruvnet Runs a swarm of specialized AI agents to inspect GitHub pull requests for security, performance, and architecture issues. Claude Code CX Codex Cursor +1 1,300installs stream-chain ruvnet Chains sequential agent steps together using streaming JSON flow and provides ready-to-run pipelines. Claude Code CX Codex Cursor +1 1,200installs flow-nexus-swarm ruvnet Deploy cloud-based AI agent swarms and define event-driven workflows with message queues. Use it to coordinate tasks, inspect runs, and scale a swarm. Claude Code CX Codex Cursor +1 1,200installs performance-analysis ruvnet Detects bottlenecks in Claude Flow swarms, profiles agent operations, and generates reports with actionable optimization recommendations. Claude Code CX Codex Cursor +1 1,200installs

Similar

daily-news-report sickn33 This skill fetches articles from pre-configured sources, filters by quality, and generates a daily Markdown report. Use it to track releases, research, and community news without manual browsing. Claude Code CX Codex Cursor +1 1,000installs anti-detect-browser antibrow Launch Chromium with a genuine device fingerprint through Playwright API. Each profile gets one coherent identity that persists across runs for testing, scraping, and multi-account work. Claude Code CX Codex Cursor +1 136,100installs cli-anything-browser HKUDS This skill maps Chrome's Accessibility Tree to a virtual filesystem. Agents navigate pages, inspect elements, and click buttons with standard terminal commands. Claude Code CX Codex Cursor +1 588installs agent-browser vercel-labs A CLI skill for browser control: it opens pages, fills forms, clicks buttons, and tests web apps. Use it when an agent needs to act inside a website. Claude Code CX Codex Cursor +1 1,200,000installs webapp-testing official anthropics This skill tests local web apps with Playwright, helping agents debug UI behavior, capture screenshots, and inspect browser logs. Claude Code Claude.ai 186,758installs computer-use stablyai This skill drives a visible app window through orca computer: accessibility tree, clicks, typing, screenshots. Reach for it when the job sits behind a GUI. Claude Code CX Codex Cursor +1 239,000installs browser-use browser-use Hands the agent a real Chrome over CDP: clicks, typing, screenshots, and pages that need JS or your logged-in session. Claude Code CX Codex Cursor +1 98,100installs last30days mvanhorn Pulls posts and engagement on any topic from the last 30 days across Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub and the web. Useful when you want what people actually said, not what a blog summarized. Claude Code CX Codex Cursor +1 52,400installs

Questions about browser-form-fill

How to install browser-form-fill in Claude Code?

Run npx skills add ruvnet/ruflo --skill browser-form-fill -a claude-code.

What does browser-form-fill do?

It inputs values from a JSON map into form fields using selector templates or accessibility snapshots.

Can the skill solve CAPTCHAs automatically?

No, it does not bypass bot protection. If a CAPTCHA triggers, the skill pauses and hands control to the user.

Source text

SKILL.md · MIT
---
name: browser-form-fill
description: Fill a web form by mapping field-name → value, with optional template lookup from browser-templates for known forms
argument-hint: "<url> <field-map.json> [--template <name>] [--submit]"
allowed-tools: mcp__plugin_ruflo-core_ruflo__browser_open mcp__plugin_ruflo-core_ruflo__browser_close mcp__plugin_ruflo-core_ruflo__browser_fill mcp__plugin_ruflo-core_ruflo__browser_type mcp__plugin_ruflo-core_ruflo__browser_select mcp__plugin_ruflo-core_ruflo__browser_check mcp__plugin_ruflo-core_ruflo__browser_uncheck mcp__plugin_ruflo-core_ruflo__browser_click mcp__plugin_ruflo-core_ruflo__browser_wait mcp__plugin_ruflo-core_ruflo__browser_snapshot mcp__plugin_ruflo-core_ruflo__aidefence_has_pii Bash Read Write
---

# 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

1. **Open a recorded session** via `browser-record`.
2. **Resolve selectors**:
   - **Template path** (`--template <name>`): pull `{field_name → selector}` from `browser-templates`.
   - **Snapshot path**: call `browser_snapshot`, walk the accessibility tree, match each input's accessible name / label to the field map keys.
3. **AIDefence PII gate**: every value in the field map passes `aidefence_has_pii` before any keystroke; record `pii_in_form: true` in the session manifest. **Do not** record the values themselves in the trajectory; record only the field names + a redacted placeholder.
4. **Fill** with `browser_fill` / `browser_type` / `browser_select` / `browser_check` per input type.
5. **Submit** if `--submit`: locate the submit button via the snapshot, `browser_click`, then `browser_wait` for navigation.
6. **Persist the template** if a new mapping was discovered:
   ```bash
   npx -y @claude-flow/cli@latest memory store --namespace browser-templates \
     --key "<host>:<form-name>" \
     --value "{field_map:{...}, submit_selector:..., post_submit_url_pattern:...}"
   ```
7. **Verify** post-submit state if a verification snippet was provided in the field map's `_assert` key.

## 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 than `browser_fill` (sets value programmatically). Record which one was used in the trajectory step.
- Multi-step forms are a sequence of `browser-form-fill` invocations; chain them via the same session id.
- If the form has a CAPTCHA, surface the request to the user — do not attempt to bypass.

© ruvnet · MIT · ruvnet/ruflo

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor