mcpField
B
Browser

Browser

github.com/danielmiessler開発19.7k136 回インストール3 日前に更新
リポジトリ

Browser について

Browserは、agent-browser CLIを使ったブラウザー自動化スキルです。ヘッドレス実行、認証プロファイルの保持、ページ操作やスクリーンショットに加え、再利用可能なレシピに対応します。

主な機能

  1. 01agent-browser CLIによるページ自動化
  2. 02認証プロファイルの保持
  3. 03ページ操作とスクリーンショット
  4. 04コマンドのバッチ実行
  5. 05YAMLストーリー検証とレシピ実行

活用シーン

  1. 01保存済み認証情報でのページ閲覧
  2. 02ページのスクリーンショットやPDF取得
  3. 03フォーム入力レシピの反復実行
  4. 04複数ページのUIストーリー検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/danielmiessler/lifeos --skill browser

インストール後、Claude Code で/browserを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
Recipes/
README.md
FormFill.md
SummarizePage.md
ScreenshotCompare.md
Stories/
README.md
ExampleApp.yaml
HackerNews.yaml
Workflows/
Automate.md
ReviewStories.md
Update.md

詳細

カスタマイズ

実行前に、ユーザーのカスタマイズが次の場所にあるか確認してください: ~/.claude/PAI/USER/SKILLCUSTOMIZATIONS/Browser/

このディレクトリが存在する場合は、そこにある PREFERENCES.md、設定、リソースを読み込み、適用してください。これらはデフォルトの動作より優先されます。ディレクトリが存在しない場合は、スキルのデフォルト設定を使用してください。

必須:音声通知(アクションを起こす前に必ず実行)

このスキルが呼び出されたら、ほかのことをする前に必ずこの通知を送信してください。

  1. 音声通知を送信する:

    curl -s -X POST http://localhost:31337/notify \
      -H "Content-Type: application/json" \
      -d '{"message": "Running the WORKFLOWNAME workflow in the Browser skill to ACTION"}' \
      > /dev/null 2>&1 &
    
  2. テキスト通知を出力する:

    Running the **WorkflowName** workflow in the **Browser** skill to ACTION...
    

これは任意ではありません。このスキルが呼び出されたら、直ちにこの curl コマンドを実行してください。

Browser v10.0.0 — ブラウザー自動化

ツール: agent-browser — 認証プロファイルを保持する、Rust 製のヘッドレス CLI デーモンです。

agent-browser が動作しない場合、またはサイトにボット検出がある場合は、代わりに Interceptor スキルを使用してください。 Interceptor は CDP フィンガープリントがゼロの Chrome 拡張機能で、主要なボット検出チェックをすべて通過します。

サイトで認証が必要ですか?

--profile ~/.agent-browser/profiles/<site> を使用してください。プロファイルが存在する場合、認証は自動で行われます。存在しない場合は、最初に --headed を使ってログインすれば、その後はずっとヘッドレスで実行できます。


agent-browser

ネイティブの Rust デーモンです。認証用のプロファイルを保持します。デフォルトではヘッドレスで動作します。

クイックな単発コマンド
agent-browser open https://example.com && agent-browser screenshot /tmp/shot.png
agent-browser open https://example.com && agent-browser screenshot --full /tmp/full.png
agent-browser open https://example.com && agent-browser pdf /tmp/page.pdf
セッションベースの操作
# 1. OPEN
agent-browser open https://example.com

# 2. WORK
agent-browser snapshot                    # a11y tree with @eN refs (for AI)
agent-browser click @e12                  # click by ref
agent-browser fill @e15 "hello"           # fill input by ref
agent-browser screenshot /tmp/shot.png    # screenshot
agent-browser eval "document.title"       # run JS

# 3. CLOSE — when done
agent-browser close
認証済みブラウジング(サイトごとのプロファイル)

初回設定(一度だけ headed で実行):

# Close any running daemon first
agent-browser close --all

# Launch headed with persistent profile — log in manually
agent-browser --headed --profile ~/.agent-browser/profiles/<site> open https://example.com

# After login completes, all future runs reuse the profile headlessly

2回目以降の実行(自動でヘッドレス):

agent-browser --profile ~/.agent-browser/profiles/<site> open https://example.com
# Auth is automatic — cookies, IndexedDB, cache all persist

新しいサイトを追加するには: デーモンを閉じ、--headed --profile ~/.agent-browser/profiles/<name> を一度実行してログインすれば完了です。

