Token导航 LogoToken导航

Agent Skill · 研究检索

reflex-browser(反射浏览器)

reflex-browser 用于处理浏览器自动化、网页检查和页面信息提取,适合在 Codex、Claude、Cursor、Gemini CLI 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

reflex-browser 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证信息还不明确,第三方扫描有未通过项,按安装量在研究检索类的 73,675 个 Skill 里排第 54,843。

总安装 494周安装 21GitHub Stars 公开资料未说明下载 173核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:reflex-browser(反射浏览器)
来源仓库:https://github.com/fruffel/reflex-browser-skill
仓库路径:skills/reflex-browser
安装命令:
npx skills add https://github.com/fruffel/reflex-browser-skill --skill reflex-browser
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/fruffel/reflex-browser-skill --skill reflex-browser

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

reflex-browser 用于处理浏览器自动化、网页检查和页面信息提取,适合在 Codex、Claude、Cursor、Gemini CLI 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。适用于前端调试、页面内容抓取和交互流程验证,尤其适合动态网页的数据整理与结构分析。

通过 URL 或页面选择器定位目标元素,支持截图、文本提取和表单填写等基础操作。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。可结合来源仓库、安装命令和原始 README 继续核验具体用法。

来源仓库内路径:skills/reflex-browser

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/fruffel/reflex-browser-skill --skill reflex-br…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

reflex-browser 怎么安装?

在终端执行 npx skills add https://github.com/fruffel/reflex-browser-skill --skill reflex-browser。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

reflex-browser 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

reflex-browser 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

reflex-browser 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

reflex-browser 用的人多吗?

公开数据是累计安装 494 次,近一周安装 21 次,下载 173 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

reflex-browser 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
reflex-browser

反射浏览器 · 本页

494—操作浏览器未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Reflex Browser Skill

Purpose

Use this skill when the task involves a website or browser: navigating pages, clicking elements, reading content, filling forms, scraping data, or automating a web flow.

This skill covers interactive browser work via reflex browser... CLI commands. Each command is a single stateless action — run one, inspect the JSON response, then decide the next step.

When the end goal is a reusable Lua or Python browser automation script, still start here first: use reflex browser... to inspect the site, verify the flow, and stabilize selectors before writing script code. Then switch to the reflex-scripting skill for the script itself.

When To Use This Skill

  • User asks to interact with a website (navigate, click, fill, read, scrape)
  • User asks to inspect or explore a page
  • User asks for browser-based data collection
  • User asks whether a page, modal, overlay, or layout looks correct
  • User asks for a browser automation script (start here for discovery, then reflex-scripting for the script)

When NOT To Use This Skill

  • One-off file manipulation (xlsx, csv, json) without a browser → use reflex-scripting
  • REST API calls → use reflex-scripting
  • Data transforms or batch processing without a browser → use reflex-scripting
  • Writing a script after browser discovery is done → use reflex-scripting

Quick Start

  1. Install globally from Gitea npm:

- npm config set @reflexautomation:registry "https://git.bqa-solutions.nl/api/packages/reflex/npm/" --location=user - npm config set "//git.bqa-solutions.nl/api/packages/reflex/npm/:_authToken" "YOUR_DEPLOY_TOKEN" --location=user - npm install -g @reflexautomation/reflex-cli

  1. Start or reuse a session:

- reflex browser start

  1. Default to auto-session mode for normal agent runs:

- do not pass --session on follow-up commands - example: reflex browser open https://example.com

  1. Use explicit --session only for deterministic override:

- example: reflex browser open https://example.com --session <sessionId>

  1. End with reflex browser session-kill in auto-session mode.

- if you used an explicit session id, use reflex browser session-kill --session <sessionId> (or reflex browser session-kill <sessionId>)

Use the CLI itself as the command/protocol source of truth:

  • reflex browser --help
  • reflex browser help --json

Agent Defaults

  • Do not pass --session by habit after start; normal flows should stay in scoped auto-session mode.
  • Start on the target page, not on broad capability audits; do not inventory libraries or call repeated help commands unless a concrete next step needs exact syntax.
  • Prefer summary first and fine-tune it (-i -c, then -s, -C, -d) for selector discovery and recovery before trying eval or html; treat html as last-resort evidence, not normal recovery. Start with count 20; increase only when the page has many repeated items.
  • Use summary --state --screenshot when selector recovery or page review needs visual evidence; keep screenshots opt-in instead of adding them to every pass.
  • Use reflex browser help --json for exact command/response/schema details instead of duplicating those rules here.

