| name | interactive-testing |
| description | Use when the user asks to test a form, click through a flow, test search or login, interact with a page, or needs browser interaction testing. |
| version | 0.8.0 |
| user-invocable | true |
| argument-hint | <url> |
Interactive Browser Testing with IBR
IBR can click, type, fill, and interact with elements on live pages — no Playwright needed. Elements are found by accessible name (not CSS selectors).
MCP Tools (preferred — works directly in Claude Code)
observe — See what's interactive
Use IBR observe tool on http://localhost:3000
Returns all clickable buttons, fillable inputs, links with their accessible names.
interact — Click, type, fill
Use IBR interact tool: click "Submit" on http://localhost:3000
Use IBR interact tool: type "debug" in "Search" on http://localhost:3000/projects
Use IBR interact tool: fill "Email" with "user@test.com" on http://localhost:3000
extract — Read page state
Use IBR extract tool on http://localhost:3000
Returns headings, buttons, inputs, links as structured data. Use after interactions to verify state changed.
interact_and_verify — Act + verify in one step
Use IBR interact_and_verify tool: click "FlowDoro" on http://localhost:3000/projects
Captures before/after AX tree snapshots, reports elements added/removed and pixel diff.
session_* — Navigate and test current screen state
Use persistent sessions when the test depends on current UI context:
session_start with a URL.
session_read with what: "observe" to inspect interactive elements.
session_action to click, type, fill, or press by accessible name.
session_read with what: "extract" or what: "state" to verify.
session_close when done.
flow_search — Search/semantic search flow
Use flow_search for search and semantic AI search. It can run against a URL or an existing Chrome session:
{
"sessionId": "<session id>",
"query": "pricing plan",
"userIntent": "Find the plan page a buyer would choose",
"aiValidation": true
}
With aiValidation: true, IBR captures step screenshots, extracts result content, and returns relevance-validation context for the agent to judge.
CLI Commands
npx ibr observe http://localhost:3000
npx ibr interact http://localhost:3000 --action click --target "Submit"
npx ibr interact http://localhost:3000 --action type --target "Search" --value "debug"
npx ibr interact http://localhost:3000 --action fill --target "Email" --value "user@test.com"
npx ibr extract http://localhost:3000
Common Flows
Test search filtering
npx ibr observe http://localhost:3000
npx ibr interact http://localhost:3000 --action fill --target "Search tools" --value "debug"
npx ibr extract http://localhost:3000
Test semantic AI search
npx ibr search-test http://localhost:3000 --query "pricing plan" --intent "Find the plan page a buyer would choose"
Test modal popup
npx ibr interact http://localhost:3000 --action click --target "FlowDoro"
npx ibr extract http://localhost:3000
npx ibr interact http://localhost:3000 --action click --target "Close"
Test form submission
npx ibr interact http://localhost:3000 --action fill --target "Name" --value "John"
npx ibr interact http://localhost:3000 --action fill --target "Email" --value "john@test.com"
npx ibr interact http://localhost:3000 --action click --target "Submit"
Element Resolution
IBR finds elements by accessible name using a 4-tier strategy:
- Cache — previously resolved elements (instant)
- queryAXTree — CDP-native semantic search by name+role
- Fuzzy matching — Jaro-Winkler on the full accessibility tree
- Vision fallback — screenshot analysis when AX tree is insufficient
Use --role to narrow matches: --role button, --role textbox, --role link.
Supported Actions
| Action | Description | Needs --value |
|---|
click | Click an element | No |
type | Type text (appends) | Yes |
fill | Clear + type text | Yes |
hover | Mouse hover | No |
press | Keyboard key press | Yes (key name) |
scroll | Scroll page | Yes (pixels) |
select | Select dropdown option | Yes |
check | Toggle checkbox | No |