認証情報の保管庫(代替方法)
agent-browser auth save mysite --url https://example.com --username user --password-stdin
agent-browser auth login mysite    # auto-fills login form
agent-browser auth list            # show saved profiles
バッチ実行
# Send multiple commands in one shot (fewer tool calls = fewer tokens)
echo '[["open","https://example.com"],["snapshot"],["click","@e12"]]' | agent-browser batch
高度な機能
# Connect to already-running Chrome
agent-browser --auto-connect snapshot

# Network interception
agent-browser route "**/*.{png,jpg}" abort     # block images
agent-browser route "https://api.com/*" mock '{"data":"test"}'

# Device emulation
agent-browser --device "iPhone 15" open https://example.com

# Session persistence (cookies + localStorage by name)
agent-browser --session-name myapp open https://example.com
agent-browser のルール
  • デーモンモデル — 最初のコマンドでデーモンが起動し、以降のコマンドは即座に接続します。
  • 参照には @eN 構文を使う — e12 ではなく @e12 を使います。
  • プロファイルはすべてを保持する — Cookie、IndexedDB、キャッシュ、localStorage を保持します。
  • agent-browser close または close --all で閉じると、デーモンが終了します。

エージェントへのブラウザー作業の委任

複数ページのスクレイピングや監視など、並列またはバックグラウンドでのブラウザー作業が必要な場合は、ブラウザーの指示を付けて汎用エージェントを起動してください。専用のブラウザーエージェントタイプは必要ありません。このスキル自体が必要な専門知識を備えています。

Agent(subagent_type="general-purpose", prompt="
  Use agent-browser CLI for all browser work.
  Commands: open <url>, snapshot, click @eN, fill @eN 'text', screenshot /path.
  For authenticated sites: --profile ~/.agent-browser/profiles/<site>
  Refs use @eN syntax from snapshots.
  [your specific task instructions here]
")

並列処理を分離する場合、各エージェントで --session <name> を使用します:

Agent 1: agent-browser --session scrape1 open https://site-a.com
Agent 2: agent-browser --session scrape2 open https://site-b.com

代替手段: agent-browser が失敗する場合、またはサイトにボット検出がある場合は、代わりに Interceptor スキルを使用してください。

従来の組み込みエージェント — 非推奨、呼び出さないでください。 BrowserAgent と UIReviewer は Claude Code の組み込み機能であり、内部処理を変更できません。これらは PAI が現在使用していないブラウザー自動化を実行します。ブラウザー作業はすべて、Interceptor スキル(検証、認証が必要なフロー)または agent-browser(ヘッドレスでのスクレイピング)を通じて行ってください。


ワークフローの振り分け

トリガーワードワークフロー処理内容
"review stories", "run stories", "ui review", "validate stories"Workflows/ReviewStories.mdYAML ストーリーを複数の UIReviewer に並列で割り当てます
"automate", "recipe", "template"、またはレシピ名Workflows/Automate.mdパラメーター化されたレシピテンプレートを読み込み、実行します
"update", "check version"Workflows/Update.mdブラウザーツールが最新で動作していることを確認します

ストーリー — YAML によるユーザーストーリーの検証

ユーザーストーリーを YAML で定義し、UIReviewer エージェントを使って並列に検証します。

ディレクトリ: skills/Browser/Stories/

name: App Name
url: https://example.com
stories:
  - name: Story name
    steps:
      - action: click
        target: "LLM-readable description"
    assertions:
      - type: snapshot_contains
        text: "expected text"

次のいずれかを指定して実行します:"review stories" または "run stories in HackerNews.yaml"


レシピ — パラメーター化されたテンプレート

{PROMPT} を挿入する、再利用可能な Markdown テンプレートです。

ディレクトリ: skills/Browser/Recipes/

レシピ説明ツール
SummarizePage.mdコンテンツの要約を抽出BrowserAgent
ScreenshotCompare.md変更前と変更後を比較agent-browser
FormFill.mdフォームのフィールドに入力agent-browser

次のように実行します:"automate SummarizePage for https://example.com"


実行ログ

任意のワークフローの完了後、JSONL エントリーを 1 件追加します。

echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"Browser","workflow":"WORKFLOW_USED","input":"8_WORD_SUMMARY","status":"ok|error","duration_s":SECONDS}' >> ~/.claude/PAI/MEMORY/SKILLS/execution.jsonl

コメント