skills/fast-browser-use/SKILL.md
--- name: fast-browser-use displayName: Fastest Browser Use emoji: "⚡" summary: Rust-powered browser automation that rips through DOMs 10x faster than Puppeteer. aliases: - fbu - use fbu homepage: https://github.com/rknoche6/fast-browser-use primaryEnv: bash os: - darwin - linux requires: bins: - chrome install: - kind: brew formula: rknoche6/tap/fast-browser-use - kind: cargo package: fast-browser-use config: requiredEnv: - CHROME_PATH example: | # Standard
npx skillsauth add aaaaqwq/claude-code-skills fast-browser-useInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A Rust-based browser automation engine that provides a lightweight binary driving Chrome directly via CDP. It is optimized for token-efficient DOM extraction, robust session management, and speed.
navigate is a one-shot command — it opens the page, completes, then immediately kills Chrome. Do NOT use it if the user wants to see/interact with the browser.login keeps Chrome open and waits for user input (Enter) before saving session and closing. Use this when the user needs to interact manually.所有涉及浏览器的 cron 任务完成后,必须自动关闭 Chrome 进程!
# fbu 的 navigate 命令会自动关闭 Chrome
# 但如果使用其他命令或异常中断,必须手动清理:
# 任务结束后强制清理残留进程
pkill -f chrome
pkill -f chromium
# 或在脚本中使用 timeout 确保清理
timeout --kill-after=5 300 fbu navigate "https://example.com" && pkill -f chrome
原因: 避免内存泄漏和资源占用,防止 Gateway CPU 100% 过载
--headless false shows the Chrome window on the user's desktop (requires X11/Wayland display). Use this when the user wants to watch operations.--user-data-dir reuses an existing Chrome profile (login state, cookies, extensions). However, it may conflict if Chrome is already running with that profile. Prefer --load-session for saved sessions instead.所有 fbu 命令必须用 timeout 包裹,防止 Chrome 进程残留:
# 标准用法:60秒超时,超时后先 SIGTERM,5秒后 SIGKILL
timeout --kill-after=5 60 fast-browser-use snapshot --url "https://example.com"
# 长任务(如 harvest):120秒超时
timeout --kill-after=5 120 fast-browser-use harvest --url "https://example.com" --selector "a"
超时后清理残留 Chrome 进程(在 cron/自动化任务中建议加):
# 命令结束后确保无残留
timeout --kill-after=5 60 fast-browser-use snapshot --url "..." || true
# 清理可能残留的 Chrome 进程(仅清理 fbu 启动的)
pkill -f "chrome.*--remote-debugging" 2>/dev/null || true
推荐超时时间:
snapshot: 30-60snavigate: 30-60sscreenshot: 30-60sharvest: 60-120slogin: 300s(需要人工交互)--headless false): 翻倍When you need to access a platform that requires the user's login (e.g. Polymarket, GitHub, Twitter), follow this complete workflow:
--user-data-dir vs --load-session--load-session only restores cookies. Many modern platforms (OAuth, wallet-based, SPA) store auth state in localStorage/IndexedDB, so cookies alone are insufficient.--user-data-dir persists the entire Chrome profile (cookies + localStorage + IndexedDB + service workers). This is the recommended approach for most platforms.~/.openclaw/chrome-profiles/polymarket/) to avoid lock conflicts with the user's running Chrome.Step 1: Create dedicated profile directory
mkdir -p ~/.openclaw/chrome-profiles/<platform-name>
Step 2: Open visible browser with login command
export CHROME_PATH=/usr/bin/google-chrome # adjust per system
fast-browser-use login \
--url "https://platform.com" \
--headless false \
--user-data-dir ~/.openclaw/chrome-profiles/<platform-name> \
--save-session ./<platform-name>-session.json
--headless false so the user can see and interact with Chrome--user-data-dir for full state persistence--save-session as a backup (cookies-only fallback)Step 3: Ask user to log in
Step 4: User confirms → Save session
Step 5: Verify login state
--user-data-dir and run snapshot:fast-browser-use snapshot \
--url "https://platform.com" \
--user-data-dir ~/.openclaw/chrome-profiles/<platform-name>
Step 6: Confirm to user
# All future commands for this platform just add --user-data-dir
fast-browser-use navigate \
--url "https://platform.com/dashboard" \
--user-data-dir ~/.openclaw/chrome-profiles/<platform-name>
fast-browser-use snapshot \
--url "https://platform.com/portfolio" \
--user-data-dir ~/.openclaw/chrome-profiles/<platform-name>
Simulate mouse jitter and random delays to scrape protected sites.
fast-browser-use navigate --url "https://protected-site.com" \
--human-emulation \
--wait-for-selector "#content"
Capture the entire DOM state and computed styles for perfect reconstruction later.
fast-browser-use snapshot --include-styles --output state.json
Log in manually once, then steal the session for headless automation.
Step 1: Open non-headless for manual login
fast-browser-use login --url "https://github.com/login" --save-session ./auth.json
Step 2: Reuse session later
fast-browser-use navigate --url "https://github.com/dashboard" --load-session ./auth.json
Extract fresh data from infinite-scroll pages — perfect for harvesting the latest posts, news, or social feeds.
# Harvest headlines from Hacker News (scrolls 3x, waits 800ms between)
fast-browser-use harvest \
--url "https://news.ycombinator.com" \
--selector ".titleline a" \
--scrolls 3 \
--delay 800 \
--output headlines.json
Real output (59 unique items in ~6 seconds):
[
"Genode OS is a tool kit for building highly secure special-purpose OS",
"Mobile carriers can get your GPS location",
"Students using \"humanizer\" programs to beat accusations of cheating with AI",
"Finland to end \"uncontrolled human experiment\" with ban on youth social media",
...
]
Works on any infinite scroll page: Reddit, Twitter, LinkedIn feeds, search results, etc.
Capture any page as PNG:
fast-browser-use screenshot \
--url "https://example.com" \
--output page.png \
--full-page # Optional: capture entire scrollable page
Discover how a site is organized by parsing sitemaps and analyzing page structure.
# Basic sitemap discovery (checks robots.txt + common sitemap URLs)
fast-browser-use sitemap --url "https://example.com"
# Full analysis with page structure (headings, nav, sections)
fast-browser-use sitemap \
--url "https://example.com" \
--analyze-structure \
--max-pages 10 \
--max-sitemaps 5 \
--output site-structure.json
Options:
--analyze-structure: Also extract page structure (headings, nav, sections, meta)--max-pages N: Limit structure analysis to N pages (default: 5)--max-sitemaps N: Limit sitemap parsing to N sitemaps (default: 10, useful for large sites)Example output:
{
"base_url": "https://example.com",
"robots_txt": "User-agent: *\nSitemap: https://example.com/sitemap.xml",
"sitemaps": ["https://example.com/sitemap.xml"],
"pages": [
"https://example.com/about",
"https://example.com/products",
"https://example.com/contact"
],
"page_structures": [
{
"url": "https://example.com",
"title": "Example - Home",
"headings": [
{"level": 1, "text": "Welcome to Example"},
{"level": 2, "text": "Our Services"}
],
"nav_links": [
{"text": "About", "href": "/about"},
{"text": "Products", "href": "/products"}
],
"sections": [
{"tag": "main", "id": "content", "role": "main"},
{"tag": "footer", "id": "footer", "role": null}
],
"main_content": {"tag": "main", "id": "content", "word_count": 450},
"meta": {
"description": "Example company homepage",
"canonical": "https://example.com/"
}
}
]
}
Use this to understand site architecture before scraping, map navigation flows, or audit SEO structure.
| Feature | Fast Browser Use (Rust) | Puppeteer (Node) | Selenium (Java) | | :--- | :--- | :--- | :--- | | Startup Time | < 50ms | ~800ms | ~2500ms | | Memory Footprint | 15 MB | 100 MB+ | 200 MB+ | | DOM Extract | Zero-Copy | JSON Serialize | Slow Bridge |
This skill is specialized for complex web interactions that require maintaining state (like being logged in), handling dynamic JavaScript content, or managing multiple pages simultaneously. It offers higher performance and control compared to standard fetch-based tools.
testing
通用自媒体文章自动发布工具。支持百家号、搜狐号、知乎、微信公众号、小红书、抖音号六个平台的自动化发布流程。使用Playwright自动化实现平台导航和发布,支持通过storageState管理Cookie实现账号切换。
development
# SKILL.md - Model Configuration Status (mcstatus) ## 触发条件 - `/mcstatus` 命令 - 用户询问模型配备、模型配置、model status、模型列表等 ## 功能 实时生成 Agent + Cron 的模型配置报告,展示当前所有 agent 的主模型/fallback链和所有 cron 任务的模型分配。 ## 执行步骤 ### Step 1: 收集 Agent 模型配置 读取各 agent 的 models.json 获取主模型和 fallback 链: ```bash for agent in main ops code quant data research content market finance pm law product sales batch; do config=$(cat ~/.openclaw/agents/$agent/agent/models.json 2>/dev/null) if [ -n "$config" ]; then echo "=== $agent
tools
MCP 服务器智能管理助手。自动检测 MCP 可用性、智能开关、功能问答,提供人性化的 MCP 管理体验。
tools
从GitHub搜索并自动安装配置MCP(Model Context Protocol)服务器工具到Claude配置文件。当用户需要安装MCP工具时触发此技能。工作流程:搜索GitHub上的MCP项目 -> 提取npx配置 -> 添加到~/.claude.json -> 处理API密钥(如有)。