Discovery Before Capability Audits (Required)

  1. For normal tasks, start with the target page: start -> open -> summary.
  2. Do not begin with broad audits such as reflex lua libs, repeated help calls, external doc hunts, or speculative output-format work.
  3. Check exact command/library help only when you have a concrete next step that requires it.
  4. Once a browser command succeeds, continue the task instead of re-checking availability.

Agent Availability And Recovery (Required)

  1. Before assuming browser commands are broken, verify the local agent is available.
  2. If a browser command fails with a transport/connect error, use this recovery order:

- reflex agent status - if not running, reflex agent start - if the agent jar is missing, reflex agent download - if Java is missing or incompatible, reflex agent runtime install - retry the original browser command after recovery

  1. Prefer the CLI's own guidance text when it suggests reflex agent start or reflex agent download.
  2. For local development tasks, the AI agent may run reflex agent... commands directly instead of only telling the human what to do.
  3. If the environment is clearly non-local, remote, or permission-sensitive, explain the exact reflex agent... command the human should run.
  4. Do not start multiple background agents on different ports unless the task explicitly requires it.

Recommended recovery flow:

reflex agent status
reflex agent start
reflex agent download
reflex agent runtime install

Command Lifecycle (Required)

  1. Send actions as separate CLI invocations.
  2. Do not chain browser commands with &&, long shell pipelines, or opaque wrappers.
  3. Keep one logical session context for the task (auto-session by default).
  4. Default rule: omit --session on commands unless explicit override is required.
  5. Execute sequentially: run one command, inspect response, then run the next.
  6. On transport failure, recover the local agent first, then rerun the command as a new invocation.
  7. Cleanup with reflex browser session-kill when done unless the user explicitly asks to keep the session open.

Response Handling (Required)

  1. Always capture the full JSON response first, then parse fields from that captured payload.
  2. Do not pipe command output directly into filtering (jq | head) as the only observable output; this hides critical context.
  3. Prefer in-memory capture over temp files; if temp files are needed, use ephemeral files and clean them up.
  4. Treat envelope fields (ok, action, session) as source-of-truth; mirrored duplicates may be compacted out of response.
  5. Treat response.state and response.artifacts as optional add-ons when explicitly requested; existing summary parsers can ignore them.
  6. When screenshots are requested, inspect them as visual evidence alongside response.data.summary.targets[]; do not replace the parser contract with screenshot-only reasoning when actionable selectors are needed.
  7. For exact field names such as summary.targets[], use reflex browser help --json as the contract reference.

Parser-First Summary Contract (Required)

  1. For selector discovery that feeds agent logic, use summary first.
  2. Parse response.data.summary.targets[] as the primary selector feed:

- selector - selectorType - confidence - reason - optional steering: - status - hint - fallback - ref — short-lived element ref (@r1, @r2, …); prefer over selector when present

  1. Treat summary.version + summary.targets[] as the stable parser contract; avoid parsing deep fields from full summary output by default.
  2. Do not parse elements/actions/candidates-style fields from summary output.
  3. Keep extraction flow deterministic:

- summary for candidate selection - targeted action (click/text/attribute/etc.) - re-run summary only after DOM-changing actions when needed

Summary Count And Flags (Required)

The positional count argument controls how many targets (ranked actionable elements) and snapshot lines are returned. It does not control how much of the DOM is scanned — the agent always scans up to 2000 nodes regardless.

  • Default: 20. Hard max: 100.
  • Start with summary 20 -i -c. This is enough for most pages.
  • If you need more coverage, refine with flags first (-s, -C, -d), not by increasing the count.
  • Only increase the count when the page has many similar actionable items (e.g., a product listing with 50+ links) and you need targets for more of them.
  • Do not use high counts like summary 80 as a general "show me everything" — it adds low-confidence targets and more snapshot noise without improving discovery quality.

Summary Refinement Ladder (Required)

When the first summary pass is weak, noisy, or incomplete, stay in summary mode and refine it before escalating:

  1. Start with summary 20 -i -c for normal interactive discovery.
  2. If the results are too broad, add -s "<container>" to scope discovery to the relevant region.
  3. If the page relies on non-semantic clickable UI, add -C.
  4. If the output is still noisy, tune depth (-d <n>) and scope (-s) instead of increasing count or switching tools.
  5. Only increase count beyond 20 when you know the page has many repeated items and you need targets for more of them.
  6. Re-run summary after DOM-changing actions and continue from fresh refs/targets.
  7. Use html only after at least 2 materially different summary passes still fail to expose enough structure for a targeted click/text/attribute/property call.
  8. After consulting html, immediately switch back to targeted commands; do not keep planning from raw HTML dumps.

