argent-vega について
ArgentでAmazon Fire TV Vega端末を操作するためのテストスキルです。画面ツリーを基にした十字キー操作に加え、端末とアプリのライフサイクルやVega固有の制限を説明します。
主な機能
- 01十字キーのみのナビゲーション手順
- 02画面ツリーでのフォーカスと選択項目の確認
- 03Vega端末とアプリのライフサイクルガイド
- 04キーボードとスクリーンショット操作
- 05Fast Refreshのセットアップ情報
- 06未対応ツールの代替手段
活用シーン
- 01テスト中のVegaアプリの操作
- 02入力前に十字キーの対象を確認
- 03画面ツリーが空の場合のアプリ再起動
- 04仮想端末で入力が無視される問題の診断
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ software-mansion/ argent --skill argent-vegaインストール後、Claude Code で/argent-vegaを入力して読み込まれたか確認します。
詳細
Argent Vega(Amazon Fire TV)
重要
- Vega は TV プラットフォームです
- D パッドのみを使用してください。 すべての操作は
tv-remoteで行ってください。Vega ではサポートされていないため、gesture-*やタッチ操作は使用しないでください。 - 移動する前に必ず
describeを実行してください。 ツリーから現在のカーソルを確認します。[focused]の要素、または[focused]が報告されない場合は[selected]の要素を確認してください(ツールキットでは、focusedが false のまま、強調表示された項目に[selected]が付くことがよくあります)。スクリーンショットからフォーカス位置を推測しないでください。 - すべてのツールには、Vega の
serial(list-devicesから取得)をudidとして指定します。
ナビゲーションのループ
各画面で、2 回呼び出します。
describe— カーソル([focused]、または[focused]がなければ[selected])と目的の項目を確認します。- フォーカスから目的の項目までの D パッドの経路全体を計算し(フレームから行と列を数えます)、
selectで終わる経路を 1 回のtv-remote {button:[...]}で実行します。
その後、もう一度 describe を実行して確認します。目的の項目に移動できなかった場合は、ループをもう一度実行します。
ツール
デバイスのライフサイクル
list-devices→ Vega デバイスにはserial(udidとして使用)とvvdImageが表示されます。まずこれを実行して両方を取得します。boot-device {vvdImage}— SDK 管理下の単一の VVD(例:vvdImage:"tv")を起動し、serialを返します。list-devicesにすでに実行中のデバイスが表示されている場合は不要です。- VVD の停止 — シェルで
vega virtual-device stopを実行します。注意:CLI が追跡するのは、フォアグラウンドで起動した VVD のみです。そのため、boot-deviceで起動した VVD に対しては「virtual device not running」と報告され、停止できないことがあります。その VVD を再起動するには、boot-device {vvdImage, force: true}を実行します。これにより、実行中の VVD プロセスを停止してから再起動します。
アプリのライフサイクル
launch-app {udid, bundleId}—bundleId= manifest.toml のインタラクティブコンポーネントのアプリ ID(例:com.example.app.main)restart-app {udid, bundleId}— 終了してから起動しますreinstall-app {udid, bundleId, appPath}— アンインストールしてからインストールします。appPath=.vpkgdescribe {udid}→ 画面上の要素ツリーです。移動前に呼び出す、要素の検出ツールですtv-remote {udid, button}— D パッド操作です。単一キー、経路配列、またはrepeatを指定しますkeyboard {udid, text}または{udid, key:"enter"}— 先に D パッドでフィールドにフォーカスしますscreenshot {udid, scale?}—adbを介してホスト側でキャプチャします
describe
デバイス上の自動化ツールキットから取得した、入れ子になった要素ツリーです。各行には button/text/image、ラベル、id(test_id)、[clickable]、[focused]/[selected]、正規化された [0,1] のフレームが表示されます。[focused] がある場合は、現在の D パッドカーソルを示します。実際には、ツールキットは focused を false のままにして、強調表示された項目に [selected] を付けることが多いため、[focused] を報告する要素がない場合は [selected] をカーソルとして扱ってください。ツリーだけを基準に操作してください。ツリーが空の場合は、restart-app を実行して再試行します。
tv-remote
button には、単一キー または経路全体 を指定できます。キー:up/down/left/right、select、back、home、menu、playPause、rewind、fastForward。単一キー:{button:"down"}。キーを繰り返す場合:{button:"down", repeat:3}。経路全体を 1 回で実行する場合:{button:["up","right","right","select"]} — 複数手順の移動では、こちらを強く推奨します。
Fast Refresh
Debug ビルドと Metro の実行が必要です。argent は Metro に接続するだけで、Metro の起動やポートフォワーディングは行いません(どのプラットフォームでも同様です)。これらはシェルで実行してください。
- Debug
.vpkgをビルドしてインストールします:vega device install-app -p <path/to/debug.vpkg> npm start(Metro を :8081 で起動します。npx react-native startではなくnpm startを使用してください)vega device start-port-forwarding --port 8081 --forward false(リバース)vega device launch-app -a <appId>
起動前に Metro が実行されている必要があります。http://localhost:8081/json/list に Hermes React Native ターゲットが表示されることを確認してください。その後、.tsx の編集内容がライブでホットリロードされます。
トラブルシューティング
describeが空のツリーを返す →restart-appを実行します(自動化ツールキットは起動時に接続します)。その後、もう一度試してください。- キーボード/D-pad の入力が無視される → VVD 内で開発者モードを有効にします:
vsm developer-mode enable。 node_modulesを編集しても反映されない → Release ビルドを使用しています。Release ビルドの Vega アプリは JavaScript とネイティブコードを分割してデバイス上に保存するため、node_modulesのパッチが機能するのは Debug ビルドのみです。
プラットフォームに関する注意事項
- Metro はポート 8081 にのみ接続します。固定されており、変更できません。
- プロファイリング/クラッシュ →
amazon-devices-buildertools-mcpサーバー(analyze_perfetto_traces、get_app_hot_functions、symbolicate_acr)を使用してください。 - サポート対象外のツールと Vega での代替手段:
gesture-*→tv-remoteを使用します。open-url→ 接続されていません。debugger-*→ Vega では JS デバッガーはサポートされていません。これらはTool '<id>' is not supported on vega vvd.(または... is not yet implemented on vega.)というエラーになります。
ナレッジベース
search_documentationツール(amazon-devices-buildertools-mcpサーバー)で Vega のドキュメントを検索します。- コミュニティの Q&A は community.amazondeveloper.com にあります。