agent-browser について
agent-browser は、inference.sh のコマンドラインから利用する AI エージェント向けブラウザー自動化スキルで、内部で Playwright を使用します。要素参照で操作し、セッション維持、スクリーンショット、任意の動画記録に対応します。
主な機能
- 01ページ遷移と要素スナップショット
- 02@e 要素参照による操作
- 03表示領域または全ページの撮影
- 04ブラウザーセッションの動画記録
- 05ファイルアップロードと要素のドラッグ
- 06ページ内での JavaScript 実行
活用シーン
- 01フォーム入力と送信の自動化
- 02ページ検索とコンテンツ抽出
- 03認証済みブラウザーフローのテスト
- 04デバッグ用のブラウザー操作記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ inference-sh/ agent-skills --skill agent-browserインストール後、Claude Code で/agent-browserを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/authentication.mdcommands.mdproxy-support.mdsession-management.mdsnapshot-refs.mdvideo-recording.mdtemplates/authenticated-session.shcapture-workflow.shform-automation.sh詳細
エージェント型ブラウザー
inference.sh を介した AI エージェント向けのブラウザー自動化です。内部では Playwright を使用し、要素の操作にはシンプルな @e 参照システムを使用します。

クイックスタート
inference.sh CLI(
infsh)が必要です。インストール手順
infsh login
# Open a page and get interactive elements
infsh app run agent-browser --function open --input '{"url": "https://example.com"}' --session new
基本的なワークフロー
ブラウザー自動化はすべて、次のパターンに従います。
- 開く - URL に移動し、要素の
@e参照を取得します - 操作する - 参照を使ってクリック、入力、ドラッグなどを行います
- 再スナップショット - 移動や変更の後、新しい参照を取得します
- 閉じる - セッションを終了します(録画中の場合は動画が返されます)
# 1. Start session
RESULT=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com/login"
}')
SESSION_ID=$(echo $RESULT | jq -r '.session_id')
# Elements: @e1 [input] "Email", @e2 [input] "Password", @e3 [button] "Sign In"
# 2. Fill and submit
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
"action": "fill", "ref": "@e1", "text": "[email protected]"
}'
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
"action": "fill", "ref": "@e2", "text": "password123"
}'
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
"action": "click", "ref": "@e3"
}'
# 3. Re-snapshot after navigation
infsh app run agent-browser --function snapshot --session $SESSION_ID --input '{}'
# 4. Close when done
infsh app run agent-browser --function close --session $SESSION_ID --input '{}'
関数
| 関数 | 説明 |
|---|---|
open | URL に移動し、ブラウザーを設定します(ビューポート、プロキシ、動画録画) |
snapshot | DOM の変更後に、@e 参照を使ってページの状態を再取得します |
interact | @e 参照を使って操作を実行します(クリック、入力、ドラッグ、アップロードなど) |
screenshot | ページのスクリーンショットを撮影します(ビューポートまたはページ全体) |
execute | ページ上で JavaScript コードを実行します |
close | セッションを終了します。録画が有効な場合は動画が返されます |
操作アクション
| アクション | 説明 | 必須フィールド |
|---|---|---|
click | 要素をクリックします | ref |
dblclick | 要素をダブルクリックします | ref |
fill | テキストを消去して入力します | ref、text |
type | テキストを入力します(消去しません) | text |
press | キーを押します(Enter、Tab など) | text |
select | ドロップダウンの項目を選択します | ref、text |
hover | 要素にカーソルを合わせます | ref |
check | チェックボックスにチェックを入れます | ref |
uncheck | チェックボックスのチェックを外します | ref |
drag | ドラッグ&ドロップします | ref、target_ref |
upload | ファイルをアップロードします | ref、file_paths |
scroll | ページをスクロールします | direction(up/down/left/right)、scroll_amount |
back | 履歴を戻ります | - |
wait | ミリ秒単位で待機します | wait_ms |
goto | URL に移動します | url |
要素の参照
要素は @e 参照付きで返されます。
@e1 [a] "Home" href="/"
@e2 [input type="text"] placeholder="Search"
@e3 [button] "Submit"
@e4 [select] "Choose option"
@e5 [input type="checkbox"] name="agree"
重要: 参照はページ移動後に無効になります。次の操作の後は、必ず再スナップショットを取得してください。
- ページ遷移を伴うリンクやボタンのクリック
- フォームの送信
- 動的コンテンツの読み込み
機能
動画録画
デバッグやドキュメント作成のために、ブラウザーセッションを録画します。
# Start with recording enabled (optionally show cursor indicator)
SESSION=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com",
"record_video": true,
"show_cursor": true
}' | jq -r '.session_id')
# ... perform actions ...
# Close to get the video file
infsh app run agent-browser --function close --session $SESSION --input '{}'
# Returns: {"success": true, "video": <File>}
カーソルインジケーター
スクリーンショットや動画に見えるカーソルを表示します(デモに便利です)。
infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com",
"show_cursor": true,
"record_video": true
}'
カーソルは、マウスの動きに追従し、クリックのフィードバックを表示する赤い点として現れます。
プロキシのサポート
プロキシサーバー経由でトラフィックをルーティングします。
infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com",
"proxy_url": "http://proxy.example.com:8080",
"proxy_username": "user",
"proxy_password": "pass"
}'
ファイルのアップロード
ファイル入力欄にファイルをアップロードします。
infsh app run agent-browser --function interact --session $SESSION --input '{
"action": "upload",
"ref": "@e5",
"file_paths": ["/path/to/file.pdf"]
}'
ドラッグ&ドロップ
要素をターゲットにドラッグします。
infsh app run agent-browser --function interact --session $SESSION --input '{
"action": "drag",
"ref": "@e1",
"target_ref": "@e2"
}'
JavaScript の実行
カスタム JavaScript を実行します。
infsh app run agent-browser --function execute --session $SESSION --input '{
"code": "document.querySelectorAll(\"h2\").length"
}'
# Returns: {"result": "5", "screenshot": <File>}
詳細ドキュメント
| リファレンス | 説明 |
|---|---|
| references/commands.md | すべてのオプションを含む関数の完全なリファレンス |
| references/snapshot-refs.md | 参照のライフサイクル、無効化のルール、トラブルシューティング |
| references/session-management.md | セッションの永続化、並行セッション |
| references/authentication.md | ログインフロー、OAuth、2FA の処理 |
| references/video-recording.md | デバッグ用の録画ワークフロー |
| references/proxy-support.md | プロキシ設定、地域テスト |
すぐに使えるテンプレート
| テンプレート | 説明 |
|---|---|
| templates/form-automation.sh | 検証付きのフォーム入力 |
| templates/authenticated-session.sh | 一度ログインして、セッションを再利用 |
| templates/capture-workflow.sh | スクリーンショットを使ったコンテンツ抽出 |
使用例
フォームの送信
SESSION=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com/contact"
}' | jq -r '.session_id')
# Get elements: @e1 [input] "Name", @e2 [input] "Email", @e3 [textarea], @e4 [button] "Send"
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "John Doe"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e2", "text": "[email protected]"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e3", "text": "Hello!"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "click", "ref": "@e4"}'
infsh app run agent-browser --function snapshot --session $SESSION --input '{}'
infsh app run agent-browser --function close --session $SESSION --input '{}'
検索と抽出
SESSION=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://google.com"
}' | jq -r '.session_id')
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "weather today"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "press", "text": "Enter"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "wait", "wait_ms": 2000}'
infsh app run agent-browser --function snapshot --session $SESSION --input '{}'
infsh app run agent-browser --function close --session $SESSION --input '{}'
動画付きスクリーンショット
SESSION=$(infsh app run agent-browser --function open --session new --input '{
"url": "https://example.com",
"record_video": true
}' | jq -r '.session_id')
# Take full page screenshot
infsh app run agent-browser --function screenshot --session $SESSION --input '{
"full_page": true
}'
# Close and get video
RESULT=$(infsh app run agent-browser --function close --session $SESSION --input '{}')
echo $RESULT | jq '.video'
セッション
ブラウザーの状態はセッション内で保持されます。必ず次の手順に従ってください。
- 最初の呼び出しでは
--session newを指定します - 以降の呼び出しでは、返された
session_idを使用します - 完了したらセッションを閉じます
関連スキル
# Web search (for research + browse)
npx skills add inference-sh/skills@web-search
# LLM models (analyze extracted content)
npx skills add inference-sh/skills@llm-models
ドキュメント
- inference.sh のセッション - セッション管理
- マルチファンクションアプリ - 関数の仕組み
コメント
Markdown 対応