# BrowserSkill

> Source: https://aiwiki.ai/wiki/browserskill
> Updated: 2026-09-16
> Fact-checked: 2026-09-16
> Categories: AI Agents, Chinese AI, Developer Tools, Open Source AI
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) - attribute to "AI Wiki (aiwiki.ai)"
> Cite as: AI Wiki. "BrowserSkill." aiwiki.ai, 16 Sept 2026. https://aiwiki.ai/wiki/browserskill
> From AI Wiki (https://aiwiki.ai), the free encyclopedia of artificial intelligence. Reuse freely with attribution.

**BrowserSkill** is an open-source browser-automation bridge from [Tencent](https://aiwiki.ai/wiki/tencent) that lets shell-capable AI coding agents drive the user's own, already logged-in Chrome or Microsoft Edge browser. It ships as a Rust command-line tool and daemon (`bsk`), a Manifest V3 browser extension, and a short "skill" file that teaches an agent harness how to use the CLI. The repository at github.com/Tencent/BrowserSkill is [MIT](https://aiwiki.ai/wiki/mit_license)-licensed and was created on 22 June 2026, with the first tagged releases (CLI 0.1.5 and extension 0.1.2) published the same day.[1][2][3] Its stated design goal is to let an agent work inside a separate, visible "Agent Window" of the user's browser profile, reusing existing login state, while leaving the user's other tabs alone unless the agent explicitly borrows one.[1]

The project's README lists [Cursor](https://aiwiki.ai/wiki/cursor), [Claude Code](https://aiwiki.ai/wiki/claude_code), [Codex](https://aiwiki.ai/wiki/codex_cli), [OpenClaw](https://aiwiki.ai/wiki/openclaw), CodeBuddy, WorkBuddy, [Pi](https://aiwiki.ai/wiki/pi_agent), [Hermes Agent](https://aiwiki.ai/wiki/hermes_agent) and [DeepSeek Harness](https://aiwiki.ai/wiki/deepseek_harness) as supported harnesses, and says any agent that can run a shell command can use it because the integration surface is a CLI rather than a [Model Context Protocol](https://aiwiki.ai/wiki/model_context_protocol) server.[1][4] CodeBuddy and WorkBuddy are Tencent's own coding agent and personal agent workspace.[16] On 16 September 2026 the Tencent AI account on X posted that the company had "open sourced BrowserSkill", the same day as the 0.3.0 changelog entry and extension release; the repository had been public since late June 2026.[4][3][5]

## Origins and release history

The GitHub repository was created on 22 June 2026 under the Tencent organization, and the first release tags, `cli-v0.1.5` and `ext-v0.1.2`, were published a few hours later.[2][3] Public activity began immediately: issue #1, a WeChat community invitation from a project contributor, was opened on 24 June, and a Chinese developer review dated 1 July 2026 already described the project as Tencent's June 2026 open-source release at version 0.1.5.[6][7] The project's CHANGELOG nonetheless labels the 7 July pair, CLI 0.1.7 and extension 0.1.3, the "initial public release pair", so the June tags are best read as the first public builds and the July pair as the first ones the maintainers considered a proper release.[3]

Until September the CLI and the extension were versioned independently. From 0.2.0 (2 September 2026) all three components, the CLI, the extension and the DeepSeek Harness plugin, share one semantic version.[3]

| Date (2026) | CLI | Extension | Notable changes |
|---|---|---|---|
| 22 Jun | 0.1.5 | 0.1.2 | First tagged releases[3] |
| 30 Jun | 0.1.6 | | Minor CLI fixes[3] |
| 7 Jul | 0.1.7 | 0.1.3 | "Initial public release pair"; `bsk console` command; fixes so a borrowed tab is never returned into another session's Agent Window and the borrow gate does not fail open[3][8] |
| 22 Jul | 0.1.8 | 0.1.4 | More interaction actions; read-only `bsk network` command; borrow confirmation now fails closed; Windows named-pipe fix; CLI auto-update and `bsk record` recording per the release notes[3][9] |
| 29 Jul | 0.1.9 | 0.1.5 | Auto-update mechanism listed in the CHANGELOG; trace v3 protocol and recorder; MV3 keepalive fix[3][9] |
| 8 Aug | 0.1.10 | 0.1.6 | VOM observation recording and settled-state detection[3] |
| 26-29 Aug | 0.1.11 | 0.1.7 | DeepSeek Harness plugin sidebar integration (plugin 0.1.2, published 29 Aug); recorder iframe and out-of-process iframe support[3][11] |
| 2-3 Sep | 0.2.0 | 0.2.0 | Unified version scheme; file upload and download including drag-and-drop; VOM semantic graph; Edge Add-ons publishing in CI; browser evaluation harness[3] |
| 9 Sep | 0.2.1 | 0.2.1 | Windows self-update and named-pipe fixes; tab-ownership and session-cleanup fixes[3] |
| 16 Sep | (0.3.0 CLI tag not yet published at the time of writing) | 0.3.0 | Remote browser connections; opt-in operation audit; full-page screenshots; scroll-to, wheel, focus and blur primitives; host-managed daemon mode for sandboxed agents; Korean localization; automation switches moved to the extension settings[3][2] |

The extension's Chrome Web Store listing showed version 0.3.0, last updated 16 September 2026, and a user count of 20,000 on that date.[10] The DeepSeek Harness plugin is published on npm as `@wxg-prc-cpg/browser-skill-dsh-plugin`; its first npm version, 0.1.0, was published on 17 August 2026, four days after the DeepSeek Harness repository itself was created.[11][12]

## Architecture

BrowserSkill deliberately keeps the agent one step removed from the browser. The agent runs `bsk` subcommands in a shell; the CLI talks to a local daemon over JSON Lines on a Unix domain socket (a named pipe on Windows); the daemon holds a WebSocket connection to the extension bound to loopback on port 52800 by default; and the extension executes the request inside an Agent Window using the Chrome DevTools Protocol and WebExtension APIs.[1][13] The daemon validates a `chrome-extension://` origin on the WebSocket handshake, serializes tool calls within a session through a per-session queue, and runs sessions in parallel across different Agent Windows.[13]

| Component | Location in repo | Role |
|---|---|---|
| `bsk` CLI and daemon | `crates/bsk-cli` (Rust) | Parses verb-noun commands such as `bsk session start` and `bsk click`; the same binary runs as the daemon; `--json` gives structured output[13] |
| Wire protocol | `crates/bsk-protocol` (Rust) | Shared JSON-RPC frame types and JSON Schemas, mirrored in the extension's TypeScript[13] |
| Extension | `apps/extension` (WXT, MV3, React) | Transport layer, tool dispatcher with 21 tool handlers, session manager, CDP-backed browser driver, popup and in-window control overlay[13] |
| Shared UI and i18n | `packages/ui`, `packages/i18n` | Extension UI support with English, Simplified Chinese and Korean strings[1] |
| DeepSeek Harness plugin | `packages/dsh-plugin-browserskill` | Exposes native `browser_*` tools to `dsh` and runs `bsk` on the agent's behalf[1][14] |
| Skill | `skill/SKILL.md` | Harness instructions installed by `bsk install-skill`[1][15] |
| Evaluation corpus | `evals/browser` | Deterministic local pages and agent-neutral capability tests[17] |

The repository is a combined Cargo and pnpm workspace; the Rust workspace targets edition 2024 with a minimum Rust version of 1.85, and the extension declares a minimum Chrome version of 125 because flat debugger sessions are needed to reach out-of-process iframes.[18][19] The extension requests the `debugger`, `tabs`, `scripting`, `downloads`, `webNavigation` and `windows` permissions, among others, and host permission for all URLs.[19] Release binaries are built for macOS (Apple Silicon and Intel), Linux (x64 and ARM64 musl builds) and Windows x64.[2] The README states that Chrome and Edge are supported, that other Chromium browsers are expected to work if they accept unpacked extensions, and that Firefox support is planned.[1]

### Sessions, Agent Windows and tab borrowing

A session is an opaque short identifier tied to one dedicated Agent Window, a session-scoped element reference store and a borrow table.[13] Write actions are sandboxed to tabs inside the Agent Window unless a tab has been explicitly borrowed from the user's own windows; when the agent finishes, `bsk session stop` returns borrowed tabs, and an idle timeout of five minutes acts only as a safety net.[13] The skill instructs agents to list user tabs with `bsk tab list --scope user`, borrow one by ID, return it as soon as the relevant step ends, and never keep a user tab across unrelated work.[15]

Page reading is built around `bsk observe`, which returns text, controls and `@eN` element references that the agent then passes to `click`, `fill`, `select`, `press`, `hover`, `scroll-to`, `focus` and `blur`; `snapshot` gives a static accessibility tree, `get-html` returns markup, and `screenshot` captures the viewport, a single element or (from 0.3.0) a full page.[15] The maintainers call the observation layer "VOM"; its recording, semantic graph and hover-probing features arrived across the 0.1.10 to 0.2.0 releases.[3]

### Human-in-the-loop and the automation switches

When a task reaches a login, CAPTCHA, one-time code, payment confirmation or consent step, the agent can run `bsk request-help` with a prompt; the extension surfaces the request to the user, who completes the step, after which the agent re-observes and continues.[15] Version 0.3.0 changed how this and tab borrowing are governed. Two switches in the extension popup, "Confirm before borrowing tabs" and "Allow requests for human help", are both on by default, are saved per browser profile, and apply to existing as well as new sessions. The older CLI-side ways of bypassing them (`--unattended`, `tab borrow --no-confirm` and the `BSK_REQUEST_HELP=off` environment variable) are still accepted for compatibility but no longer override the browser settings.[1][3] This is the behaviour Tencent's announcement described as a switch that "lives in your browser settings, not in a flag, so it can't be talked around".[4]

The README is explicit about what turning help off does and does not do: `request-help` then returns `disabled` without confirming any human action, and the skill tells the agent to re-observe and make reasonable efforts with its existing login state and tools rather than to loop or switch backends; phone-only QR scans, face verification, unavailable SMS codes and image-only CAPTCHAs for text-only models "may remain blocked".[1][15] The skill also instructs the agent never to extract credentials, cookies, tokens or other secrets, though this is an instruction to the model rather than a technical restriction; one early reviewer noted that the extension's `debugger` permission and all-URL host access are technically capable of reading page content and cookies.[15][7]

## Installation and agent integration

Tencent's recommended path is to hand the agent a single instruction pointing at `AGENT_INSTALL.md` in the repository, which walks the agent through installing the CLI and skill and prompts the user to load the extension.[1] The manual path is an `install.sh` (macOS and Linux, installing to `~/.local/bin`) or `install.ps1` (Windows) script, the Chrome Web Store or Edge Add-ons listing for the extension, and `bsk install-skill`, which detects installed harnesses and writes `browser-skill/SKILL.md` into each one's skills directory; `bsk doctor` checks the connection.[1] Managed skills are updated automatically on daemon startup, session start or `doctor` only while their contents still match the last installed version, so local edits pause updates.[1]

For DeepSeek Harness the flow differs: instead of a skill file, users add the npm plugin to a `dsh` profile (`dsh plugin --profile web add @wxg-prc-cpg/browser-skill-dsh-plugin`), which injects native `browser_*` tools and a live view of browser sessions in the dsh web UI.[1][14] Because the plugin bundles the skill, `bsk install-skill` is not needed there.[14]

Version 0.3.0 added two deployment modes beyond the default local setup. A "host-managed daemon" mode, using `BSK_HOME` and `BSK_AUTO_START=0`, is for agent sandboxes that kill background processes after every command.[3][1] A remote mode lets the agent, CLI and daemon run on a server while the extension on the user's computer initiates an outbound authenticated WebSocket connection; `bsk` includes device pairing with one-use links, credential renewal and revocation, native TLS or a reverse proxy, and configurable limits such as a 90-day default device lifetime and 64 concurrent browsers. File upload and download are not supported over remote connections.[3][20]

## Operation audit and data handling

The 0.3.0 release added an opt-in operation audit, off by default, that stores a per-task JSON Lines record on the daemon host (the user's machine locally, or the server in remote mode). The maintainers state that they do not receive these records.[3][21] Each record keeps only metadata: task identifiers, timestamps, tool type, tab number, site origin (scheme, host and port only), cached element names, operation status, error codes and small counts. Screenshots, page text, full DOM, input values, scripts, full selectors, raw error messages and uploaded file contents are not stored; input values are marked as hidden, and completed tasks are kept for 30 days.[21] The documentation frames the feature as personal review rather than tamper-proof logging.[21]

In local mode the daemon binds only to loopback, website cookies stay in the browser profile, and `evaluate` is restricted to Agent Window tabs.[13] The architecture document also describes a file-transfer boundary in which the CLI is the only component that reads an upload source or writes a download destination, the daemon issues opaque session-scoped transfer IDs and enforces size limits, and the extension never sees the agent-facing paths.[13]

## Evaluation corpus

The `evals/browser` directory is a deterministic local test environment intended to be agent-neutral: prompts describe observable page goals so the same cases can run through different agents and adapters. As of September 2026 it held six stable "core" cases and one seeded "matrix" case, with an operation inventory of 28 browser operations; the README stresses that the operation count measures capability coverage, not the number of cases. Results distinguish page-observable outcomes, response markers and adapter evidence, and missing adapter evidence is reported as `unverified` rather than treated as a pass.[17]

## Community and governance

The repository lists 16 contributors as of 16 September 2026, with the top four accounts responsible for most commits.[22] One early feature came from an outside contributor: the read-only `bsk network` command was opened as a feature request on 29 June by the author of a Chinese-language review of the tool and merged on 18 July; the companion `bsk console` command had been merged by a core maintainer on 7 July.[9][23][7] Pull-request titles in release notes are frequently bilingual, and issue #1 invites users to a WeChat community group.[2][6]

The npm plugin is published under the scope `@wxg-prc-cpg`, whose maintainer account uses a `tencent.com` address; the same scope also publishes a DeepSeek Harness plugin for WeKnora, Tencent's open-source knowledge platform.[11][24][29] Tencent has not, in the repository or its announcement, named the internal team responsible for the project, and the `wxg` prefix should not be read as an official attribution.[1][4]

GitHub reported between 2,518 and 2,534 stars and about 185 forks during 16 September 2026, the day of the announcement tweet, which had drawn about 89,000 views by that afternoon (UTC).[2][4] Search-engine coverage includes an AIbase item dated 11 August 2026 that described the tool as recently open-sourced and highlighted its compatibility with Claude Code, Codex and Tencent's WorkBuddy.[25]

## Comparison with other browser-agent tools

BrowserSkill sits in the group of tools that reuse a person's real browser rather than launching a fresh, logged-out instance. [Playwright MCP](https://aiwiki.ai/wiki/playwright_mcp), by contrast, is a Model Context Protocol server that drives browsers through the Playwright library; its own README notes that coding agents "increasingly favor CLI-based workflows exposed as SKILLs over MCP" because they avoid loading large tool schemas into context, and points to a separate Playwright CLI for that use.[26] [Browser Use](https://aiwiki.ai/wiki/browser_use) is an open-source browser agent offered as a Python library and a CLI, alongside a hosted cloud browser.[27] Anthropic's Claude in Chrome is an extension tied to paid Claude plans, with a Claude Code integration that lets the coding agent read console errors and DOM state, while BrowserSkill's README and announcement stress that any agent able to run a shell command can use it, with no lock-in to a particular model or harness.[1][4] The broader category is covered at [AI browser agent](https://aiwiki.ai/wiki/ai_browser_agent); Tencent's approach belongs to the "bridge to the user's existing browser" pattern, with its distinguishing choices being the CLI-first interface, the separate Agent Window, the explicit borrow-and-return model for user tabs, and the browser-side authority over confirmation and help switches.[1][3]

Limitations the maintainers and reviewers have pointed out include the requirement that the user's browser be running with the extension connected, the visible "started debugging this browser" banner that Chrome shows when CDP is attached, the reliance on prompt-level rather than technical restrictions against reading secrets, and, until 0.3.0, the absence of a remote deployment option.[7][3]

## References

[1] Tencent, "BrowserSkill README", GitHub, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/README.md
[2] GitHub REST API, repository and releases metadata for Tencent/BrowserSkill (created 2026-06-22T07:24:40Z; 2,518 stars and 184 forks, later 2,534 stars, on 16 September 2026), retrieved 16 September 2026. https://api.github.com/repos/Tencent/BrowserSkill and https://api.github.com/repos/Tencent/BrowserSkill/releases
[3] Tencent, "CHANGELOG.md", BrowserSkill repository, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/CHANGELOG.md
[4] Tencent AI (@TencentAI_News), "We open sourced BrowserSkill, a bridge between your agent and your actual browser", X, 16 September 2026 08:41 UTC. https://x.com/TencentAI_News/status/2100143086429217278
[5] GitHub, release "BrowserSkill Extension 0.3.0" (ext-v0.3.0), published 16 September 2026. https://github.com/Tencent/BrowserSkill/releases/tag/ext-v0.3.0
[6] GitHub issue #1, "「BrowserSkill」官方社群｜Official Community", opened 24 June 2026. https://github.com/Tencent/BrowserSkill/issues/1
[7] 53AI, "实测腾讯开源的 BrowserSkill：让 AI 直接用你登录好的浏览器" (hands-on review), 1 July 2026. https://www.53ai.com/news/OpenSourceLLM/2026070117942.html
[8] GitHub, release "bsk CLI 0.1.7" (cli-v0.1.7), published 7 July 2026. https://github.com/Tencent/BrowserSkill/releases/tag/cli-v0.1.7
[9] GitHub, release "bsk CLI 0.1.8" (cli-v0.1.8), published 22 July 2026. https://github.com/Tencent/BrowserSkill/releases/tag/cli-v0.1.8
[10] Chrome Web Store, "BrowserSkill" listing (version 0.3.0, updated 16 September 2026, 20,000 users), retrieved 16 September 2026. https://chromewebstore.google.com/detail/hhcmgoofomhgciiibhipgmgkgnoenaoi
[11] npm registry metadata for @wxg-prc-cpg/browser-skill-dsh-plugin (versions 0.1.0 to 0.2.1; first published 17 August 2026), retrieved 16 September 2026. https://registry.npmjs.org/@wxg-prc-cpg/browser-skill-dsh-plugin
[12] GitHub REST API, repository metadata for deepseek-ai/deepseek-harness (created 13 August 2026), retrieved 16 September 2026. https://api.github.com/repos/deepseek-ai/deepseek-harness
[13] Tencent, "browser-skill architecture", docs/architecture.md, BrowserSkill repository, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/docs/architecture.md
[14] Tencent, "BrowserSkill for DeepSeek Harness", packages/dsh-plugin-browserskill/README.md, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/packages/dsh-plugin-browserskill/README.md
[15] Tencent, "browser-skill" skill file, skill/SKILL.md, BrowserSkill repository, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/skill/SKILL.md
[16] Tencent, "Tencent Cloud Debuts Productivity Agent Suite, Creating a New Gateway to AI for Users and Enterprises", tencent.com. https://www.tencent.com/en-us/articles/2202350.html
[17] Tencent, "Browser capability evaluation corpus", evals/browser/README.md, BrowserSkill repository, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/evals/browser/README.md
[18] Tencent, workspace Cargo.toml, BrowserSkill repository, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/Cargo.toml
[19] Tencent, apps/extension/wxt.config.ts (extension manifest), BrowserSkill repository, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/apps/extension/wxt.config.ts
[20] Tencent, "Remote browser connections", docs/remote-extension-connection.md, BrowserSkill repository, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/docs/remote-extension-connection.md
[21] Tencent, "操作审计" (Operation audit), docs/operation-audit.md, BrowserSkill repository, retrieved 16 September 2026. https://github.com/Tencent/BrowserSkill/blob/main/docs/operation-audit.md
[22] GitHub REST API, contributors list for Tencent/BrowserSkill, retrieved 16 September 2026. https://api.github.com/repos/Tencent/BrowserSkill/contributors
[23] GitHub issue #2, "Feature request: read console logs & network activity", opened 29 June 2026, and pull request #8, "feat: add bsk network read-only command", merged 18 July 2026. https://github.com/Tencent/BrowserSkill/issues/2 and https://github.com/Tencent/BrowserSkill/pull/8
[24] npm registry search for the @wxg-prc-cpg scope (browser-skill-dsh-plugin and dsh-weknora), retrieved 16 September 2026. https://www.npmjs.com/search?q=scope%3Awxg-prc-cpg
[25] AIbase, "Tencent Opensources New Browser Automation Tool BrowserSkill: Giving AI Agents Independent Hands to Work", 11 August 2026. https://news.aibase.com/news/30233
[26] Microsoft, "Playwright MCP" README, GitHub, retrieved 16 September 2026. https://github.com/microsoft/playwright-mcp
[27] Browser Use, repository README, GitHub. https://github.com/browser-use/browser-use
[28] Anthropic, "Piloting Claude in Chrome", claude.com blog, 25 August 2025 (updated 24 November and 18 December 2025). https://claude.com/blog/claude-for-chrome
[29] GitHub REST API, repository metadata for Tencent/WeKnora, retrieved 16 September 2026. https://api.github.com/repos/Tencent/WeKnora

