drakezhangandCursor 234e9101ed Keep service worker alive with WS heartbeat and wake reconnect
Harden the extension's connection so the daemon link survives normal
idle periods and OS sleep instead of silently dropping.

- Send a `system.heartbeat` event every 20s while the post-handshake
  link is live. Since Chrome 116 WebSocket activity resets the MV3
  service-worker idle timer, so this keeps the worker (and the socket)
  alive during use rather than relying on the 30s keepalive alarm that
  sits right on the eviction boundary. Declare `minimum_chrome_version:
  "116"` accordingly.
- Reconnect on `runtime.onStartup` and `idle.onStateChanged` ("active"),
  which revive the worker after a browser restart or machine wake and
  let it reconnect immediately instead of waiting for the next alarm
  tick. Add the `idle` permission and document it.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 12:17:06 +08:00
2026-07-09 12:42:42 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00
2026-07-08 14:14:00 +08:00
2026-07-08 14:14:00 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00
2026-07-09 12:42:42 +08:00
2026-07-09 12:42:42 +08:00
2026-06-22 17:36:26 +08:00
2026-06-22 17:36:26 +08:00

BrowserSkill

BrowserSkill banner

Let AI agents use your browser without interrupting your work.

English · 中文

BrowserSkill connects Cursor, Claude Code, Codex, OpenClaw, CodeBuddy, WorkBuddy, Pi, Hermes Agent, and other shell-capable AI agents to your already logged-in browser.

Need the agent to touch a tab you already have open? It must borrow that tab explicitly, return it when the task is done, and leave the rest of your browser alone.

https://github.com/user-attachments/assets/db782c92-b1d4-4aae-a255-039675937a90

BrowserSkill Advantages

  • Reuse real login state: Agents can work with sites you are already signed into, without separate test accounts.
  • Keep working uninterrupted: browser tasks run in a separate, visible Agent Window, so you can keep using your own browser.
  • Support any Agent: any Agent that can call a shell can use BrowserSkill through the bsk CLI, with no lock-in to a specific model, Agent framework, or harness.
  • Built-in human-in-loop: when a task hits captcha, login, confirmation dialogs, or other human-only steps, the Agent can ask you to take over and then continue afterwards.

Runtime Environment

BrowserSkill has two local runtime pieces: the bsk CLI/daemon and the browser extension.

Runtime Support
Operating systems macOS (Apple Silicon and Intel), Linux (x64 and ARM64), Windows x64
Browsers Chrome and Microsoft Edge are supported; other Chromium-based browsers are expected to work when they support unpacked Chromium extensions; Firefox is planned

Quick Start

Install with your Agent (recommended)

Already using Cursor, Claude Code, Codex, or another shell-capable agent? Just copy this one line and send it to your agent — it will install the CLI and skill for you, then walk you through loading the extension:

Set up browser-skill on this machine by following https://raw.githubusercontent.com/Tencent/BrowserSkill/main/AGENT_INSTALL.md
Manual install

Install the CLI, then install the extension from the Chrome Web Store.

1. Install the bsk CLI

macOS / Linux (recommended — installs to ~/.local/bin):

curl -fsSL https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | sh

Windows (PowerShell — installs to ~/.local/bin):

irm https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1 | iex

Verify the binary:

bsk --version

2. Install the browser extension

Install BrowserSkill from the Chrome Web Store.

3. Install the skill

BrowserSkill ships a skill that teaches your agent harness how to use bsk. For these harnesses, install it in one step:

Cursor
Cursor
Claude Code
Claude Code
Codex
Codex
OpenClaw
OpenClaw
CodeBuddy
CodeBuddy
WorkBuddy
WorkBuddy
Pi
Pi
Hermes Agent
Hermes Agent

bsk install-skill

Use Space to select the Agent harness you want to install into, then press Enter to install the skill. Run bsk install-skill --list to see internal variants and install paths.

Other shell-capable agent harnesses are supported too. Copy skill/SKILL.md into your harness's skills directory as browser-skill/SKILL.md to install the skill manually.

Start a new Agent session and write a prompt that needs the browser, for example:

/browser-skill open example.com and summarize what is on the page.

How It Works

BrowserSkill is a local bridge between your agent harness and your browser.

flowchart TB
  subgraph Harness["Agent Harness"]
    Agent["Cursor / Claude Code / Codex / OpenClaw"]
  end

  subgraph Local["Your Machine"]
    CLI["bsk CLI"]
    Daemon["bsk daemon"]
    Extension["BrowserSkill extension"]
  end

  subgraph Browser["Browser Profile"]
    AgentWindow["Agent Window"]
    UserWindows["Your normal browser windows"]
  end

  Agent -->|"shell: bsk ..."| CLI
  CLI -->|"local IPC"| Daemon
  Daemon -->|"WebSocket on 127.0.0.1"| Extension
  Extension -->|"automates"| AgentWindow
  Extension -.->|"borrow tab only when asked"| UserWindows

  style AgentWindow fill:#fff4e6,stroke:#f59e0b,stroke-width:2px,color:#111827
  style UserWindows fill:#f8fafc,stroke:#cbd5e1,color:#334155

The agent never talks to the browser directly. It asks the bsk CLI to perform a browser task; the local daemon routes that request to the extension; the extension runs it in an Agent Window.

For Developers

The repository is a Cargo + pnpm workspace:

  • crates/bsk-cli — bsk CLI and local daemon
  • crates/bsk-protocol — shared wire types and JSON schemas
  • apps/extension — browser extension
  • packages/ui and packages/i18n — shared extension UI support

License

MIT

S
Description
BrowserSkill: Let AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation. (镜像自 GitHub Tencent/BrowserSkill)
Readme MIT
6.7 MiB
Languages
TypeScript 63.1%
Rust 33%
JavaScript 2.9%
PowerShell 0.4%
CSS 0.4%
Other 0.1%