Browser について
Browserは、agent-browser CLIを使ったブラウザー自動化スキルです。ヘッドレス実行、認証プロファイルの保持、ページ操作やスクリーンショットに加え、再利用可能なレシピに対応します。
主な機能
- 01agent-browser CLIによるページ自動化
- 02認証プロファイルの保持
- 03ページ操作とスクリーンショット
- 04コマンドのバッチ実行
- 05YAMLストーリー検証とレシピ実行
活用シーン
- 01保存済み認証情報でのページ閲覧
- 02ページのスクリーンショットやPDF取得
- 03フォーム入力レシピの反復実行
- 04複数ページのUIストーリー検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ danielmiessler/ lifeos --skill browserインストール後、Claude Code で/browserを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdRecipes/README.mdFormFill.mdSummarizePage.mdScreenshotCompare.mdStories/README.mdExampleApp.yamlHackerNews.yamlWorkflows/Automate.mdReviewStories.mdUpdate.md詳細
カスタマイズ
実行前に、ユーザーのカスタマイズが次の場所にあるか確認してください:
~/.claude/PAI/USER/SKILLCUSTOMIZATIONS/Browser/
このディレクトリが存在する場合は、そこにある PREFERENCES.md、設定、リソースを読み込み、適用してください。これらはデフォルトの動作より優先されます。ディレクトリが存在しない場合は、スキルのデフォルト設定を使用してください。
必須:音声通知(アクションを起こす前に必ず実行)
このスキルが呼び出されたら、ほかのことをする前に必ずこの通知を送信してください。
-
音声通知を送信する:
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 & -
テキスト通知を出力する:
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.md | YAML ストーリーを複数の 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