一键导入
browser-controller
Browser Controller Chrome拡張機能を使って任意のWebサイトをプログラムから操作する汎用スキル。「ブラウザ操作」「Webサイト操作」「DOM操作」「スクレイピング」「browser control」「web automation」を依頼されたときに使用する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Browser Controller Chrome拡張機能を使って任意のWebサイトをプログラムから操作する汎用スキル。「ブラウザ操作」「Webサイト操作」「DOM操作」「スクレイピング」「browser control」「web automation」を依頼されたときに使用する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Skill(SKILL.md)の保守・更新・新規作成を対話で行い、整合性と検証手順を維持したまま反映する。Skill更新、skill update、Skillメンテナンス、Skill追加を依頼されたときに使用する。
Skill(SKILL.md)の保守・更新・新規作成を対話で行い、整合性と検証手順を維持したまま反映する。Skill更新、skill update、Skillメンテナンス、Skill追加を依頼されたときに使用する。
Skill(SKILL.md)の保守・更新・新規作成を対話で行い、整合性と検証手順を維持したまま反映する。Skill更新、skill update、Skillメンテナンス、Skill追加を依頼されたときに使用する。
Skill(SKILL.md)の保守・更新・新規作成を対話で行い、整合性と検証手順を維持したまま反映する。Skill更新、skill update、Skillメンテナンス、Skill追加を依頼されたときに使用する。
Browser Controller Chrome拡張機能を使って任意のWebサイトをプログラムから操作する汎用スキル。「ブラウザ操作」「Webサイト操作」「DOM操作」「スクレイピング」「browser control」「web automation」を依頼されたときに使用する。
Browser Controller拡張機能を使ってChatGPT 5.2 Thinkingで3並列以上のウェブ検索・ブレスト・情報収集を実行する。難問にはHeavy thinking(heavy/extended)を使用。指定時のみChatGPT Proで深い考察・ファクトチェック。マルチターン継続(chat)、再取得(recover)、ファイル添付、タブ管理にも対応。「ウェブ検索」「横断検索」「並列検索」「ブレスト」「情報収集」「リサーチ」「再取得」「追加質問」を依頼されたときに使用する。
| name | browser-controller |
| description | Browser Controller Chrome拡張機能を使って任意のWebサイトをプログラムから操作する汎用スキル。「ブラウザ操作」「Webサイト操作」「DOM操作」「スクレイピング」「browser control」「web automation」を依頼されたときに使用する。 |
Preflight:
./guide/guide.md を先に読み、詳細な使用方法を確認する(テンプレートファースト)。実行:
./scripts/browser_controller.pycd .github/skills/browser-controller/scripts && python browser_controller.py <command>python .github/skills/browser-controller/scripts/browser_controller.py <command>python browser_controller.py statusQC(必須):
recommended_subagents のQC Subagentに評価・チェックを委譲する。./evaluation/evaluation_criteria.md をReadし、評価指標に基づいてQCを実施する。バックログ反映:
subagent_policy:
recommended_subagents:
| コマンド | 説明 |
|---|---|
tabs | タブ一覧を取得 |
open <url> | 新しいタブを開く |
close --tab <id> | タブを閉じる |
navigate <url> | URLに移動 |
reload | ページをリロード |
| コマンド | 説明 |
|---|---|
click <selector> | 要素をクリック |
type <text> --selector <sel> | テキストを入力 |
text <selector> | テキストを取得 |
elements | 操作可能な要素一覧 |
search <query> | テキストで要素を検索 |
| コマンド | 説明 |
|---|---|
inspect | DOM構造を調査 |
screenshot --output <path> | スクリーンショット |
info | ページ情報を取得 |
status | 接続状態を確認 |
| モード | 説明 |
|---|---|
summary | ページ全体のサマリー(デフォルト) |
interactive | インタラクティブ要素一覧 |
testids | data-testid属性を持つ要素 |
tree | body直下の要素ツリー |
aria | ARIA属性を持つ要素 |
search | テキスト検索 |
複数コマンドを1リクエストで実行し、WebSocket往復回数を削減する。
# 複数コマンドを1リクエストで実行(WebSocket往復削減)
await ctrl.batch_execute([
{'type': 'click', 'selector': '#btn1'},
{'type': 'get_text', 'selector': 'h1'},
{'type': 'screenshot'},
])
# 複数DOM操作を1回のexecuteScriptで実行(さらに高速)
await ctrl.batch_dom_ops([
{'op': 'type', 'selector': '#search', 'text': 'query'},
{'op': 'click', 'selector': '#submit'},
])
# 複数タブで並列実行
await ctrl.parallel_tabs({
123: [{'type': 'screenshot'}],
456: [{'type': 'get_text', 'selector': 'h1'}],
})
| 方法 | 説明 | 例 |
|---|---|---|
selector | CSSセレクター | '#id', '.class' |
xpath | XPath式 | '//button[text()="送信"]' |
text | テキスト部分一致 | 'ログイン' |
textExact | テキスト完全一致 | '送信する' |
role | ARIAロール | 'button', 'textbox' |
testId | data-testid属性 | 'submit-btn' |
ariaLabel | aria-label属性 | '検索' |
placeholder | placeholder属性 | 'メールアドレス' |
index | 操作可能要素の番号 | 0, 1, 2... |
nth | セレクター結果のN番目 | selectorと併用 |
| カテゴリ | 操作 | 説明 |
|---|---|---|
| クリック | click, click_pointer | 通常/PointerEvent発火 |
| 入力 | type, clear, press_key | 入力/クリア/キー送信 |
| 取得 | get_text, get_html, get_attr, get_value | テキスト/HTML/属性/値 |
| 設定 | set_attr | 属性値設定 |
| スクロール | scroll, scroll_into_view | スクロール/要素まで移動 |
| フォーカス | focus, blur, hover | フォーカス操作 |
| フォーム | check, uncheck, select | チェックボックス/セレクト |
| 確認 | exists, wait_visible | 要素存在/可視確認 |
ctrl = BrowserController(
timeout=30, # タイムアウト(秒)
auto_bridge=True # ブリッジ自動起動
)
await ctrl.get_tabs() # タブ一覧
await ctrl.new_tab(url) # 新しいタブ
await ctrl.close_tab(tab_id) # タブを閉じる
await ctrl.switch_tab(tab_id) # タブ切り替え
await ctrl.get_active_tab() # アクティブタブ取得
await ctrl.click(selector, tab_id)
await ctrl.type_text(text, selector, tab_id)
await ctrl.get_text(selector, tab_id)
await ctrl.get_html(selector, tab_id)
await ctrl.get_attribute(selector, attribute, tab_id)
await ctrl.get_elements(tab_id)
await ctrl.search_elements(query, tab_id)
await ctrl.query_selector(selector, tab_id)
await ctrl.query_selector_all(selector, tab_id)
await ctrl.wait_for_element(selector, tab_id, timeout)
await ctrl.get_page_info(tab_id)
await ctrl.get_page_text(tab_id, selector)
await ctrl.navigate(url, tab_id)
await ctrl.reload(tab_id)
await ctrl.go_back(tab_id)
await ctrl.go_forward(tab_id)
await ctrl.screenshot(tab_id, save_path)
await ctrl.inspect_dom(tab_id, selector, mode, text)
await ctrl.execute_script(script, tab_id)
status で接続状態を確認する。このSkillはサブエージェントとして独立実行可能。
agents/browser-controller-agent.mdurl, commands(実行するコマンドリスト)