mcpField
S
stealth-browser

stealth-browser

github.com/changeflowhqAgent 工作流8324 次安装37 周前更新
代码仓库

关于 stealth-browser

stealth-browser 是面向 Claude Code 的技能,可在 macOS 上通过 CDP 隐藏运行 Chrome 并进行自动化。它结合网页读取、浏览器交互和可复用的网站经验记录。

主要功能

  1. 01将渲染后的页面读取为 Markdown
  2. 02通过 CDP 隐藏或启动 Chrome
  3. 03使用 agent-browser 交互
  4. 04记录可复用的网站经验
  5. 05记录被拦截的域名

适用场景

  1. 01提取 JavaScript 渲染页面的内容
  2. 02自动执行浏览和表单填写
  3. 03复用特定网站的操作方法

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/changeflowhq/skills --skill stealth-browser

安装后在 Claude Code 中输入/stealth-browser确认已加载。

详细介绍

stealth-browser

通过 CDP 实现隐形 Chrome 自动化。启动隐藏的真实 Chrome,并通过 Chrome DevTools Protocol 发送命令。网站看到的是普通浏览器,不会检测到自动化。

仅限 macOS。 使用 AppleScript 和 open -g 隐藏 Chrome。

记忆

每项任务开始时读取 ~/.claude/skills/stealth-browser/LEARNED.md。如果文件不存在,则创建该文件,并添加 # Learned 标题。

检测到以下情况时记录经验:

  • 域名特性:需要额外等待时间、关闭 Cookie 提示,或采用特定交互方式的网站
  • 已解决的问题:出现了什么问题以及原因(超时、空白页面、选择器错误)
  • 修正意见:“不,用 X”“别这么做”“其实……”
  • 变通方法:需要执行 JS、滚动或多步导航才能获取内容的网站
  • 正向反馈:“太棒了!”“完全正确!”“就是这样!”

追加前,请检查:

  • 是否可复用?(而不是一次性指令)
  • 是否已记录在 LEARNED.md 中?(不要重复)
  • 能否提炼出通用原则?(而不只是具体的修复办法)

格式: 一行,具有可操作性。写规则,不写过程。

  • 不佳:“用户说页面空白是因为需要滚动”
  • 良好:“example.com 会延迟加载内容——提取前滚动到底部”

无需征求许可。直接追加并继续。

核心工作流

# 1. Read a page as markdown (most common)
stealth-browser read <url>

# 2. Full automation (open, interact, close)
stealth-browser open <url> --hidden
agent-browser --cdp 9222 snapshot -i
agent-browser --cdp 9222 click @e1
stealth-browser close

stealth-browser 相对于此技能位于 scripts/stealth-browser。请使用完整路径:

~/.claude/skills/stealth-browser/scripts/stealth-browser read <url>

命令

stealth-browser read <url>              # Fetch as markdown (waits for JS render)
stealth-browser open <url> --hidden     # Launch hidden Chrome
stealth-browser close                   # Stop Chrome
stealth-browser status                  # Check state
stealth-browser screenshot [path]       # CDP screenshot (auto unhide/re-hide)
stealth-browser hide / unhide           # Toggle visibility
stealth-browser doctor                  # Check dependencies
stealth-browser setup                   # Reset Chrome profile

打开后:通过 agent-browser 执行 CDP 命令

agent-browser --cdp 9222 open <url>           # Navigate
agent-browser --cdp 9222 snapshot -i          # Get interactive elements
agent-browser --cdp 9222 click @e1            # Click by ref
agent-browser --cdp 9222 fill @e2 "text"      # Fill input
agent-browser --cdp 9222 type @e2 "text"      # Type without clearing
agent-browser --cdp 9222 press Enter          # Press key
agent-browser --cdp 9222 scroll down 500      # Scroll
agent-browser --cdp 9222 get text @e1         # Get text
agent-browser --cdp 9222 get url              # Get current URL
agent-browser --cdp 9222 eval "document.title" # Run JavaScript
agent-browser --cdp 9222 screenshot path.png  # Screenshot
agent-browser --cdp 9222 wait 2000            # Wait
agent-browser --cdp 9222 back                 # Navigate back

导航或 DOM 发生变化后,务必重新生成快照——元素引用会发生变化。

Chrome 持续运行

执行 read 或 open --hidden 后,Chrome 会保持运行并处于隐藏状态:

  • 首次操作:Chrome 启动时会短暂闪现(左上角的小窗口)
  • 之后的所有操作:完全不可见,且即时完成
  • 完成后关闭:stealth-browser close

域名阻止列表(学习记录)

被阻止的域名会记录在 data/blocked-domains.txt 中。PreToolUse 挂钩会拦截之后对这些域名的 WebFetch 调用,并提示 Claude 直接使用 stealth-browser。

请参阅 hooks/README.md 了解 Claude Code 集成设置。 请参阅 README.md 查看完整文档。

评论

支持 Markdown