fast-browser-use

中风险
作者:rknoche6 | 审计时间:2026-02-26T09:59:20.936Z | 规则集:0.2.0

快速安装

将技能安装到你的 Agent

clawhub install fast-browser-use

技能介绍

High-performance browser automation for heavy scraping, multi-tab management, and precise DOM extraction. Use this when you need speed, reliability, or advanced state management (cookies/local storag…

--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)
snapshot: Capture the raw HTML snapshot (YAML/Markdown optimized for AI).
screenshot: Capture a visual image of the page.
extract: Get structured data from the DOM.
markdown: Convert the current page content to Markdown.
sitemap: Analyze site structure via robots.txt, sitemaps, and page semantic analysis.

使用场景

1 navigate: Visit a specific URL.
2 wait: Pause execution or wait for specific conditions.
3 switch_tab: Switch focus to a specific tab.
4 close_tab: Close the current or specified tab.
5 press_key: Send specific keyboard events.

文档(原文)

来源:README.md
以下为作者原文(通常为英文)。安装请以页面顶部“快速安装”为准。

Any contribution is very much welcome!
Skill published in clawhub https://www.clawhub.ai/rknoche6/fast-browser-use

browser-use

A lightweight Rust library for browser automation via Chrome DevTools Protocol (CDP).

✨ Highlights

  • Zero Node.js dependency - Pure Rust implementation directly controlling browsers via CDP
  • Lightweight & Fast - No heavy runtime, minimal overhead
  • MCP Integration - Built-in Model Context Protocol server for AI-driven automation
  • Simple API - Easy-to-use tools for common browser operations

Installation

cargo add browser-use

Styling

cargo +nightly fmt

Quick Start

use browser_use::browser::BrowserSession;

// Launch browser and navigate
let session = BrowserSession::launch(Default::default())?;
session.navigate("https://example.com", None)?;

// Extract DOM with indexed interactive elements
let dom = session.extract_dom()?;

MCP Server

Run the built-in MCP server for AI-driven automation:

# Headless mode
cargo run --bin mcp-server

# Visible browser
cargo run --bin mcp-server -- --headed

Features

  • Navigate, click, input, screenshot, extract content
  • DOM extraction with indexed interactive elements
  • CSS selector or numeric index-based element targeting
  • Thread-safe browser session management

Requirements

  • Rust 1.70+
  • Chrome or Chromium installed

安全审计

中风险

摘要

High-performance browser automation for heavy scraping, multi-tab management, and precise DOM extraction. Use this when you need speed, reliability, or advanced state management (cookies/local storage) beyond standard web fetching.

风险画像 危险 隐私 范围 声誉 质量

ToxicSkills 分析

黑名单
未命中
提示词注入
未检测到

Toxic 标签

obfuscation

当前静态检测未发现 Toxic 信号。

关键风险 0 项

暂无 LLM 风险要点(LLM 未启用或无缓存)。

确定性发现(证据)

规则 严重性 文件 片段
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/dom/extract_dom.js 行 4
(function () {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/convert_to_markdown.js 行 5
(function () {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/convert_to_markdown.js 行 22
var loadReadability = new Function(
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/convert_to_markdown.js 行 58
.forEach(function (el) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/hover.js 行 2
(function () {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 29
function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 41
let t = function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 44
var t = Array.from(e.attributes || [], function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 49
this.log = function () {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 59
.call(arguments, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 66
} else this.log = function () {};
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 227
e.map(function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 266
(this._forEachNode(a, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 291
this._forEachNode(a, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 298
((t = a.replace(this.REGEXPS.srcsetUrl, function (e, t, i, a) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 351
this._someNode(r, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 381
this._forEachNode(this._getAllNodesWithTag(e, ["br"]), function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 434
(this._forEachNode(e.children, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 435
this._cleanMatchedNodes(e, function (e, t) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 449
this._removeNodes(this._getAllNodesWithTag(e, ["p"]), function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 456
this._forEachNode(this._getAllNodesWithTag(e, ["br"]), function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 460
this._forEachNode(this._getAllNodesWithTag(e, ["table"]), function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 673
(this._forEachNode(a, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 684
this._forEachNode(e, function (e, t) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 833
(this._attempts.sort(function (e, t) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 844
this._someNode(G, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 857
.replace(/&(quot|amp|apos|lt|gt);/g, function (e, t) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 860
.replace(/&#(?:x([0-9a-f]+)|([0-9]+));/gi, function (e, t, i) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 872
this._forEachNode(e, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 929
.filter(function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 932
.map(function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 959
(this._forEachNode(i, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1035
(this._forEachNode(e, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1050
this._forEachNode(e, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1087
!this._someNode(e.childNodes, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1106
return this._someNode(e.childNodes, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1149
this._forEachNode(e.getElementsByTagName("a"), function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1174
this._removeNodes(this._getAllNodesWithTag(e, [t]), function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1225
: ["col", "colgroup", "tfoot", "thead", "th"].some(function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1242
function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1244
var t = this.REGEXPS.b64DataUrl.exec(e.src);
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1295
this._removeNodes(this._getAllNodesWithTag(e, [T]), function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/Readability.min.js 行 1412
this._removeNodes(e, function (e) {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/scroll.js 行 1
(async function () {
DYNAMIC_EVAL skills/rknoche6/fast-browser-use/src/tools/select.js 行 2
(function () {
QUALITY_README_PRESENT README 行 无
README detected
QUALITY_LOCKFILE_PRESENT lockfile 行 无
Lockfile detected
QUALITY_TESTS_PRESENT tests 行 无
Tests directory detected

评分标准

每个技能从 5 个维度评分,加权总分决定星级。

代码毒性 0/100 (权重 30%)
隐私风险 100/100 (权重 25%)
权限范围 90/100 (权重 20%)
作者声誉 75/100 (权重 15%)
代码质量 100/100 (权重 10%)

星级说明

5★ 安全 — 总分 ≥ 80
4★ 良好 — 总分 70–79
3★ 注意 — 总分 60–69
2★ 有风险 — 总分 40–59
1★ 危险 — 总分 < 40

为何是这个评分?

以下维度评分低于 60 分,拉低了整体评级:

  • 代码毒性: 0/100

更多技能

VettedSkillsHub

从 ClawHub(ClawdBot / OpenClaw 官方市场)精选下载量前 100 的技能,进行独立 5 维度安全审计。证据透明可查,评分可复现,一键安装。

关于

本站评分为 best-effort 静态分析,分数可复现、证据可追溯。在敏感环境中仍应进行人工审计与隔离部署。

© 2026 VettedSkillsHub。ClawdBot 和 OpenClaw 为社区项目。