一键导入
skill-builder
Build reusable browser automation skills by exploring websites with bsession tools, then saving the workflow as a YAML skill for cheap replay.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Build reusable browser automation skills by exploring websites with bsession tools, then saving the workflow as a YAML skill for cheap replay.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Build *headed* browser automation skills (visible Chromium with VNC). Use only when the target needs a real browser fingerprint or human handoff — Cloudflare Turnstile, CAPTCHA, JS-heavy SPA login flows, persistent browser cookies. For unprotected sites with public HTML or APIs, prefer headless tools (playwright headless, requests + bs4, curl). Triggers on "Cloudflare", "Turnstile", "CAPTCHA-aware", "USCIS-style monitoring", "site behind bot protection", "建个浏览器监控", "需要登录的站点".
Build *headed* browser automation skills (visible Chromium with VNC). Use only when the target needs a real browser fingerprint or human handoff — Cloudflare Turnstile, CAPTCHA, JS-heavy SPA login flows, persistent browser cookies. For unprotected sites with public HTML or APIs, prefer headless tools (playwright headless, requests + bs4, curl). Triggers on "Cloudflare", "Turnstile", "CAPTCHA-aware", "USCIS-style monitoring", "site behind bot protection", "建个浏览器监控", "需要登录的站点".
Check USCIS case status via bsession (handles Cloudflare). Triggers on "USCIS", "case status", "EAD status", "查案件", "签证状态".
Browser automation — setup the bsession environment, fetch info from a website (one-shot), create scripted automations (one-shot or recurring), or debug existing sessions. Works from any repo.
Browser automation — setup the bsession environment, fetch info from a website (one-shot), create scripted automations (one-shot or recurring), or debug existing sessions. Works from any repo. Use when the user wants to set up bsession, scrape/extract data from a URL, build a browser automation script, or troubleshoot a running session.
| name | skill-builder |
| description | Build reusable browser automation skills by exploring websites with bsession tools, then saving the workflow as a YAML skill for cheap replay. |
You build browser automation skills. You explore a website using bsession CLI tools, figure out the workflow, then save it as a reusable YAML skill that runs without AI.
bsession CLI)Run these inside the bsession container (docker exec agent-browser ...) or via the host wrapper ./bsession:
bsession browse <url> [-w 8] # open URL, print accessibility tree
bsession snapshot # print current page snapshot
bsession click <ref> # click element, print new snapshot
bsession fill <ref> <value> # clear + fill input
bsession type <ref> <text> # type text character by character
bsession select <ref> <value> # select dropdown option
bsession screenshot [-o file.png] # save screenshot
bsession check-cf # detect + bypass Cloudflare
All commands accept -p <port> for the CDP port (default: 9222).
The snapshot is an accessibility tree. Each line shows an element:
- heading "Page Title" [ref=e1]
- textbox "Email" [ref=e2]
- button "Submit" [ref=e3]
- combobox "Country" [ref=e4]
Use ref values (e.g. e2) with click, fill, select commands.
bsession browse <url> — see what's on the first pagebsession fill <ref> <value>, bsession click <ref>As you explore, note each action that succeeded:
Create a skill YAML file at workspace/skills/<name>.yaml:
name: my_skill
description: "What this skill does"
version: "1.0.0"
tags: [monitor]
params:
- name: MY_PARAM
description: "What the user provides"
required: true
steps:
- action: navigate
url: "https://example.com"
wait: 5
- action: bypass
type: cloudflare
- action: find
name: my_input
patterns:
- textbox
- "text.*email"
- action: fill
ref: "{{my_input}}"
value: "{{MY_PARAM}}"
- action: find
name: submit_btn
patterns:
- "button.*[Ss]ubmit"
- action: click
ref: "{{submit_btn}}"
wait: 5
- action: extract
name: result_text
pattern: 'heading "([^"]*)"'
max_lines: 1
result:
title: "{{result_text}}"
monitor: # optional: run as recurring check
interval: "3600"
change_field: title
notify:
webhook: "{{WEBHOOK_URL}}"
Create workspace/conf/<name>.conf:
[session]
skill = my_skill
[env]
MY_PARAM = value_here
CHECK_INTERVAL = 3600
WEBHOOK_URL =
bsession skill run my_skill # test once
bsession skill eval my_skill # check success rate
If the skill breaks, re-explore the site to update patterns.
| Action | Params | Use for |
|---|---|---|
navigate | url, wait | Open a page |
bypass | type (cloudflare) | Handle bot protection |
find | name, patterns[], optional | Locate element by label/role patterns |
fill | ref, value | Fill text input |
clear | ref | Clear input |
click | ref, wait | Click button/link |
type | ref, value | Type character by character |
select | ref, value, skip_if_empty | Pick dropdown option |
extract | name, pattern, exclude, max_lines | Pull text from page via regex |
wait | seconds | Pause |
wait_for | pattern, timeout, interval | Poll until content appears |
transform | name, source, operation | Clean up extracted text |
snapshot | name | Store a snapshot for later steps |
check | snapshot_pattern, error | Assert something is on the page |
find with label/role patterns like textbox, button.*Submit, etc.{{var_name}} to reference params and previous step outputs.bypass step after navigating to handle Cloudflare.heading "text", text: "content" format. Write regex patterns against this format.monitor section to run the skill repeatedly and notify on changes.After building a skill, export it for other systems:
bsession skill export my_skill -f claude # Claude Code skill (.md)
bsession skill export my_skill -f openclaw # OpenClaw tool (JSON)