# Send JS Eyes to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "js-eyes",
    "name": "JS Eyes",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/imjszhang/js-eyes",
    "canonicalUrl": "https://clawhub.ai/imjszhang/js-eyes",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/js-eyes",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=js-eyes",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "clients/js-eyes-client.js",
      "openclaw-plugin/index.mjs",
      "openclaw-plugin/openclaw.plugin.json",
      "openclaw-plugin/package.json",
      "package.json",
      "server/index.js"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/js-eyes"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/js-eyes",
    "downloadUrl": "https://openagent3.xyz/downloads/js-eyes",
    "agentUrl": "https://openagent3.xyz/skills/js-eyes/agent",
    "manifestUrl": "https://openagent3.xyz/skills/js-eyes/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/js-eyes/agent.md"
  }
}
```
## Documentation

### JS Eyes

Browser extension + WebSocket server that gives AI agents full browser automation capabilities.

### What it does

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

### Architecture

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.

### Provided AI Tools

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

### CLI Commands

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

### Skill Bundle Structure

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.

### Prerequisites

Node.js >= 16
A supported browser: Chrome 88+ / Edge 88+ / Firefox 58+

### Deploy to .openclaw

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.

### Browser Extension Setup

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.

### Verify

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.

### Plugin Configuration

OptionTypeDefaultDescriptionserverHoststring"localhost"Server listen addressserverPortnumber18080Server port (must match extension config)autoStartServerbooleantrueAuto-start server when plugin loadsrequestTimeoutnumber60Per-request timeout in seconds

### Troubleshooting

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

### Links

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
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: imjszhang
- Version: 1.4.3
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-30T16:55:25.780Z
- Expires at: 2026-05-07T16:55:25.780Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/js-eyes)
- [Send to Agent page](https://openagent3.xyz/skills/js-eyes/agent)
- [JSON manifest](https://openagent3.xyz/skills/js-eyes/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/js-eyes/agent.md)
- [Download page](https://openagent3.xyz/downloads/js-eyes)