One of the biggest hurdles in modern AI-assisted software development is giving agents reliable access to the web.
Whether you are using Claude Code, Cursor, Codex, or custom autonomous agents, software engineering rarely happens in a vacuum. Developers constantly need agents to verify UI flows on localhost, check staging dashboards, inspect documentation, or automate repetitive web tasks.
Until now, developers were forced to choose between two deeply flawed approaches:
- Headless Browser Automation (Puppeteer / Playwright): The agent launches an isolated, blank browser instance. Because it has no cookies or session storage, it immediately slams into authentication gates, OAuth screens, and bot-detection CAPTCHAs.
- Desktop OS GUI Automation: Tools that control your native mouse and keyboard. The moment the agent starts clicking, your screen flickers, window focus is stolen, and your mouse gets pulled away while you're actively typing.
To solve this dilemma, Tencent open-sourced BrowserSkill (bsk)—a lightweight, local bridge connecting shell-capable AI agents directly to your already logged-in browser without interrupting your active workflow.
Here is a complete technical look at how BrowserSkill works, its architecture, and how to configure it for your coding agents.
The Core Problem: The Browser Auth Barrier
When an engineer builds an internal feature or tests a pull request, they are usually already authenticated into GitHub, Jira, AWS Console, or their local development environment.
Spinning up a headless Playwright instance means:
- Creating mock credentials for every service.
- Bypassing 2FA/MFA manually.
- Dealing with flaky bot-detection heuristics that block headless Chromium.
BrowserSkill bypasses this entirely by recognizing a fundamental truth: the developer's browser is already authenticated. By securely bridging the agent to the developer's existing browser profile, the agent inherits all session cookies, local storage, and active logins out of the box.
How BrowserSkill Works: Architecture Breakdown
BrowserSkill avoids screen hijacking through a clean three-tier architecture:
┌─────────────────────────────────────────────────────────────┐
│ AI Coding Agent (Claude Code / Cursor / etc.) │
└──────────────────────────────┬──────────────────────────────┘
│ (Shell commands)
▼
┌─────────────────────────────────────────────────────────────┐
│ `bsk` CLI & Daemon (Rust) │
└──────────────────────────────┬──────────────────────────────┘
│ (Local IPC / WebSocket)
▼
┌─────────────────────────────────────────────────────────────┐
│ BrowserSkill Extension │
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────────┴──────────────┐
▼ ▼
[ User's Main Window ] [ Agent Window (Dedicated) ]
(Your daily browsing; (Agent executes tasks here;
never stolen or frozen) background, non-intrusive)
-
The
bskCLI & Background Daemon (Rust): A fast, native binary (bsk) that handles session orchestration, IPC messaging, and JSON-RPC communication. Any agent that can run a terminal command can interact with it. - The Chromium Extension: A companion extension for Chrome and Microsoft Edge that listens to the local daemon and controls browser tabs via native extension APIs.
- Dedicated Agent Window: Rather than hijacking your active tab, BrowserSkill spawns tasks in a separate Agent Window. The agent navigates, clicks, fills inputs, and scrolls in its own viewport while your primary browser window remains untouched.
Key Capabilities
1. Reuse Real Login State
Agents can interact directly with authenticated web apps, staging dashboards, and internal services without needing separate test accounts or API access tokens.
2. Built-in Human-in-the-Loop (request-help)
Autonomous agents often get stuck on edge cases: CAPTCHAs, SMS verifications, or high-risk confirmation dialogues.
Instead of failing silently or crashing the session, BrowserSkill allows the agent to trigger a help request:
bsk request-help --session <id> --reason "Please solve the CAPTCHA to continue"
The browser displays a subtle prompt asking the user to complete the action. Once finished, the agent detects completion and resumes execution seamlessly.
3. Tab Borrowing Protocol
If an agent needs to inspect or debug a tab you already have open (such as your active localhost Vite dev server), it cannot simply hijack it. BrowserSkill implements a Tab Borrowing flow:
- The agent explicitly requests to borrow the specific tab.
- The user can approve or set auto-borrow rules in the extension popup.
- The agent extracts DOM snapshots or executes necessary checks, and then returns the tab back to you.
4. Full-Page High-Res Screenshots
Agents can capture crystal-clear visual context for multimodal debugging:
bsk screenshot --session <id> --full-page --out debug-page.png
Getting Started
Automated Setup with Your Coding Agent
If you use Claude Code, Cursor, Codex, or any shell-capable agent, you can set up BrowserSkill with a single instruction:
Set up browser-skill on this machine by following https://raw.githubusercontent.com/Tencent/BrowserSkill/main/AGENT_INSTALL.md
Your agent will automatically download the bsk CLI binary for your OS (macOS, Linux, Windows), configure the daemon, and guide you to install the Chromium extension.
Manual Verification
Once installed, verify connectivity:
# Check version and daemon health
bsk status
bsk doctor
# Start a session to open a page and inspect it
bsk session start --url https://example.com
In slash-command capable agents (like Claude Code or DeepSeek Harness), you can invoke it directly:
/browser-skill open localhost:3000 and verify if the signup button renders properly
DeepSeek Harness (DSH) Integration
BrowserSkill also ships a first-class plugin for DeepSeek Harness on npm (@wxg-prc-cpg/browser-skill-dsh-plugin). It injects native browser_* tool definitions directly into the model's toolset and displays live browser execution previews directly inside the web UI.
Summary
BrowserSkill bridges one of the most glaring gaps in modern AI engineering workflows. By pairing real browser authentication with an isolated execution window and human-in-the-loop safety switches, it turns the browser into a collaborative canvas rather than a point of friction.
- GitHub Repository: https://github.com/Tencent/BrowserSkill
- License: MIT

Top comments (0)