BrowserSkill is Tencent's open source bridge that lets Claude Code, Cursor, Codex and any other shell-capable AI agent drive your real, already logged-in Chrome or Edge, without taking your browser away from you: the agent works in a separate Agent Window and has to borrow one of your tabs explicitly. It is trending on GitHub today with about 1,350 new stars on top of 4,026 total, one day after the v0.3.0 release (September 17, 2026) added remote browser pairing, full-page screenshots and an opt-in operation audit log. Setup takes about ten minutes: one installer line for the bsk CLI, the extension from the Chrome Web Store or Edge Add-ons, one command to drop the skill into your agent, and bsk doctor to confirm the three pieces are talking.

  • Three local pieces: the bsk CLI your agent calls from the shell, a local daemon it auto-starts, and the browser extension connected over a WebSocket on 127.0.0.1. No cloud, no API key, no separate test account.
  • The agent gets its own Agent Window inside your browser profile, so it inherits your logins. Touching a tab you already have open requires bsk tab borrow, which asks for your approval by default and hands the tab back when the session stops.
  • Built-in human-in-the-loop: when a task hits a CAPTCHA, login page or payment confirmation, the agent calls bsk request-help and waits for you, then resumes.
  • Works with Cursor, Claude Code, Codex, OpenClaw, CodeBuddy, WorkBuddy, Pi, Hermes Agent and Kimi Code through bsk install-skill; DeepSeek Harness gets a dedicated npm plugin instead. macOS, Linux and Windows x64 builds ship as roughly 5 MB archives; Firefox is planned but not supported yet.

The exact steps, start to finish

  1. Step 1. Check what you already have.
    # BrowserSkill needs Chrome or Edge, at least one shell-capable agent, and curl (macOS/Linux) or PowerShell (Windows)
    claude --version
    codex --version
    curl --version
    Any one agent is enough; the skill installer detects which harnesses are present. The CLI is a single static binary (Rust, about 14 MB unpacked on Windows), so there is no Node, Python or Docker requirement for the tool itself.
  2. Step 2. Install the bsk CLI. These are the README's exact lines. macOS and Linux install to ~/.local/bin:
    curl -fsSL https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | sh
    export PATH="${BSK_INSTALL_DIR:-$HOME/.local/bin}:$PATH"
    Windows, in PowerShell (also installs to ~/.local/bin and adds it to your user PATH):
    irm https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1 | iex
    From a plain cmd.exe window, either hand that same one-liner to PowerShell with powershell -Command "irm https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1 | iex", or skip the installer entirely: download bsk-v0.3.0-x86_64-pc-windows-msvc.zip (5.5 MB) from the Releases page, unzip it, and put bsk.exe somewhere on your PATH. That is what we did for this test.
  3. Step 3. Verify the binary in the shell your agent will use.
    bsk --version
    Ours printed bsk 0.3.0. The README is explicit that the Unix installer cannot update its parent shell's PATH, so repeat the export line in a new terminal (or use the absolute path ~/.local/bin/bsk), and restart an agent that was already running before the install.
  4. Step 4. Install the browser extension. Open the store listing in the browser you want the agent to use and click Add: Chrome Web Store or Edge Add-ons. Other Chromium browsers should use the Chrome build. Pin the extension and open its popup: it shows the connection status, a browser alias field, and the two Automation settings (confirm before borrowing tabs, allow requests for human help), both on by default.
  5. Step 5. Install the skill into your agent.
    bsk install-skill
    Use Space to select the harness and Enter to install. On our machine bsk install-skill --list detected Claude Code (~/.claude/skills), Codex (~/.agents/skills), Cursor, OpenClaw and Hermes Agent. For a scripted install, name the harness: bsk install-skill --harness cursor --json. DeepSeek Harness users skip this step and add the plugin instead: dsh plugin --profile web add @wxg-prc-cpg/browser-skill-dsh-plugin.
  6. Step 6. Run the health check.
    bsk doctor
    Running this auto-starts the daemon. Before the extension connects, ours reported ok daemon running, ok protocol compatible and FAIL extension connected: 0 browsers connected, with a hint pointing at the two store links. Once the popup shows connected, every line should read ok; N/A agent skill only means no skill was found for the current directory, so double-check Step 5 if that surprises you. bsk status prints the daemon version, protocol (1.3 in 0.3.0), PID, WebSocket port, connected browsers and active sessions.
  7. Step 7. Give it a first task. Start a fresh agent session, confirm browser-skill shows up in its skill list, and ask for the README's smoke test:
    /browser-skill open example.com and summarize what is on the page.
    Under the hood the agent runs bsk session start --json, then bsk navigate https://example.com --session <id> and bsk observe --session <id>, reads the page, and finishes with bsk session stop <id>. A new Agent Window opens in your browser, loads the page, and closes again. When you get the summary back and the window is gone, the install is complete.
How a BrowserSkill request travels from the agent to your browserThe agent harness shells out to the bsk CLI, which talks over local IPC to the bsk daemon, which reaches the browser extension over a WebSocket on 127.0.0.1. The extension automates a dedicated Agent Window inside your browser profile and only borrows one of your own tabs when explicitly asked. AGENT TO BROWSER, ALL ON 127.0.0.1 Agent harnessClaude Code, Cursor, Codex shell bsk CLIbsk navigate, observe local IPC bsk daemonauto-started, idles outprotocol 1.3 WebSocket ExtensionChrome or Edge popup your browser profile, your logins Agent Windowseparate visible windowwhere every session runs Your normal windows and tabsuntouched unless the agent runs bsk tab borrowyou approve, it returns the tab on session stop Human-in-the-loop: bsk request-help pauses on CAPTCHA, login, OTP or payment steps until you finish them. Never talks to the browser directly; the daemon is the only thing listening, and only on localhost. genztech.blog
Fig 1 The path of one request: agent to CLI to daemon to extension, all on the loopback interface, ending in a dedicated Agent Window rather than in the tab you are reading right now.

What is BrowserSkill and why is it trending?

BrowserSkill is a Tencent project (its DeepSeek Harness plugin ships under the @wxg-prc-cpg npm scope, the WeChat side of the company) and was first pushed to GitHub on June 22, 2026. The repository is a Cargo plus pnpm workspace: crates/bsk-cli holds the Rust CLI and daemon, crates/bsk-protocol the shared wire types and JSON schemas, apps/extension the browser extension, and evals/browser a set of deterministic local pages for scoring how well an agent actually drives a browser. It is MIT licensed, with 287 forks and 4,026 stars as of today.

RelatedECC Setup: Install the Claude Code Agent Harness in 10 Minutes

The pitch is narrow and useful: agents already have plenty of ways to open a fresh headless Chromium, but very few safe ways to use the browser you are signed into. BrowserSkill's answer is a visible Agent Window in your existing profile, so the agent inherits your sessions on GitHub, your CMS, your internal dashboards, without you exporting cookies or creating service accounts, and without it stealing focus from the tab you are working in. The bsk observe command returns a semantic view of the page with @e3-style element refs the agent can click, fill, hover and scroll to, and bsk record can capture your own clicks into a trace.json the agent replays later.

Why the spike today: v0.3.0 landed on September 16 and was published on the 17th, and it is the biggest release since the project appeared. It adds remote browser connections (an agent on a server pairs with the browser on your laptop through a one-use link, with device credential renewal and revocation), full-page screenshots that follow lazy-loaded content, an opt-in operation audit with 30-day retention on the daemon host, canvas element refs, a native mouse-wheel primitive, a configurable local port, Korean localization, and a documented setup for sandboxed agents whose shells kill background processes. It also tightened the safety model: the deprecated --unattended, tab borrow --no-confirm and BSK_REQUEST_HELP=off flags can no longer override the two switches in the extension popup.

How do you install BrowserSkill on Windows?

You need Chrome or Edge, PowerShell, and one agent. The README's installer downloads bsk.exe to %USERPROFILE%\.local\bin, adds that folder to your user PATH, and even appends an export line to ~/.bashrc for Git Bash users:

# PowerShell
irm https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1 | iex
bsk --version
bsk install-skill
bsk doctor
# cmd.exe (same steps; hand the installer line to PowerShell)
powershell -Command "irm https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1 | iex"
bsk --version
bsk install-skill
bsk doctor

Open a new terminal after the install so the PATH change is picked up. The 0.2.1 and 0.3.0 changelogs both list Windows-specific fixes (PowerShell 5.1 compatibility, path quoting, staged executable replacement, named-pipe continuity), which is a sign the platform gets real testing but also that it is the youngest of the three. On Windows the daemon listens on a named pipe (\\.\pipe\bsk-daemon-... in our bsk status output) plus the WebSocket port for the extension. If bsk update --yes later reports a staged update, let the replacement finish before checking the version.

How do you install BrowserSkill on macOS and Linux?

The Unix installer picks the right archive for your CPU (Apple Silicon and Intel on macOS; x64 and ARM64 musl builds on Linux), drops the binary into ~/.local/bin, and leaves PATH to you:

curl -fsSL https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | sh
export PATH="${BSK_INSTALL_DIR:-$HOME/.local/bin}:$PATH"
bsk --version
bsk install-skill
bsk doctor

Add the export line to your shell profile so future agent sessions find it. If you are using a sandboxed agent that reaps background children after every command (the docs cite a Linux WorkBuddy report, and the same applies to some Windows setups), follow the sandboxed-agents guide: pick a persistent BSK_HOME directory, start the daemon once from a host terminal with bsk daemon start, and run every agent-side command with BSK_AUTO_START=0 so the sandbox never tries to spawn its own daemon. The daemon exits on its own after 10 idle minutes with nothing connected; --daemon-idle 2h on start extends that.

