Web Access via Browser CDP
eze-is/web-access
Routes every web task, from searching to logged-in browsing, through a tiered choice of search, fetch, curl or a real Chrome or Edge session driven over CDP.
Drives your real, logged-in Chrome browser from the command line to read pages, fill forms, fetch authenticated URLs and run ready-made site commands.
SKILL.md written in Chinese; this summary is our English description.
$ npx skills add epiral/bb-browser --skill bb-browser -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install epiral/bb-browser bb-browser --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/epiral/bb-browser.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/bb-browser .claude/skills/bb-browser && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "bb-browser" agent skill from https://github.com/epiral/bb-browser/tree/main/skills/bb-browser into .claude/skills/bb-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-browser", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/epiral/bb-browser/tree/main/skills/bb-browserType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add epiral/bb-browser --skill bb-browser -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install epiral/bb-browser bb-browser --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/epiral/bb-browser.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/bb-browser .agents/skills/bb-browser && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bb-browser" agent skill from https://github.com/epiral/bb-browser/tree/main/skills/bb-browser into .agents/skills/bb-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-browser", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add epiral/bb-browser --skill bb-browser -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install epiral/bb-browser bb-browser --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/epiral/bb-browser.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/bb-browser .cursor/skills/bb-browser && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "bb-browser" agent skill from https://github.com/epiral/bb-browser/tree/main/skills/bb-browser into .cursor/skills/bb-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-browser", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/epiral/bb-browser.git --path skills/bb-browser--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add epiral/bb-browser --skill bb-browser -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install epiral/bb-browser bb-browser --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/epiral/bb-browser.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/bb-browser .gemini/skills/bb-browser && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "bb-browser" agent skill from https://github.com/epiral/bb-browser/tree/main/skills/bb-browser into .gemini/skills/bb-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-browser", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install epiral/bb-browser bb-browserInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add epiral/bb-browser --skill bb-browser -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/epiral/bb-browser.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/bb-browser .github/skills/bb-browser && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "bb-browser" agent skill from https://github.com/epiral/bb-browser/tree/main/skills/bb-browser into .github/skills/bb-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-browser", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add epiral/bb-browser --skill bb-browser -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install epiral/bb-browser bb-browser --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/epiral/bb-browser.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/bb-browser .opencode/skills/bb-browser && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "bb-browser" agent skill from https://github.com/epiral/bb-browser/tree/main/skills/bb-browser into .opencode/skills/bb-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bb-browser", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
bb-browserDrives your real, logged-in Chrome browser from the command line to read pages, fill forms, fetch authenticated URLs and run ready-made site commands.
The tool runs in your own browser and reuses accounts you are already signed in to, so it can read public pages, search results and news as well as internal systems, post-login pages and account data. It can also act for you: filling forms, clicking buttons, extracting data, saving screenshots and doing batch operations. The core loop is to `open` a page, take an interactive `snapshot -i` that returns element references, act on those references, snapshot again after the page changes and `close` any tab the agent opened.
A site system turns websites into command-line APIs through adapters that cover more than 36 platforms, with commands to list and search adapters, tab handling and login-error detection built in, and a guide for writing custom adapters. A `fetch` command runs requests inside the browser context so cookies and login state are carried along, and the description also mentions network interception and mocking and operation recording. Reference files cover the site system, adapter development, fetch and network, and snapshot refs.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 7975dc7. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(bb-browser:*)From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and json).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
site-a.comsite-b.comsite-c.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Browser Automation with bb-browser loads about 2.2k tokens when it runs, and up to ~9.1k if it reads all its reference files. Until then it costs about 38 tokens; SKILL.md has 181 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from epiral/bb-browser at commit 7975dc7, republished under its MIT licence (© epiral). 181 words, ~2,169 tokens.
.claude/skills/bb-browser/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.通过浏览器 + 用户登录态,可以获取:
还可以代替用户执行浏览器操作:表单填写、按钮点击、数据提取、截图保存、批量操作。
运行在用户真实浏览器中,复用已登录的账号,不触发反爬检测。
bb-browser open <url> # 打开页面(新 tab)
bb-browser snapshot -i # 获取可交互元素
bb-browser click @5 # 点击元素
bb-browser fill @3 "text" # 填写输入框
bb-browser close # 完成后关闭 tabsite 系统是 bb-browser 的核心特性,通过 adapter 将网站功能 CLI 化,覆盖 36+ 平台。
# 常用命令
bb-browser site list # 列出所有 adapter
bb-browser site search <query> # 搜索 adapter
bb-browser site <name> [args...] # 运行 adapter
bb-browser site update # 更新社区 adapter 库
# 使用示例
bb-browser site twitter/search "Claude Code" # 搜索推文
bb-browser site zhihu/hot # 知乎热榜
bb-browser site github/repo owner/repo # 仓库信息
bb-browser site youtube/transcript <video_id> # 获取字幕
bb-browser site reddit/thread <url> # 帖子详情
bb-browser site eastmoney/stock "茅台" # 股票查询
bb-browser site weibo/hot # 微博热搜
bb-browser site arxiv/search "transformer" # 论文搜索adapter 自动处理 tab 管理(查找匹配域名的 tab 或新建),自动检测登录错误并提示。
详细用法和 36 平台完整列表:参见 references/site-system.md 创建自定义 adapter:参见 references/adapter-development.md
在浏览器上下文中执行 fetch,自动携带 Cookie 和登录态。
bb-browser fetch <url> # GET 请求
bb-browser fetch <url> --method POST --body '{"k":"v"}' # POST 请求
bb-browser fetch <url> --headers '{"Auth":"Bearer xxx"}' # 自定义请求头
bb-browser fetch <url> --output data.json # 保存到文件
bb-browser fetch /api/me.json # 相对路径(用当前 tab 的 origin)自动域名路由:绝对路径自动查找匹配 tab 或新建;相对路径使用当前 tab。
详细用法:参见 references/fetch-and-network.md
操作完成后必须关闭自己打开的 tab。
# 单 tab 场景
bb-browser open https://example.com # 打开新 tab
bb-browser snapshot -i
bb-browser click @5
bb-browser close # 完成后关闭
# 多 tab 场景
bb-browser open https://site-a.com # tabId: 123
bb-browser open https://site-b.com # tabId: 456
# ... 操作 ...
bb-browser tab close # 关闭当前 tab
bb-browser tab close # 关闭剩余 tab
# 指定 tab 操作
bb-browser open https://example.com --tab current # 在当前 tab 打开(不新建)
bb-browser open https://example.com --tab 123 # 在指定 tabId 打开open 打开页面snapshot -i 查看可操作元素(返回 @ref)@ref 执行操作(click, fill, etc.)snapshot -iclose 关闭 tabbb-browser open <url> # 打开 URL(新 tab)
bb-browser open <url> --tab current # 在当前 tab 打开
bb-browser back # 后退
bb-browser forward # 前进
bb-browser refresh # 刷新
bb-browser close # 关闭当前 tabbb-browser snapshot # 完整页面结构
bb-browser snapshot -i # 只显示可交互元素(推荐)
bb-browser snapshot -c # 移除空结构节点
bb-browser snapshot -d 3 # 限制树深度为 3 层
bb-browser snapshot -s ".main" # 限定 CSS 选择器范围
bb-browser snapshot --json # JSON 格式输出
# 选项可组合:bb-browser snapshot -i -c -d 5bb-browser click @5 # 点击
bb-browser hover @5 # 悬停
bb-browser fill @3 "text" # 清空并填写
bb-browser type @3 "text" # 追加输入(不清空)
bb-browser check @7 # 勾选复选框
bb-browser uncheck @7 # 取消勾选
bb-browser select @4 "option" # 下拉选择
bb-browser press Enter # 按键
bb-browser press Control+a # 组合键
bb-browser scroll down # 向下滚动(默认 300px)
bb-browser scroll up 500 # 向上滚动 500pxbb-browser get text @5 # 获取元素文本
bb-browser get url # 获取当前 URL
bb-browser get title # 获取页面标题bb-browser tab # 列出所有 tab
bb-browser tab new [url] # 新建 tab
bb-browser tab 2 # 切换到第 2 个 tab(按 index)
bb-browser tab select --id 123 # 切换到指定 tabId 的 tab
bb-browser tab close # 关闭当前 tab
bb-browser tab close 3 # 关闭第 3 个 tab(按 index)
bb-browser tab close --id 123 # 关闭指定 tabId 的 tabbb-browser screenshot # 截图(自动保存)
bb-browser screenshot path.png # 截图到指定路径bb-browser wait 2000 # 等待 2 秒
bb-browser wait @5 # 等待元素出现bb-browser eval "document.title" # 执行 JS
bb-browser eval "window.scrollTo(0, 1000)" # 滚动到指定位置bb-browser frame "#iframe-id" # 切换到 iframe
bb-browser frame main # 返回主 framebb-browser dialog accept # 确认对话框
bb-browser dialog dismiss # 取消对话框
bb-browser dialog accept "text" # 确认并输入(prompt)bb-browser network requests # 查看网络请求
bb-browser network requests "api" --with-body # 过滤 + 完整请求/响应体
bb-browser network route "*analytics*" --abort # 拦截并阻止请求
bb-browser network route "*/api/user" --body '{}' # 拦截并 mock 响应
bb-browser network unroute # 移除所有拦截规则
bb-browser network clear # 清空请求记录
bb-browser console # 查看控制台消息
bb-browser console --clear # 清空控制台
bb-browser errors # 查看 JS 错误
bb-browser errors --clear # 清空错误记录
bb-browser trace start # 开始录制用户操作
bb-browser trace stop # 停止录制,输出事件列表
bb-browser trace status # 查看录制状态详细的 network 高级用法:参见 references/fetch-and-network.md
--json # 以 JSON 格式输出(所有命令通用)
--tab <tabId> # 指定操作的标签页 ID(几乎所有命令通用)
--mcp # 启动 MCP server(用于 Claude Code / Cursor 等 AI 工具)snapshot 返回的 @ref 是元素的临时标识:
@1 [button] "提交"
@2 [input type="text"] placeholder="请输入姓名"
@3 [a] "查看详情"注意:
@1, @2, @3...详细说明:参见 references/snapshot-refs.md
# 并发打开多个页面(各自独立 tab)
bb-browser open https://site-a.com &
bb-browser open https://site-b.com &
bb-browser open https://site-c.com &
wait
# 每个返回独立的 tabId,互不干扰根据目的选择不同的方法:
当需要提取文章、正文等长文本时,用 eval 直接获取:
# 微信公众号文章
bb-browser eval "document.querySelector('#js_content').innerText"
# 知乎回答
bb-browser eval "document.querySelector('.RichContent-inner').innerText"
# 通用:获取页面主体文本
bb-browser eval "document.body.innerText.substring(0, 5000)"
# 获取所有链接
bb-browser eval "[...document.querySelectorAll('a')].map(a => a.href).join('\n')"有些网站 DOM 嵌套很深,snapshot 输出冗长,eval 直接提取文本更高效。
当需要点击、填写、选择时,用 snapshot -i 获取可交互元素:
bb-browser snapshot -i
# @1 [button] "登录"
# @2 [input] placeholder="用户名"
# @3 [input type="password"]
bb-browser fill @2 "username"
bb-browser fill @3 "password"
bb-browser click @1-i 只显示可交互元素,过滤掉大量无关内容。
bb-browser 提供 MCP server,可与 Claude Code / Cursor 等 AI 工具集成:
# 启动 MCP server
bb-browser --mcp配置示例(Claude Code / Cursor):
{
"mcpServers": {
"bb-browser": {
"command": "npx",
"args": ["-y", "bb-browser", "--mcp"]
}
}
}bb-browser open https://example.com/form
bb-browser snapshot -i
bb-browser fill @1 "张三"
bb-browser fill @2 "zhangsan@example.com"
bb-browser click @3
bb-browser wait 2000
bb-browser closebb-browser open https://example.com/dashboard
bb-browser snapshot -i
bb-browser get text @5
bb-browser screenshot report.png
bb-browser closefor url in "url1" "url2" "url3"; do
bb-browser open "$url"
bb-browser snapshot -i --json
bb-browser close
done| 文档 | 说明 |
|---|---|
| references/site-system.md | Site 系统完整指南:35 平台列表、命令用法、自动 tab 管理 |
| references/adapter-development.md | Adapter 开发指南:API 逆向、三层复杂度、元数据格式 |
| references/fetch-and-network.md | Fetch 与 Network 高级功能:带登录态请求、请求拦截与 mock |
| references/snapshot-refs.md | Ref 生命周期、最佳实践、常见问题 |
© epiral, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in skills/bb-browser of epiral/bb-browser.
Open the folder on GitHubat commit 7975dc7
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in epiral/bb-browser, which our catalogue first saw on October 7, 2026.
Browser Automation with bb-browser next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Browser Automation with bb-browser this skillepiral/bb-browser | 6.2k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Web Access via Browser CDPeze-is/web-access | 9.1k | 4 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Skyvern Browser AutomationSkyvern-AI/skyvern | 23k | 1 repos | ~2.9k | Automated safety check: Pass | AGPL-3.0 | |
| Browser Harnessbrowser-use/browser-harness | 18k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Skyvern Browser AutomationSkyvern-AI/skyvern | 23k | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 | |
| Reddit JSON Fetcherykdojo/claude-code-tips | 10k | — | ~1.4k | Automated safety check: Pass | Custom licence |
eze-is/web-access
Routes every web task, from searching to logged-in browsing, through a tiered choice of search, fetch, curl or a real Chrome or Edge session driven over CDP.
Skyvern-AI/skyvern
Picks the right Skyvern CLI command for a web task, from quick yes/no checks to reusable multi-page workflows, instead of falling back to plain page fetching.
browser-use/browser-harness
Controls a real Chrome browser over CDP for clicking, typing, navigation, logged-in sessions and JavaScript-heavy or bot-protected pages.
Skyvern-AI/skyvern
Automates websites with Skyvern's AI browser agent to fill forms, extract data, download files, log in and run multi-step workflows through SDKs, REST, MCP or a CLI.
ykdojo/claude-code-tips
Fetches Reddit posts, threads and search results as JSON through a browser session, using a DuckDuckGo redirect to get past Reddit's automated-access block.
davidondrej/skills
Direct browser control via CDP. An agent skill from davidondrej/skills.
epiral/bb-browser
Runs structured data commands against sites such as Twitter, Reddit, GitHub, YouTube and Zhihu through OpenClaw's browser, reusing your existing login state.
Drives your real, logged-in Chrome browser from the command line to read pages, fill forms, fetch authenticated URLs and run ready-made site commands. The tool runs in your own browser and reuses accounts you are already signed in to, so it can read public pages, search results and news as well as internal systems, post-login pages and account data. It can also act for you: filling forms, clicking buttons, extracting data, saving screenshots and doing batch operations.
Browser Automation with bb-browser fits situations like: reading a page that only works behind your login; filling and submitting a web form through your own browser; calling a website's own endpoints with your session cookies; running a ready-made site command instead of scraping by hand.
Run `npx skills add epiral/bb-browser --skill bb-browser -a claude-code`. Or copy the skill folder (skills/bb-browser in epiral/bb-browser) into .claude/skills/bb-browser in your project. Claude Code loads it when a task matches its description.
Run `npx skills add epiral/bb-browser --skill bb-browser -a codex`. Or copy the skill folder (skills/bb-browser in epiral/bb-browser) into .agents/skills/bb-browser in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add epiral/bb-browser --skill bb-browser -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bb-browser, .gemini/skills/bb-browser, .github/skills/bb-browser and .opencode/skills/bb-browser in your project.
SKILL.md names no scripts, command-line tools or credentials: Browser Automation with bb-browser is instructions for the agent only. Our summary lists: The `bb-browser` CLI; A Chrome browser where you are already logged in. Its frontmatter pre-approves these tools: Bash(bb-browser:*).
SKILL.md names 3 domains. In commands or code: site-a.com, site-b.com and site-c.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Browser Automation with bb-browser is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Browser Automation with bb-browser: Web Access via Browser CDP (eze-is/web-access, 9.1k stars), Skyvern Browser Automation (Skyvern-AI/skyvern, 23k stars), Browser Harness (browser-use/browser-harness, 18k stars) and Skyvern Browser Automation (Skyvern-AI/skyvern, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
epiral (a GitHub organization) maintains it in epiral/bb-browser, which has 6,237 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on May 29, 2026.
Source: epiral/bb-browser on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.