Visual Evidence And Screenshots (Required)

  1. When the user asks for visual judgment such as "does this look good", "is this aligned", "is something covering it", or "what is visible here", capture screenshot evidence before answering.
  2. Use reflex browser screenshot for pure visual review when no selector discovery is needed.
  3. Use reflex browser summary 20 -i -c --state --screenshot when the task needs both selector recovery and visual confirmation.
  4. Prefer screenshot-assisted summary when the page is visually tricky:

- canvas-like or game-like UIs - overlays, sticky headers, consent/chat widgets, or occlusion problems - duplicated labels where DOM hints alone are ambiguous - non-semantic click targets where visible placement matters

  1. Keep screenshots opt-in. If selectors are already clear from normal summary, do not add screenshot payloads on every pass.
  2. Use the screenshot to confirm which visible element matches a candidate ref/selector or to explain why something is off-screen or obscured; keep summary.targets[] as the action feed.

Overlay And Noise Recovery (Required)

When summary only surfaces cookie/consent/chat widgets or other overlays:

  1. Treat that output as page-state information, not discovery failure.
  2. Dismiss or accept the blocking UI with the returned refs/selectors when safe and necessary.
  3. Re-run summary immediately after the overlay changes the DOM.
  4. Only escalate to html or other last-resort evidence after overlay cleanup plus the normal summary refinement ladder still fails.

Summary Refs (Required)

Each summary call assigns short-lived refs (@r1, @r2, …) to interactive elements:

  • Refs appear in targets[].ref and inline in snapshot lines as [ref=@rN].
  • Pass a ref directly as the selector to any action: click "@r10", fill "@r5" "text", attribute "@r3" href.
  • Prefer refs over CSS/XPath selectors when available — they resolve directly to the live DOM element, bypassing selector fragility entirely.
  • Refs are invalidated after any navigation or DOM-mutating action (click, fill, type, enter, tab, open, back, forward, refresh, tab switches). Re-run summary after such actions to obtain fresh refs.
  • A stale ref returns errorCode: ELEMENT_STALE with a recoveryHint — always re-run summary on that error.
# summary returns: - link "Fiction" [ref=@r10]
reflex browser click "@r10"      # navigate using ref

# after navigation, refs are invalidated — re-run summary
reflex browser summary 20 -i -c
# - link "Soumission" [ref=@r150]
reflex browser attribute "@r150" title   # read without re-discovering selector
reflex browser attribute "@r150" href

Helper script:

  • scripts/capture_json.sh provides rb_capture, rb_jq, and rb_pick_selector for safe full-response handling.
  • source via source skills/reflex-browser/scripts/capture_json.sh (from project root).

Lua Trace Generation

The reflex browser lua command generates a Lua trace of the current browser session:

  1. Only call reflex browser lua after the browser flow is already stable and validated.
  2. Treat the output as a raw trace to refactor, not a finished script.
  3. If response.data.generationGuidance is present, apply it when producing the script.
  4. Keep discovered selectors as-is when guidance says selectors are fixed.
  5. Do not use reflex browser lua to rescue an unstable discovery session; the trace will mirror dead-end navigation.
  6. For the actual script authoring, switch to the reflex-scripting skill.

Session Selection Rules

  1. Default to scoped auto-session mode.
  2. Use start to get-or-create the scoped auto-session.
  3. After start, continue commands without --session in normal flows.
  4. Use explicit --session <id> only when:

- the user asks to pin/reuse a specific session id, or - the task requires switching between multiple concurrent sessions.

  1. Use bare --session (no value) only on start or open when a fresh backend-assigned session id is explicitly required.
  2. Do not pass --session by habit in single-flow tasks.
  3. Pass --profile only when persistent browser state is intentionally needed.
  4. Set --engine selenium|playwright (aliases: sel, play) before bootstrapping when the task specifically needs one engine.

Hard Rules

  1. Bridge supports Selenium and Playwright; use options.engine as the canonical engine field.
  2. Do not send options.browser.
  3. Recompute selectors after DOM changes with summary.

- Use -i for interactive discovery. - Add -C for cursor-interactive components. - Add -c to reduce structural noise. - Add -s <selector> to scope discovery to a container.

  1. Auto-session engine changes are applied by start/open, which recreate the same inferred auto-session id when needed.
  2. Stop on first failed command (ok: false) to avoid cascading selector errors.
  3. Pass relative links directly to open; CLI resolves them against current session URL.
  4. For repeated-item extraction, anchor selectors at the collection parent (for example list/grid item), then index that parent; do not index unrelated descendants.
  5. Treat repeated no such element or timeout on the same intent as a selector-state mismatch, not a transient flake.
  6. When transport fails, recover via reflex agent status / reflex agent start before switching selector strategy.

