关于 stealth-browser
stealth-browser 是面向 Claude Code 的技能,可在 macOS 上通过 CDP 隐藏运行 Chrome 并进行自动化。它结合网页读取、浏览器交互和可复用的网站经验记录。
主要功能
- 01将渲染后的页面读取为 Markdown
- 02通过 CDP 隐藏或启动 Chrome
- 03使用 agent-browser 交互
- 04记录可复用的网站经验
- 05记录被拦截的域名
适用场景
- 01提取 JavaScript 渲染页面的内容
- 02自动执行浏览和表单填写
- 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