$npx -y skills add Undertone0809/rudder --skill browserControl Rudder's built-in Browser with run-scoped tools for opening tabs, navigating, reading structured page snapshots, clicking, typing, taking screenshots, and closing tabs. Use when a task requires inspecting or interacting with a web page or a locally served app through the
| 1 | # Browser |
| 2 | |
| 3 | Use the Rudder-managed Browser tools instead of launching another browser or |
| 4 | trying to read browser profile data directly. |
| 5 | |
| 6 | ## Workflow |
| 7 | |
| 8 | 1. Call `rudder_browser_tabs` to reuse a tab when possible, or |
| 9 | `rudder_browser_open` with an `http:` or `https:` URL. |
| 10 | 2. Call `rudder_browser_read` before interacting. Use only element references |
| 11 | returned by the latest read result. |
| 12 | 3. Call `rudder_browser_click` or `rudder_browser_type` for one clear action. |
| 13 | Leave `submit` false unless submitting is explicitly intended. Every click |
| 14 | or type invalidates the snapshot refs, so read again before another action. |
| 15 | 4. Read again after navigation or mutation. Capture a screenshot when visual |
| 16 | evidence matters. |
| 17 | 5. Close tabs that are no longer needed. |
| 18 | |
| 19 | ## Boundaries |
| 20 | |
| 21 | - Never pass organization, Agent, run, API, or Broker identity as tool input. |
| 22 | Rudder injects and verifies that context. |
| 23 | - Treat an authenticated website session as available state, not as authority |
| 24 | to perform a purchase, publish, delete, send, approve, or other consequential |
| 25 | external action. Follow the task's approval boundary. |
| 26 | - Do not request, expose, copy, or infer cookies, session tokens, passwords, or |
| 27 | Browser profile paths. |
| 28 | - Do not use arbitrary JavaScript, CDP, custom protocols, `file:` URLs, or |
| 29 | `data:` navigation. |
| 30 | - A tab belongs to one Rudder run. Do not guess or reuse a tab id from another |
| 31 | run. |
| 32 | - If a tool returns `browser_disabled`, stop and report that Browser is disabled |
| 33 | in Settings. If it returns `browser_unavailable`, report that Rudder Desktop |
| 34 | is not connected. Do not work around either state with another browser unless |
| 35 | the user explicitly asks for that alternative. |
| 36 | - If a tool returns `browser_runtime_unsupported`, report that the current |
| 37 | runtime cannot control Rudder Browser. Do not simulate Browser control with |
| 38 | shell requests or another browser. |
| 39 | - If a ref is stale, covered, disabled, or changed, call `rudder_browser_read` |
| 40 | again instead of guessing. If a tab reaches a timeout or disappears, list |
| 41 | tabs before retrying so a late action is not duplicated. |
| 42 | |
| 43 | Read [references/tool-contract.md](references/tool-contract.md) when exact tool |
| 44 | arguments, result fields, or stable error meanings are needed. |