Wait Strategy (Required)

  1. click, fill, type, and open include waiting behavior; avoid redundant waits.
  2. Use explicit wait for real state transitions:

- after navigation - after back / forward / refresh - after async UI updates

  1. Prefer stable page-level wait targets over fragile positional selectors.
  2. If an action fails once, retry once. If it fails again, run summary again with tighter flags and continue with updated selectors.
  3. After 2 consecutive failures for the same intent, stop the loop and run recovery; never keep incrementing positional selectors blindly.
  4. For wait/visible/enabled/selected, pass per-check timeout as the positional argument (wait "<selector>" 8000); reserve global --cli-timeout for transport/command envelope timeout.

Anti-Patterns (Forbidden)

  1. Running commands without checking each JSON response.
  2. Using eval as default extraction when text, summary, attribute, or property can answer the task.
  3. Running long blind command chains without validating page state.
  4. Continuing extraction loops after a failed open.
  5. Using positional selectors on the wrong structural level (for example article:nth-of-type(n) when siblings are actually li elements).
  6. Repeating the same failing selector pattern across increasing indexes without re-discovery.
  7. Jumping to full html dumps after the first weak summary instead of fine-tuning summary scope/flags first.
  8. Starting extra sessions during the same task without explicit need and cleanup.
  9. Hiding browser flow in long shell scripts/loops instead of observable one-command-at-a-time CLI calls.
  10. Passing explicit --session by habit in single-flow tasks that should use default auto-session behavior.
  11. Using --help mid-task as a substitute for the documented selector/session workflow.
  12. Throwing away a validated browser flow in favor of direct HTTP or side-route fetching just because another layer exists.
  13. Starting with broad capability audits (reflex lua libs, repeated help calls, external doc hunts) before trying start -> open -> summary on the target page.
  14. Treating cookie/consent/chat-only summary output as permission to jump to eval, html, or external fetching instead of clearing the overlay and re-running summary.

Extending Beyond Browser

When browser commands alone are not enough to complete the task:

  1. If the task just needs data export or file output after browser collection, use direct library commands (reflex xlsx..., reflex csv...) or reflex lua exec "..." — see the reflex-scripting skill.
  2. If the user asks for a reusable script, switch to the reflex-scripting skill after browser discovery is done. Carry forward all discovered selectors, refs, URLs, and page transitions.
  3. Do not discard a validated browser flow just because another layer also exists; scripts should continue the workflow, not replace it.

Output Contract

Use reflex browser help --json for the exact machine-readable response schema, including:

  • summary target fields such as selector, ref, text, and href
  • read-value paths such as response.data.value
  • optional summary add-ons such as response.state and response.artifacts.screenshot
  • error fields such as response.errorCode and response.recoveryHint
  • Lua generation and screenshot payload fields

Repeated Items Pattern (Required)

  1. Identify the repeated container first (for example css=ol.row > li).
  2. Validate the container count/visibility with wait or visible.
  3. Extract child fields within indexed container selectors (for example ... > li:nth-of-type(2) h3 a).
  4. Prefer semantic field reads:

- attribute... title for titles when present - text....price_color for visible price text

Bash URL Handling (Optional)

Use this only when writing shell wrappers around CLI JSON output. For normal CLI usage, prefer open <href> directly (relative URLs are auto-resolved).

get_value() { jq -r '.response.data.value // empty'; }
get_url() { reflex url | get_value; }
open_target() {
  local href="$1"
  reflex browser open "$href" >/dev/null
  get_url
}

PowerShell URL Handling (Optional)

Use the same pattern in PowerShell when running on Windows.

function Get-Value {
  param([Parameter(ValueFromPipeline = $true)] $obj)
  process { $obj.response.data.value }
}

function Get-Url {
  reflex url | ConvertFrom-Json | Get-Value
}

function Open-Target {
  param([string]$Href)
  reflex browser open $Href | Out-Null
  Get-Url
}

References

  • Command catalog and flags:

- references/commands.md

  • CLI protocol contract:

- references/protocol.md

  • Selector workflow:

- references/selectors.md

  • Session lifecycle and recovery:

- references/session-management.md

  • Worked examples:

- examples/books-to-scrape-summary.md - examples/page-to-export-one-off.md - examples/careers-to-xlsx-lua.md

平台分布

Codex

36.67%
按下载量换算63

Claude

28.94%
按下载量换算50

Cursor

16.24%
按下载量换算28

Gemini CLI

8.31%
按下载量换算14

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

未通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills