

AIエージェントにブラウザ操作を任せたい場面は増えています。デプロイ後の動作確認、フォーム入力テスト、スクリーンショット取得など、手作業でやっていた作業をClaude Codeに委任できたら効率的です。
browser-use v2は「Make websites accessible for AI agents」をコンセプトに、AIエージェントがWebサイトを自動操作できるオープンソースツールです。CLI、MCPサーバー、Claude Codeスキルなど多彩な統合方法を提供しています。
この記事では、CLI方式でClaude Codeに統合し、実際にブログサイト全ページの動作確認を自動化した実践例を紹介します。
browser-use v2の概要と3つの統合方式の違い
CLIのインストールとClaude Codeスキル登録の全手順
ヘッドレスブラウザでの全ページ自動巡回テストの実践方法
ダークモード切替やフォーム入力など、インタラクティブなテスト手法
browser-use CLIの主要コマンドと活用Tips
Claude Codeを日常的に使っている開発者
AIエージェントによるブラウザ自動操作に興味がある方
デプロイ後の動作確認を効率化したい方
Claude Codeがインストール済み
Python 3.11以上
uv パッケージマネージャー(推奨)
browser-useをClaude Codeで使うには3つの方法があります。
| 方式 | 費用 | 特徴 |
|---|---|---|
| Cloud MCPサーバー | 有料(API Key必要) | セットアップが簡単、クラウドでブラウザ実行 |
| ローカルMCPサーバー | 無料(LLM API費用のみ) | ローカルでブラウザ実行、MCP経由で操作 |
| CLIスキル | 無料(LLM API費用のみ) | 最も軽量、bashコマンドで直接操作 |
CLI方式が最も軽量で、追加のAPIキーも不要なため、今回はこの方式を採用します。
uvのグローバルツールとしてインストールします。
uv tool install 'browser-use[cli]'
これで browser-use、bu、browser、browseruse の4つのエイリアスが使えるようになります。
browser-useが使うヘッドレスChromiumをインストールします。
browser-use install
Playwright経由でChromiumがダウンロードされます(約160MB)。
browser-use doctor
以下のように表示されればOKです。
Diagnostics:
✓ package: browser-use
✓ browser: Browser profile available
○ api_key: No API key configured # CLIローカル利用には不要
○ cloudflared: Not available # トンネル機能未使用なら不要
✓ network: Network connectivity OK
api_key と cloudflared は CLIローカル利用では不要なので、警告が出ていても問題ありません。
browser-use公式が提供するスキルファイルをダウンロードします。
mkdir -p ~/.claude/skills/browser-use
curl -sL -o ~/.claude/skills/browser-use/SKILL.md \
https://raw.githubusercontent.com/browser-use/browser-use/main/skills/browser-use/SKILL.md
これだけで完了です。Claude Codeが「ブラウザで確認して」「サイトを開いて」などの指示を受けると、自動的にこのスキルが使われます。
browser-use CLIの基本的な操作フローは以下の通りです。
flowchart TD
A[browser-use open URL] --> B[browser-use state]
B --> C{操作対象を特定}
C --> D[browser-use click index]
C --> E[browser-use input index text]
C --> F[browser-use scroll down]
D --> G[browser-use screenshot]
E --> G
F --> B
G --> H{完了?}
H -->|No| B
H -->|Yes| I[browser-use close]
| コマンド | 説明 |
|---|---|
| browser-use open |
ページを開く |
| browser-use state | 操作可能な要素をインデックス付きで表示 |
| browser-use click |
要素をクリック |
| browser-use input |
要素にテキスト入力 |
| browser-use screenshot [path] | スクリーンショットを取得 |
| browser-use scroll down/up | スクロール |
| browser-use eval “js code” | JavaScript実行 |
| browser-use get text |
要素のテキストを取得 |
| browser-use wait text “text” | テキストが表示されるまで待機 |
| browser-use close | セッション終了 |
browser-use open <url> # ヘッドレス(デフォルト)
browser-use --headed open <url> # ウィンドウ表示(デバッグ用)
browser-use --profile "Default" open <url> # Chrome実ブラウザ(ログイン済み状態)
browser-use --connect open <url> # 既存Chromeに接続
--headed をつけるとブラウザウィンドウが表示されるので、動作確認時に便利です。--profile を使えばChromeの既存プロファイル(ログイン済みCookieなど)をそのまま使えます。
実際にブログサイトの全ページを自動巡回して動作確認を行った例を紹介します。「全てのページを見に行って動作確認して」と指示しただけで、Claude Codeが自律的に以下を実行しました。
トップページ(スクロールで全体確認)
ブログ一覧(ページネーション)
記事詳細ページ(本文レンダリング含む)
カテゴリページ
タグページ
アーカイブページ
検索ページ(実際の検索実行含む)
Aboutページ
ダークモード切替
ページを開いてスクリーンショットを取得、スクロールで全体を確認します。
browser-use open https://example.com && browser-use screenshot /tmp/home.png
browser-use scroll down --amount 800 && browser-use screenshot /tmp/home2.png
state コマンドで操作可能な要素をインデックス付きで取得し、そのインデックスを使って操作します。
browser-use state
# 出力例:
# [29]<a /> kt-tech.blog
# [30]<a /> Home
# [31]<a /> Blog
# [770]<a /> トラブルシューティング 18記事
インデックスを使って操作します。
browser-use click 770
eval コマンドでJavaScriptを直接実行し、ページ内のリンクを効率的に収集できます。
browser-use eval "Array.from(document.querySelectorAll('a')).filter(a => a.href.includes('/tags/')).map(a => a.href).slice(0, 5)"
// 出力: ['https://example.com/tags/react', 'https://example.com/tags/typescript', ...]
テーマ切替ボタンの操作もインデックスベースで行えます。
# テーマ切替ボタンを探す
browser-use state | grep "Toggle theme"
# [2878]<button id=radix-:Rsjlb: ... /> Toggle theme
ボタンをクリックしてメニューを開き、ダークモードを選択します。
browser-use click 2878
browser-use state | grep "Dark"
# [3409]<div role=menuitem /> Dark
browser-use click 3409
browser-use screenshot /tmp/dark.png
フォーム入力と送信も自動化できます。
browser-use open https://example.com/searches
browser-use input 4 "Next.js"
browser-use keys "Enter"
browser-use wait selector "article" --timeout 10000
browser-use screenshot /tmp/search_result.png
複数のセッションを使い分けて並行作業も可能です。
browser-use open https://example.com # メインセッション
browser-use --session search open https://example.com/searches # 別セッション
browser-use sessions # セッション一覧
browser-use close --all # 全セッション終了
全ページを巡回した結果、すべて正常に動作していることを確認できました。
| ページ | ステータス |
|---|---|
| トップページ | OK |
| ブログ一覧(ページネーション) | OK |
| 記事詳細 | OK |
| カテゴリページ | OK |
| タグページ | OK |
| アーカイブページ | OK |
| 検索ページ(検索実行含む) | OK |
| Aboutページ | OK |
| ダークモード切替 | OK |
1回の「動作確認して」の指示で、約10ページの巡回、スクリーンショット取得、フォーム入力テスト、ダークモード切替確認が自動実行されました。
操作対象の要素インデックスは毎回変わるため、操作前に必ず state で最新のインデックスを取得しましょう。
ヘッドレスで意図通り動かない場合は --headed をつけてブラウザウィンドウを表示し、視覚的に確認しましょう。
DOMの一括取得やページ内のURL収集など、eval でJavaScriptを直接実行すると効率的です。
依存関係のないコマンドは && でチェーンすると高速です。
browser-use open https://example.com && browser-use screenshot /tmp/page.png
認証が必要なサイトには --profile か Cookie管理コマンドを使います。
browser-use --profile "Default" open https://github.com # ログイン済みプロファイルを使用
browser-use cookies export cookies.json # Cookie保存
browser-use cookies import cookies.json # Cookie復元
| 症状 | 対処法 |
|---|---|
| ブラウザが起動しない | browser-use close → 再試行 |
| 要素が見つからない | browser-use scroll down → state で再確認 |
| Playwright MCPと競合 | Chromeが起動中だとPlaywright MCPが起動失敗する。セッション終了後に使う |
| 診断したい | browser-use doctor で環境チェック |
browser-use GitHub: https://github.com/browser-use/browser-use
browser-use ドキュメント: https://docs.browser-use.com
Claude Code Skills ドキュメント: https://docs.anthropic.com/claude-code/skills
browser-use v2 CLIは無料でClaude Codeに統合でき、ブラウザ自動操作を実現する
セットアップは uv tool install → browser-use install → スキルファイル配置の3ステップ
state でインデックス取得 → click / input で操作の基本フローを覚えれば多様なテストが可能
デプロイ後の全ページ巡回、ダークモード確認、検索テストなどの手作業を大幅に効率化できる
「動作確認して」の一言でClaude Codeが自律的にサイト全体を巡回してくれる