mcpField
S
stealth-browser

stealth-browser

github.com/changeflowhqエージェントワークフロー8324 回インストール37 週間前に更新
リポジトリ

stealth-browser について

stealth-browserは、macOSでChromeを非表示にしてCDP経由で操作するClaude Codeスキルです。ページの読み取りや操作に加え、サイト固有の知見を再利用できる形で記録します。

主な機能

  1. 01レンダリング済みページをMarkdownで取得
  2. 02CDP経由でChromeを非表示で起動
  3. 03agent-browserでページを操作
  4. 04再利用可能なサイト知見を記録
  5. 05ブロック対象ドメインを記録

活用シーン

  1. 01JavaScriptで描画されるページの内容抽出
  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 にありますか?(重複させない)
  • 一般的な原則を抽出できますか?(具体的な修正だけにしない)

形式: 実行可能なルールを1行で記述します。経緯ではなく、ルールを書いてください。

  • 悪い例:「スクロールが必要だったためページが空白だとユーザーが言った」
  • 良い例:「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 を直接使うよう指示します。

Claude Code との統合設定については、hooks/README.md を参照してください。 人間向けの完全なドキュメントについては、README.md を参照してください。

コメント