What can the agent actually do once it is connected?

The skill file teaches a strict loop: start a session, navigate or borrow, observe, act on a fresh ref, observe again, and always bsk session stop <id> at the end so borrowed tabs go back. The action set in 0.3.0 covers click, fill, select, press, hover, focus, blur, scroll-to, wheel, upload, download, evaluate, console and network reads, mobile emulation, and viewport, element or full-page screenshots. Two rules are baked into the instructions rather than left to the model: never extract cookies, tokens or other credentials from the browser, and never bypass a denied or timed-out borrow by switching to another browser backend. The remote mode in 0.3.0 supports screenshots but not uploads or downloads.

How does BrowserSkill compare with Playwright MCP, Browser Use and Claude in Chrome?

TraitBrowserSkill 0.3.0Playwright MCPBrowser UseClaude in Chrome
Uses your logged-in profileYes, separate Agent WindowFresh browser by defaultOptional, own ChromiumYes, your Chrome
Agent lock-inAny shell-capable agentAny MCP clientPython library, its own agentClaude only
TransportCLI, daemon, extension over localhostMCP serverPython APIExtension to Claude app
Tab borrowing with approvalYes, default onNoNoWorks in your tabs directly
Human hand-off for CAPTCHA and loginbsk request-helpManualManualBuilt in
Remote agent, local browserYes, paired links (0.3.0)Via CDP endpointCloud optionNo
LicenceMITApache 2.0MITProprietary

Playwright MCP is still the right tool for testing your own app in a clean browser, and Anthropic's Claude in Chrome is smoother if you live in Claude and do not mind it acting in your actual tabs. BrowserSkill sits between them: real logins like Claude in Chrome, agent-agnostic like Playwright MCP, and with an approval gate on your existing tabs that neither has. The trade is a third moving part (the daemon) and a project young enough that the extension store build can lag the CLI by a release.

What are the gotchas before you rely on it?

PATH inside the agent. The most common "it doesn't work" is an agent whose shell was started before the install. The README says it plainly: a running agent may keep its old PATH even after a new terminal sees bsk. Restart the agent, or call the binary by absolute path.

RelatedWeKnora Setup: Self-Host Tencent's Open Source RAG Platform

Doctor passing is not the same as the skill loading. bsk doctor reports N/A when no skill is installed and still passes. Confirm browser-skill appears in the harness's own skill list before blaming the extension.

Version skew. CLI, daemon and extension share a version number from 0.2.0 onward, but the store review can lag the GitHub release. New features such as full-page screenshots and request-help need matching builds; bsk status shows protocol differences, and a version error on one feature does not break the others.

Unattended runs changed in 0.3.0. Scripts that relied on --unattended or --no-confirm to skip the borrow prompt now wait for approval anyway. The only way to run headless-style is to switch the two Automation settings off in the extension popup, which applies to every session in that browser profile. Decide deliberately.

Daemon idle exit. With no browser connected and no session open, the daemon quits after 10 minutes. That is fine for local use because commands auto-start it, but in a sandbox with BSK_AUTO_START=0 you will get a "daemon missing" error until you restart it from the host, as our first bsk status did before we started it.

What it will not capture. Full-page screenshots skip internal browser pages, the Web Store, nested scroll panels and virtualized lists. Page-opened popups do not become controllable automatically. And the security note is worth taking literally: the agent is operating with your real cookies, so treat every task the way you would treat handing your unlocked laptop to a colleague.

What to watch · 2026
  • Firefox. The runtime table lists it as planned. Until it ships, this is a Chromium-only story.
  • Store cadence. Chrome Web Store and Edge Add-ons approvals set the pace for every new protocol feature; watch whether Tencent starts shipping a downloadable unpacked build alongside releases.
  • Remote mode hardening. Pairing links and device revocation are new in 0.3.0. The docs already recommend native TLS or a TLS reverse proxy; the audit log is opt-in and stays on the daemon host.

Our take

The interesting decision here is not technical, it is social: BrowserSkill assumes you want to keep using your browser while the agent uses it too, and builds every rule around that. The Agent Window, the borrow-with-approval flow, the return-on-stop guarantee and the hand-off for CAPTCHAs are all answers to "how do I let an agent into my logged-in browser without regretting it." The install is honest and short, the diagnostics tell you exactly which of the three pieces is missing, and the agent-agnostic CLI means you can switch from Cursor to Claude Code to Codex without redoing anything. The soft spots are the ones you would expect from a three-month-old project: store lag, a Windows path that is still collecting fixes, and a remote mode that is brand new. If you already trust an agent with your terminal, this is the least scary way we have seen to trust it with your browser as well.

Primary sources

Original analysis by GenZTech. Tool documentation: Tencent/BrowserSkill on GitHub.