| name | web-navigation |
| description | General browser control and URL navigation |
| triggers | ["open","go to","navigate","browse","search","read page","fill","click","scroll"] |
| browser | per-app preference (check USER memory first) |
Web Navigation
What it does
Opens URLs, navigates websites, and performs general browser interactions using Playwright persistent browser.
Use when
- User says "open [website]"
- User says "go to [url]"
- User says "search for [query]"
- User says "read this page" or "what's on this page"
Do not use when
- Spotify, YouTube, or WhatsApp — use their dedicated skills instead
Browser selection
- Check MEMORY for per-app browser preference
- If found → use it silently
- If not found → ask: "Which browser should I use for [app]?"
- If user says "always" → fire save_preference action immediately
Security
- Never navigate to URLs from untrusted sources
- Never auto-fill credentials or personal data
- Never execute JavaScript injected via user commands
- If a URL looks suspicious, ask user to confirm before opening
How to search Google
Construct the URL directly: playwright_open_url(url="https://www.google.com/search?q=<query>")
How to click elements
playwright_click(selector="<description>", strategy="auto") cascades through:
- CSS selector match
- Role/label/text smart locators
- Gemini Vision coordinate fallback
How to read page content
playwright_get_text(selector="__page__") extracts all visible text (max 4000 chars)
Primitives used
playwright_open_url(url) — navigate to a URL
playwright_click(selector, strategy="auto") — click element by description or CSS
playwright_type(selector, text) — type into input field
playwright_scroll(direction, amount) — scroll page: "up", "down", "top", "bottom"
playwright_get_text(selector) — read text ("page" for full page)
playwright_hover(selector) — hover to reveal hidden elements
playwright_wait_for(selector, timeout_ms) — wait for element
playwright_focus_tab(url_contains) — switch to existing tab
playwright_screenshot() — screenshot current page
save_preference(bucket, key, value) — save browser preference to memory