:Release Notes: - pi configuration do not configured to work with devtools mcp server :Detailed Notes: - Added configuration for agent-browser, but no good results was received. Seems like on a complex webpages like rutube.ru we could encounter several buttons which compacting to the identical nodes, leading to a problems with navigation - agent-browser compaction of a11y tree seems to be a good starting point, but not sufficient :Testing Performed: - prompt: Launch <Movie> on rutube in both opencode and pi :QA Notes: - :Issues Addressed: -
3.8 KiB
name, description, compatibility
| name | description | compatibility |
|---|---|---|
| browser-butler | Drive the user's existing web browser with the agent-browser CLI for natural-language browser tasks such as opening pages, searching, filling forms, checking state, using web apps, and navigating tabs. Use proactively for any task that should be completed in the live browser. | Requires agent-browser and this project's agent-browser.json CDP configuration. |
Browser Butler
Fulfill the user's browser intent end-to-end by controlling their existing Chrome instance with agent-browser through Pi's bash tool.
The project-level agent-browser.json connects the CLI to the same live Chrome instance on CDP port 9333. Run commands from the project root so this configuration is applied. Do not start a separate browser, pass another profile, or run agent-browser close.
Load the appropriate skill
This skill orchestrates the overall task. For the actual agent-browser mechanics (snapshots, refs, clicking, filling, typing, waiting, tab management, troubleshooting), load the agent-browser skill before acting:
read /home/vptyp/git/devtools_test/.pi/skills/agent-browser/SKILL.md
For specialized browser tasks, also load the matching skill:
- Microsoft Teams messages (typing, sending, formatting, tables): load the relevant
ms-teams-*skill.
Follow those skills' instructions for command syntax and patterns; this skill defines the workflow and safety boundaries around them.
Workflow
1. Inventory the browser
Always begin by listing tabs. Treat open tabs as the working set of apps. Prefer an existing suitable tab, especially when it may already be authenticated or contain user state. Switch to it rather than opening a new tab.
Open a new tab only if no existing tab fits. Do not guess destination URLs when they can be derived from app navigation, search results, or a web search.
2. Inspect the chosen page
After selecting the tab, take a snapshot of the page to obtain element refs for interaction. Prefer snapshots over JavaScript scraping when the snapshot already exposes the needed controls or content.
3. Act toward the goal
- Search: fill or type into the app's search field, then press Enter or click Search.
- Navigate: click the relevant link or button.
- Fill forms: inspect every field, fill known values, and stop before irreversible submission unless explicitly authorized.
- Check state: inspect the relevant region and verify the resulting value or text.
- Compare: inspect each relevant tab and retain the exact values and URLs.
Translate search terms and field values into the application's working language when appropriate.
4. Refresh refs after changes
Element refs are scoped to the active tab and snapshot. After navigation, submission, major DOM mutation, or switching tabs, take a fresh snapshot before using refs again. Never click or fill a stale ref.
5. Confirm completion
Verify the final state rather than assuming an action succeeded. Check for errors, login prompts, paywalls, CAPTCHAs, region blocks, and unexpected redirects. Do not bypass them.
Safety
- Do not submit payments, bookings, deletions, messages, posts, or other irreversible actions unless the user explicitly requested submission. If intent is not explicit, fill the form and ask for confirmation.
- Do not expose secrets, cookies, tokens, or unrelated private page content.
- Do not bypass authentication, paywalls, CAPTCHAs, or access controls.
- Do not overwrite or close a tab the user may care about without asking.
- Do not claim success without checking the resulting page state.
- Do not run
agent-browser close; this project attaches to the user's existing Chrome instance.
Reporting
Report concisely what was done, which app/tab was used, and the verified final URL or state. Mention any judgment call, blocker, or action intentionally left awaiting confirmation.