
Chrome 扩展和 CLI 让代理控制你的浏览器。在有状态沙盒中运行 Playwright 片段。可作为 CLI 或 MCP 提供
概览
让你的代理通过CLI或MCP控制你自己的Chrome浏览器。你的登录信息、扩展、Cookie——都已经存在了。 其他浏览器MCP会生成一个全新的Chrome——没有登录,没有扩展,机器人检测会立即标记,内存翻倍。Playwriter会连接到相应的。一个Chrome扩展,完整的Playwright API,所有你已经登录的平台。 用Playwriter构建驱动浏览器的代理?为整个团队提供一个家——一个AI代理即时通讯平台,代理们是聊天的真实成员。在云端运行,让他们交接任务并协作,并与团队共享工作中的代理。零设置,网页端和移动端皆可。 2. 点击标签页上的扩展图标→连接时会变绿 3. 安装CLI并开始自动化浏览器: 4. 安装该技能,让你的经纪人知道如何使用Playwriter: 始终使用单引号表示 -e,以防止 bash 在 JS 代码中解释 $、反向引号和 \。字符串在 JS 内部使用双引号。 每个会话都有 。
概述(AI 翻译)
让你的代理通过CLI或MCP控制你自己的Chrome浏览器。你的登录信息、扩展、Cookie——都已经存在了。
其他浏览器MCP会生成一个全新的Chrome——没有登录,没有扩展,机器人检测器会立即标记,内存翻倍。Playwriter会连接到你运行中的浏览器。一个Chrome扩展,完整的Playwright API,所有你已经登录的软件。
安装
-
从 Chrome 网店安装扩展
-
点击标签页上的扩展图标→连接时会变绿
-
安装CLI并开始自动化浏览器:
-
安装该技能,让你的经纪人知道如何使用Playwriter:
快速启动
提示: 始终使用单引号表示
-e,以防止 bash 在你的 JS 代码中解释$、回溯和\。JS 内部字符串使用双引号。
CLI 使用
每个会话都有隔离状态。浏览器标签页在会话间共享。
没有默认的 page。创建你自己的标签页并存储在 state。要使用用户已打开的标签页,请通过 URL 查找:
标签组
本地扩展会话默认使用名为 playwriter 的 Chrome 标签页组。远程控制会话将打开的标签页放入 remote。
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
Other browser MCPs spawn a fresh Chrome — no logins, no extensions, instantly flagged by bot detectors, double the memory. Playwriter connects to your running browser instead. One Chrome extension, full Playwright API, everything you’re already logged into.
Installation
-
Install Extension from Chrome Web Store
-
Click extension icon on a tab → turns green when connected
-
Install the CLI and start automating the browser:
npm i -g playwriter playwriter -s 1 -e 'state.page = await context.newPage(); await state.page.goto("https://example.com")' -
Install the skill so your agent knows how to use Playwriter:
npx -y skills add https://playwriter.dev -g -y
Quick Start
playwriter browser start # starts Chrome for Testing/Chromium with bundled Playwriter extension
playwriter session new # creates stateful sandbox, outputs session id (e.g. 1)
playwriter -s 1 -e 'state.page = await context.newPage(); await state.page.goto("https://example.com")'
playwriter -s 1 -e 'console.log(await snapshot({ page: state.page }))'
playwriter -s 1 -e 'await state.page.locator("aria-ref=e5").click()'
Tip: Always use single quotes for
-eto prevent bash from interpreting$, backticks, and\in your JS code. Use double quotes for strings inside the JS.
CLI Usage
Each session has isolated state. Browser tabs are shared across sessions.
# Browser management
playwriter browser start # auto-finds Chrome for Testing or Chromium
playwriter browser start /path/to/browser-binary
# Session management
playwriter session new # creates stateful sandbox, outputs id (e.g. 1)
playwriter session new --tab-group agent1 --tab-group-color blue
playwriter session update 1 --tab-group research
playwriter session list # show sessions + state keys + group
playwriter session reset # fix connection issues
# Execute (always use -s)
playwriter -s 1 -e 'state.page = await context.newPage(); await state.page.goto("https://example.com")'
playwriter -s 1 -e 'await state.page.click("button")'
playwriter -s 1 -e 'console.log(await state.page.title())'
There is no default page. Create your own tab and store it in state. To use a tab the user already opened, find it by URL:
playwriter -s 1 -e 'state.page = context.pages().findLast((p) => p.url().includes("github.com"))'
安装
npx -y skills add https://playwriter.dev -g -y