fast-browser-use
Medium · 64 Score: 64/100
by rknoche6 | Audited: 2026-02-05T09:18:25.242Z | Ruleset: 0.1.0
About This Skill
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.
Use Cases
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.
Security Audit
Medium · 64
Summary
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.
Risk Profile
Key Risks 0 items
No LLM risk bullets (LLM disabled or not cached).
Deterministic Findings (Evidence)
| Rule | Severity | File | Snippet |
|---|---|---|---|
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/dom/extract_dom.js Line 4 | (function () { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/convert_to_markdown.js Line 5 | (function () { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/convert_to_markdown.js Line 22 | var loadReadability = new Function( |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/convert_to_markdown.js Line 58 | .forEach(function (el) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/hover.js Line 2 | (function () { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 29 | function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 41 | let t = function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 44 | var t = Array.from(e.attributes || [], function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 49 | this.log = function () { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 59 | .call(arguments, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 66 | } else this.log = function () {}; |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 227 | e.map(function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 266 | (this._forEachNode(a, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 291 | this._forEachNode(a, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 298 | ((t = a.replace(this.REGEXPS.srcsetUrl, function (e, t, i, a) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 351 | this._someNode(r, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 381 | this._forEachNode(this._getAllNodesWithTag(e, ["br"]), function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 434 | (this._forEachNode(e.children, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 435 | this._cleanMatchedNodes(e, function (e, t) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 449 | this._removeNodes(this._getAllNodesWithTag(e, ["p"]), function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 456 | this._forEachNode(this._getAllNodesWithTag(e, ["br"]), function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 460 | this._forEachNode(this._getAllNodesWithTag(e, ["table"]), function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 673 | (this._forEachNode(a, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 684 | this._forEachNode(e, function (e, t) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 833 | (this._attempts.sort(function (e, t) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 844 | this._someNode(G, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 857 | .replace(/&(quot|amp|apos|lt|gt);/g, function (e, t) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 860 | .replace(/&#(?:x([0-9a-f]+)|([0-9]+));/gi, function (e, t, i) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 872 | this._forEachNode(e, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 929 | .filter(function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 932 | .map(function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 959 | (this._forEachNode(i, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1035 | (this._forEachNode(e, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1050 | this._forEachNode(e, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1087 | !this._someNode(e.childNodes, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1106 | return this._someNode(e.childNodes, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1149 | this._forEachNode(e.getElementsByTagName("a"), function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1174 | this._removeNodes(this._getAllNodesWithTag(e, [t]), function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1225 | : ["col", "colgroup", "tfoot", "thead", "th"].some(function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1242 | function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1244 | var t = this.REGEXPS.b64DataUrl.exec(e.src); |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1295 | this._removeNodes(this._getAllNodesWithTag(e, [T]), function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/Readability.min.js Line 1412 | this._removeNodes(e, function (e) { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/scroll.js Line 1 | (async function () { |
| DYNAMIC_EVAL | high | skills/rknoche6/fast-browser-use/src/tools/select.js Line 2 | (function () { |
| QUALITY_README_PRESENT | low | README Line n/a | README detected |
| QUALITY_LOCKFILE_PRESENT | low | lockfile Line n/a | Lockfile detected |
| QUALITY_TESTS_PRESENT | low | tests Line n/a | Tests directory detected |