mirror of
https://github.com/Tencent/BrowserSkill.git
synced 2026-09-10 13:01:23 +08:00
181 lines
6.7 KiB
Markdown
181 lines
6.7 KiB
Markdown
# BrowserSkill
|
|
|
|
<p align="center">
|
|
<img src="docs/assets/browserskill-readme-banner.png" alt="BrowserSkill banner" />
|
|
</p>
|
|
|
|
<p align="center">
|
|
<strong>Let AI agents use your browser without interrupting your work.</strong>
|
|
</p>
|
|
|
|
<p align="center">
|
|
English · <a href="README.zh-CN.md">中文</a>
|
|
</p>
|
|
|
|
https://github.com/user-attachments/assets/db782c92-b1d4-4aae-a255-039675937a90
|
|
|
|
**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.
|
|
|
|
## 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
|
|
|
|
<details open>
|
|
<summary><b>Install with your Agent (recommended)</b></summary>
|
|
|
|
<br>
|
|
|
|
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:
|
|
|
|
```text
|
|
Set up browser-skill on this machine by following https://raw.githubusercontent.com/Tencent/BrowserSkill/main/AGENT_INSTALL.md
|
|
```
|
|
|
|
</details>
|
|
|
|
<details>
|
|
<summary><b>Manual install</b></summary>
|
|
|
|
<br>
|
|
|
|
Install the CLI, then install the extension from the [Chrome Web Store](https://chromewebstore.google.com/detail/hhcmgoofomhgciiibhipgmgkgnoenaoi).
|
|
|
|
#### 1. Install the `bsk` CLI
|
|
|
|
**macOS / Linux** (recommended — installs to `~/.local/bin`):
|
|
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | sh
|
|
```
|
|
|
|
**Windows**: download `bsk-v<version>-x86_64-pc-windows-msvc.zip` from the
|
|
[latest CLI release](https://github.com/Tencent/BrowserSkill/releases/latest)
|
|
and add the extracted `bsk.exe` to your `PATH`.
|
|
|
|
Verify the binary:
|
|
|
|
```bash
|
|
bsk --version
|
|
```
|
|
|
|
#### 2. Install the browser extension
|
|
|
|
Install BrowserSkill from the [Chrome Web Store](https://chromewebstore.google.com/detail/hhcmgoofomhgciiibhipgmgkgnoenaoi).
|
|
|
|
#### 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:
|
|
|
|
<p align="center">
|
|
<table>
|
|
<tr>
|
|
<td align="center" width="108"><a href="https://cursor.com" title="Cursor"><img src="docs/assets/harnesses/cursor.svg" height="36" alt="Cursor" /></a><br /><sub><b>Cursor</b></sub></td>
|
|
<td align="center" width="108"><a href="https://docs.anthropic.com/en/docs/claude-code" title="Claude Code"><img src="docs/assets/harnesses/claude.svg" height="36" alt="Claude Code" /></a><br /><sub><b>Claude Code</b></sub></td>
|
|
<td align="center" width="108"><a href="https://developers.openai.com/codex" title="Codex"><img src="docs/assets/harnesses/codex.svg" height="36" alt="Codex" /></a><br /><sub><b>Codex</b></sub></td>
|
|
<td align="center" width="108"><a href="https://openclaw.ai" title="OpenClaw"><img src="docs/assets/harnesses/openclaw.svg" height="36" alt="OpenClaw" /></a><br /><sub><b>OpenClaw</b></sub></td>
|
|
<td align="center" width="108"><a href="https://www.codebuddy.ai" title="CodeBuddy"><img src="docs/assets/harnesses/codebuddy.svg" height="36" alt="CodeBuddy" /></a><br /><sub><b>CodeBuddy</b></sub></td>
|
|
<td align="center" width="108"><a href="https://www.workbuddy.ai" title="WorkBuddy"><img src="docs/assets/harnesses/workbuddy.svg" height="36" alt="WorkBuddy" /></a><br /><sub><b>WorkBuddy</b></sub></td>
|
|
<td align="center" width="108"><a href="https://github.com/badlogic/pi-mono" title="Pi"><img src="docs/assets/harnesses/pi.svg" height="36" alt="Pi" /></a><br /><sub><b>Pi</b></sub></td>
|
|
<td align="center" width="108"><a href="https://github.com/NousResearch/hermes-agent" title="Hermes Agent"><img src="docs/assets/harnesses/hermes.png" height="36" alt="Hermes Agent" /></a><br /><sub><b>Hermes Agent</b></sub></td>
|
|
</tr>
|
|
</table>
|
|
</p>
|
|
|
|
```bash
|
|
bsk install-skill
|
|
```
|
|
|
|
Use <kbd>Space</kbd> to select the Agent harness you want to install into, then
|
|
press <kbd>Enter</kbd> 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`](skill/SKILL.md) into your harness's skills directory as
|
|
`browser-skill/SKILL.md` to install the skill manually.
|
|
|
|
</details>
|
|
|
|
Start a new Agent session and write a prompt that needs the browser, for example:
|
|
|
|
```text
|
|
/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.
|
|
|
|
```mermaid
|
|
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
|