web-browser について
web-browser は、エージェントが共同でサイトを調査するための軽量な CDP ツールを備えたスキルです。Chrome を操作し、ページ移動、JavaScript 実行、スクリーンショット、デバイスエミュレーション、ログ収集を行います。
主な機能
- 01ヘッドレスまたは表示状態で Chrome を起動
- 02タブやページの移動
- 03アクティブなタブで JavaScript を実行
- 04表示領域またはページ全体を撮影
- 05モバイルデバイスのエミュレーション
- 06コンソール、エラー、ネットワークログの収集
活用シーン
- 01ページの内容やリンクを調査
- 02モバイル表示でサイトを確認
- 03スクリーンショットを撮りブラウザーエラーを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mitsuhiko/ agent-stuff --skill web-browserインストール後、Claude Code で/web-browserを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/browser-processes.jsbrowser-processes.test.jscdp.jsdevices.jsdismiss-cookies.jsemulate.jsemulation-state.jseval.jslogs-tail.jsnav.jsnet-summary.jspackage-lock.jsonpackage.jsonpick.jsscreenshot.jsstart.jsstop.jswatch.js詳細
Web Browser Skill
共同でのサイト探索に対応する最小限の CDP ツールです。
Chrome の起動(ヘッドレスを推奨)
./scripts/start.js --headless # Recommended: isolated reusable profile
./scripts/start.js --headless --profile # Headless with a copy of your profile
./scripts/start.js # Visible browser window when needed
./scripts/start.js --headless --reset-profile # Clear cached profile before launch
リモートデバッグを有効にして Chrome を起動します(デフォルトのポートは :9222 です)。エージェントは、デフォルトで --headless を使用してください。操作の妨げになりにくく、ナビゲーション、評価、スクリーンショット、エミュレーション、ログ記録に対応しています。ヘッドレス起動ではユーザーの拡張機能は無効になります。プロファイルをコピーした場合も Cookie などのブラウザー状態は引き継がれますが、拡張機能に依存する機能は使用できません。ヘッドありで起動すると、通常どおり拡張機能が読み込まれます。人がブラウザーを見たり操作したりする必要がある場合(pick.js の使用、手動での認証、ヘッドレス環境特有の差異のデバッグなど)に限り、ヘッドありモードを使用してください。
起動スクリプトは、プロファイルと起動設定が一致する場合にのみ、実行中のブラウザーを再利用します。ヘッドレスモードとヘッドありモードを切り替える前に、実行中のスキルブラウザーを停止してください。デバッグポートを変更しても、プロファイルが分離されるわけではありません。起動時に、別のポートですでに使用されているプロファイルの変更は拒否され、Chrome のプロファイルロックも維持されます。
プロファイルの動作:
- デフォルトモードでは、
~/.cache/agent-web/browser/fresh-profileを使用します --profileモードでは、~/.cache/agent-web/browser/profile-copyを使用します- このスキルは実際に使用中の Chrome プロファイルに直接接続しません
:9222が不明なインスタンスによってすでに使用されている場合、既存のインスタンスを再利用せず、起動に失敗します
Chrome が標準以外の場所にインストールされている場合は、次のように設定してください。
BROWSER_BIN=/path/to/chrome ./scripts/start.js --headless
デバッグエンドポイントのオプション指定:
BROWSER_DEBUG_PORT=9333 ./scripts/start.js --headless
Chrome の停止
./scripts/stop.js # Stop skill Chrome on :9222
BROWSER_DEBUG_PORT=9333 ./scripts/stop.js # Stop skill Chrome on :9333
./scripts/stop.js --all # Stop all skill Chrome instances
ヘッドレスブラウザーとヘッドありブラウザーの両方で動作します。スキルのキャッシュ済みプロファイルを使用しているプロセスのみが停止され、通常使用している Chrome は停止されません。シャットダウン後も Cookie などのキャッシュ済み状態は保持されます。Chrome を強制終了することはありません。--reset-profile を使用する前に停止してください。
ブラウザーを表示するには、次のようにします。
./scripts/stop.js
./scripts/start.js
ナビゲーション
./scripts/nav.js https://example.com
./scripts/nav.js https://example.com --new
現在のタブに移動するか、新しいタブを開きます。
デバイスエミュレーション(モバイル)
./scripts/emulate.js --list
./scripts/emulate.js iphone-14
./scripts/emulate.js pixel-7 --landscape
./scripts/emulate.js --reset
ブラウザースキルのコマンドに適用するデバイスエミュレーション設定(ビューポート、DPR、タッチ、UA)を指定します。解除するには --reset を使用します。
nav.js、eval.js、pick.js、dismiss-cookies.js、screenshot.js などのコマンドには、アクティブな設定が自動的に適用されます。
JavaScript の評価
./scripts/eval.js 'document.title'
./scripts/eval.js 'document.querySelectorAll("a").length'
./scripts/eval.js 'document.querySelector("button")?.click(); "clicked"'
./scripts/eval.js 'await Promise.resolve(document.title)'
./scripts/eval.js 'JSON.stringify(Array.from(document.querySelectorAll("a")).map(a => ({ text: a.textContent.trim(), href: a.href })).filter(link => !link.href.startsWith("https://")))'
アクティブなタブで JavaScript を実行します。入力には式または文のリストを指定でき、コンソール形式の評価結果が出力されます。また、Promise とトップレベルの await は待機してから結果を返します。文字列のエスケープには注意してください。シングルクォートを使用するのがおすすめです。
スクリーンショット
./scripts/screenshot.js
./scripts/screenshot.js --full-page
./scripts/screenshot.js --device iphone-14
./scripts/screenshot.js --device pixel-7 --full-page
スクリーンショットを撮影し、一時ファイルのパスを返します。
- デフォルト:現在のビューポート
--full-page:ドキュメント全体の高さを撮影します--device <preset>:そのスクリーンショットの撮影時のみ、一時的にモバイルエミュレーションを行います
要素の選択
./scripts/pick.js "Click the submit button"
インタラクティブな要素選択ツールです。クリックで選択し、Cmd/Ctrl を押しながらクリックすると複数選択できます。Enter キーで終了します。ヘッドありの Chrome が必要です。start.js を --headless を付けずに起動してください。
Cookie ダイアログの閉じ方
./scripts/dismiss-cookies.js # Accept cookies
./scripts/dismiss-cookies.js --reject # Reject cookies (where possible)
EU の Cookie 同意ダイアログを自動的に閉じます。
ページに移動した後に実行します:
./scripts/nav.js https://example.com && ./scripts/dismiss-cookies.js
モバイルの簡易デバッグ手順
./scripts/start.js --headless
./scripts/nav.js https://example.com
./scripts/emulate.js iphone-14
./scripts/nav.js https://example.com # reload with mobile UA
./scripts/dismiss-cookies.js
./scripts/screenshot.js --full-page
バックグラウンドログ(コンソール、エラー、ネットワーク)
start.js によって自動的に開始され、ログは次の場所に JSONL 形式で書き込まれます。
~/.cache/agent-web/logs/YYYY-MM-DD/<targetId>.jsonl
手動で開始するには、次のようにします。
./scripts/watch.js
最新のログを表示するには、次のようにします。
./scripts/logs-tail.js # dump current log and exit
./scripts/logs-tail.js --follow # keep following
ネットワークレスポンスを要約するには、次のようにします。
./scripts/net-summary.js