SkillHub

chrome-relay

v1.0.0

Control the user's local Chrome browser via OpenClaw Browser Relay extension. Use when: (1) User asks to control/access their browser (2) User wants to automate browser actions (click, type, navigate, screenshot) (3) User wants to read page content from a specific Chrome tab (4) User wants to use ex...

Sourced from ClawHub, Authored by meowlegemy-sudo

Installation

Please help me install the skill `chrome-relay` from SkillHub official store. npx skills add meowlegemy-sudo/chrome-relay

Chrome Relay Browser Control

Control the user's local Chrome browser through the OpenClaw Browser Relay extension. This provides access to the user's real logged-in browser sessions.

Setup (First Time)

If user doesn't have Browser Relay extension installed:

  1. Get extension path: ~/.openclaw/browser/chrome-extension Or run: open ~/.openclaw/browser/chrome-extension (macOS)

  2. Install in Chrome:

  3. Open chrome://extensions
  4. Enable "Developer mode" (top right)
  5. Click "Load unpacked"
  6. Select the extension folder

  7. Get Gateway token: openclaw config get gateway.auth.token

  8. Configure extension:

  9. Click extension icon → Settings
  10. Enter the gateway token
  11. Save

  12. Connect:

  13. Open the Chrome tab you want controlled
  14. Click the extension icon to attach (badge shows ON)

Usage

Check Connected Tabs

openclaw browser tabs --profile chrome-relay

Or use the tool:

browser(action=tabs, profile=chrome-relay)

Read Page Content

browser(action=snapshot, profile=chrome-relay, targetId=<targetId>)
browser(action=navigate, profile=chrome-relay, targetId=<targetId>, url="https://...")

Interact with Page

Note: aria-ref based selectors have reliability issues in chrome-relay mode. Prefer JavaScript evaluation for complex interactions:

// Click element
browser(action=act, kind=evaluate, profile=chrome-relay, 
  fn="document.querySelector('selector').click()")

// Type in input
browser(action=act, kind=evaluate, profile=chrome-relay, 
  fn="document.querySelector('input').value = 'text'")

// Get element info
browser(action=act, kind=evaluate, profile=chrome-relay, 
  fn="document.querySelector('selector').innerText")

Limitations

  • aria-ref selectors may timeout; use JavaScript evaluate instead
  • Extension must be attached (icon shows ON) for each tab
  • Only works with Chrome browser
  • Connection port: 18792

Troubleshooting

Red ! badge on extension: - Gateway not running → start with openclaw gateway start - Token mismatch → verify token in extension settings

Can't find element: - Page may have loaded new DOM → re-snapshot - Use browser devtools console to find selectors first