Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Browser automation for AI agents — control tabs, extract content, execute scripts and manage cookies via WebSocket.
Browser automation for AI agents — control tabs, extract content, execute scripts and manage cookies via WebSocket.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Browser extension + WebSocket server that gives AI agents full browser automation capabilities.
JS Eyes connects a browser extension (Chrome / Edge / Firefox) to an AI agent framework via WebSocket, enabling the agent to: List and manage browser tabs Open URLs and navigate pages Extract full HTML content from any tab Execute arbitrary JavaScript in page context Read cookies for any domain Monitor connected browser clients
Browser Extension <── WebSocket ──> JS-Eyes Server <── WebSocket ──> AI Agent (OpenClaw) (Chrome/Edge/FF) (Node.js) (Plugin: index.mjs) The browser extension runs in the user's browser and maintains a persistent WebSocket connection to the JS-Eyes server. The OpenClaw plugin connects to the same server and exposes 7 AI tools + a background service + CLI commands.
ToolDescriptionjs_eyes_get_tabsList all open browser tabs with ID, URL, titlejs_eyes_list_clientsList connected browser extension clientsjs_eyes_open_urlOpen a URL in new or existing tabjs_eyes_close_tabClose a tab by IDjs_eyes_get_htmlGet full HTML content of a tabjs_eyes_execute_scriptRun JavaScript in a tab and return resultjs_eyes_get_cookiesGet all cookies for a tab's domain
openclaw js-eyes status # Server connection status openclaw js-eyes tabs # List all browser tabs openclaw js-eyes server start # Start the built-in server openclaw js-eyes server stop # Stop the built-in server
This skill bundle is published from the repository root and contains all files required to run the OpenClaw plugin: js-eyes/ ├── SKILL.md ← Skill entry point (this file) ├── package.json ← Root package — declares ws dependency ├── LICENSE ├── openclaw-plugin/ │ ├── openclaw.plugin.json ← Plugin manifest (ID, config schema, UI hints) │ ├── package.json ← ESM module descriptor, declares entry point │ └── index.mjs ← Plugin logic — registers 7 AI tools, 1 service, CLI ├── server/ │ ├── index.js ← HTTP + WebSocket server │ ├── ws-handler.js ← Connection and message handling │ └── package.json └── clients/ └── js-eyes-client.js ← Node.js client SDK for browser automation openclaw-plugin/index.mjs imports from ../server/ and ../clients/ via relative paths, so the directory layout above must be preserved — openclaw-plugin/ cannot be used in isolation.
Node.js >= 16 A supported browser: Chrome 88+ / Edge 88+ / Firefox 58+
Install the skill via ClawHub: clawhub install js-eyes ClawHub installs into ./skills under your current working directory (or your configured OpenClaw workspace). The bundle is self-contained — it includes the plugin, WebSocket server, and client SDK. 1. Install Node.js dependencies — the ws package is required at runtime: cd ./skills/js-eyes # from the dir where you ran clawhub install; or ~/.openclaw/skills/js-eyes if using legacy sync npm install Run npm install if ws was not auto-installed via the Skills UI. 2. Register the plugin in ~/.openclaw/openclaw.json. The path must point to the openclaw-plugin subdirectory inside the skill, not the skill root: Install method<SKILL_ROOT>Plugin path for plugins.load.pathsClawHub (workspace)./skills/js-eyes or $WORKSPACE/skills/js-eyes./skills/js-eyes/openclaw-plugin (use absolute path if needed)ClawHub (legacy sync)~/.openclaw/skills/js-eyes~/.openclaw/skills/js-eyes/openclaw-plugin Example config (replace the path with your actual install location — use pwd after cd into the skill to get the absolute path). If you already have other plugins, append this path to the existing paths array: { "plugins": { "load": { "paths": ["/path/to/skills/js-eyes/openclaw-plugin"] }, "entries": { "js-eyes": { "enabled": true, "config": { "serverPort": 18080, "autoStartServer": true } } } } } Path note: index.mjs imports from ../server/ and ../clients/ relative to itself, so the bundle directory layout must be preserved. Point paths at the openclaw-plugin subdirectory only. 3. Restart OpenClaw to load the plugin. For developers: clone the full repository and point plugins.load.paths to the openclaw-plugin directory inside your clone.
The plugin talks to browsers through the JS Eyes extension. Install it separately (independent of ClawHub): Download from GitHub Releases: Chrome / Edge: js-eyes-chrome-vX.Y.Z.zip — open chrome://extensions/ (or edge://extensions/), enable Developer mode, click "Load unpacked", select the extracted folder Firefox: js-eyes-firefox-vX.Y.Z.xpi — drag and drop into the browser window Click the JS Eyes extension icon in the toolbar, enter http://localhost:18080 as the server address, click Connect — the status should turn green.
Run the CLI command to confirm everything is working: openclaw js-eyes status Expected output: === JS-Eyes Server Status === Uptime: ...s Browser extensions: 1 Automation clients: ... You can also ask the AI agent to list your browser tabs — it should invoke js_eyes_get_tabs and return the tab list.
OptionTypeDefaultDescriptionserverHoststring"localhost"Server listen addressserverPortnumber18080Server port (must match extension config)autoStartServerbooleantrueAuto-start server when plugin loadsrequestTimeoutnumber60Per-request timeout in seconds
SymptomCauseFixExtension shows "Disconnected"Server not runningCheck openclaw js-eyes status; ensure autoStartServer is truejs_eyes_get_tabs returns emptyNo extension connectedClick extension icon, verify address is correct, click ConnectCannot find module 'ws'Dependencies not installedRun npm install in the skill root (where package.json declares ws)Tools not appearing in OpenClawPlugin path wrong or not enabledEnsure plugins.load.paths points to the openclaw-plugin subdirectory, not the skill rootPlugin path not found (Windows)Path formatUse forward slashes in JSON, e.g. C:/Users/you/skills/js-eyes/openclaw-plugin
Source: https://github.com/imjszhang/js-eyes Releases: https://github.com/imjszhang/js-eyes/releases ClawHub: https://clawhub.ai/skills/js-eyes Author: @imjszhang License: MIT
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.