browser-intent
From ruvnet
Execute a natural-language browser intent via page-agent (browser_act) when the target is easier to describe than to select — degrades gracefully when page-agent or an OpenAI-compatible LLM provider isn't configured
Executes a natural-language browser action (e.g. 'click the login button') via page-agent's LLM tool-call loop over browser_act.
Use it when
- Target element hard to select due to dynamic classes or A/B-tested markup
- One-shot interaction not worth writing a selector chain for
- Need natural-language fallback layered on top of browser_click/browser_fill
Skip it if
- No OpenAI-compatible LLM provider configured (bare ANTHROPIC_API_KEY won't work)
- page-agent npm package not installed — degrades to selector-based tools only
- You already know the exact selector/ref — browser_act adds LLM latency and cost
Facts
- Repository
- ruvnet/ruflo
- Status
- Actively maintained
- Last commit
- Declared tools
- mcp__claude-flow__browser_act mcp__claude-flow__browser_open
Source preview
The instructions Claude Code reads when this skill runs.
# Browser Intent
Natural-language layer on top of the low-level `browser_*` selector tools. Where `browser-extract` and `browser-form-fill` compose selector-based primitives (`browser_click`, `browser_fill`, `browser_snapshot`), `browser-intent` lets the caller say what they want ("Click the login button", "Fill the search box with cats and submit") and delegates execution to [page-agent](https://github.com/alibaba/page-agent) — in-page injected JS that turns the DOM into text and drives an LLM tool-call loop against it.
## When to use
- The target element is easier to describe in words than to select reliably (dynamic class names, ambiguous structure, A/B-tested markup).
- A one-shot interaction where writing out a selector chain isn't worth it.
- Prefer `browser_click` / `browser_fill` / `browser_snapshot` directly when you already know the exact selector or ref (`@e1`) — `browser_act` adds LLM latency + cost that a direct selector call doesn't.
## Steps
1. **Call `browser_act`** with a `task` string, and optionally `url` (navigates first) and `session` (default `"default"`):
```
mcp__claude-flow__browser_act({
task: "Click the login button",
url: "https://example.com/account",
session: "my-session"
})
```
2. **Read the response contract**:
- `{ success: true, result, steps, history, contentFlagged, llmSource }` — the intent executed. `resulView full source on GitHub →Other skills
django-tdd
★ 229,918Django testing strategies with pytest-django, TDD methodology, factory_boy, mocking, coverage, and testing Django REST Framework APIs.
affaan-mupdated 14d agoMITclickhouse-io
★ 229,918ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.
affaan-mupdated 14d agoMITlaravel-patterns
★ 229,918Patrones de arquitectura Laravel, routing/controladores, Eloquent ORM, capas de servicio, colas, eventos, caché y API resources para aplicaciones en producción.
affaan-mupdated 14d agoMITverification-loop
★ 229,918Sistema de verificación completo para sesiones de Claude Code.
affaan-mupdated 14d agoMITstrategic-compact
★ 229,918Suggests manual context compaction at logical intervals to preserve context through task phases rather than arbitrary auto-compaction.
affaan-mupdated 14d agoMITfrontend-patterns
★ 229,918Patrones de desarrollo frontend para React, Next.js, gestión de estado, optimización de rendimiento y buenas prácticas de UI.
affaan-mupdated 14d agoMIT