browser-automation について
browser-automation は、ローカル開発中に OpenWork Electron アプリを探索・デバッグするスキルです。Electron の CDP エンドポイント経由で OpenCode のブラウザツールを接続し、UI の確認やタスク送信を行います。
主な機能
- 01ブラウザツールを OpenWork に接続
- 02ブラウザツールでアプリ状態を確認
- 03入力欄からタスクを送信・実行
- 04UI で応答を確認
活用シーン
- 01OpenWork の UI をローカルでデバッグ
- 02タスク送信と応答を確認
- 03開発中のアプリ動作を調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ different-ai/ openwork --skill browser-automationインストール後、Claude Code で/browser-automationを入力して読み込まれたか確認します。
詳細
ブラウザーの自動化
判定を行う場合は、CDP を手動で操作しないでください。evals/core のジャーニーまたは evals/proofs のプルーフ(write-a-spec、run-tests)を作成または実行してください。このスキルは探索とデバッグ専用です。
できること
- ローカル開発中に、OpenCode のブラウザーツールを OpenWork Electron アプリに接続します。
- Electron の Chrome DevTools Protocol エンドポイントを通じて、アプリの UI を操作します。
- コンポーザーからタスク/セッションを送信し、UI で応答を確認します。
ローカル開発環境のセットアップ
pnpm dev はデフォルトで Electron CDP を有効にします。
OPENWORK_ELECTRON_REMOTE_DEBUG_PORT=${OPENWORK_ELECTRON_REMOTE_DEBUG_PORT:-9823}
OpenCode のブラウザーツールのデフォルトのブラウザー URL は次のとおりです。
http://127.0.0.1:9823
アプリの UI は通常、次の場所に読み込まれます。
http://localhost:5173/
別の CDP ポートを使用するには、オーバーライドを指定して起動します。
OPENWORK_ELECTRON_REMOTE_DEBUG_PORT=9830 pnpm dev
実行中に Electron CDP を無効にするには、次のようにします。
OPENWORK_ELECTRON_REMOTE_DEBUG_PORT=0 pnpm dev
バックグラウンドでの起動
ユーザーがアプリをバックグラウンドで実行したい場合は、デタッチ起動を使用します。
nohup pnpm dev > /tmp/openwork-dev.log 2>&1 &
次に、CDP ポートが起動するまで待ちます。
lsof -nP -iTCP:9823 -sTCP:LISTEN
ブラウザーツールのフロー
browser_url: "http://127.0.0.1:9823"を指定してbrowser_listでターゲットを一覧表示します。OpenWorkのターゲット ID を選択します。browser_evalまたはbrowser_snapshotで状態を読み取ります。[contenteditable="true"][data-lexical-editor="true"]を対象にして、Lexical コンポーザーに入力します。Run taskボタンをクリックします。document.body.innerTextまたは現在の URL を確認して、セッションの応答を確認します。
セッションを送信する
OpenWork のターゲットを選択した後、次の browser_eval パターンを使用します。
(() => {
const editor = document.querySelector('[contenteditable="true"][data-lexical-editor="true"]');
if (!editor) return { ok: false, reason: 'editor not found' };
editor.focus();
const data = new DataTransfer();
data.setData('text/plain', 'Say hello from the Electron browser test.');
editor.dispatchEvent(new ClipboardEvent('paste', {
bubbles: true,
cancelable: true,
clipboardData: data,
}));
const run = Array.from(document.querySelectorAll('button'))
.find((button) => button.innerText.trim() === 'Run task');
if (!run) return { ok: false, reason: 'Run task not found', inserted };
if (run.disabled) return { ok: false, reason: 'Run task disabled', inserted, text: editor.innerText };
run.click();
return { ok: true, inserted: true, text: editor.innerText };
})()
メモ
- Electron CDP は、開発用テストツールとして使用します。ユーザーのブラウザータスクには、組み込みの OpenWork Browser ターゲットを使用してください。
- ローカル接続に成功すると、
http://127.0.0.1:9823にOpenWorkターゲットが表示されます。 - 動作確認済みのスモークテスト用プロンプトは
Say hello from the Electron browser test.で、期待される応答はHello from the Electron browser test.です。
コメント
Markdown 対応