用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tegnike/ai-agent-game-streamer --skill play-game命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | play-game |
| description | ブラウザゲームを自動プレイするスキル。agent-browserを使ってローカルまたはオンラインのHTML/JSゲームをプレイします。倉庫番、オセロ、五目並べなど。 |
| allowed-tools | Bash(agent-browser:*), Bash(npm install -g agent-browser*), Bash(chmod +x*), Bash(python3 -m http.server*), Bash(lsof -i:*), Bash(kill *), Bash(mkdir -p logs*) |
ブラウザゲームを自動プレイするためのスキルです。
ゲーム情報の確認方法について:
README.md からのみ確認できますREADME.md 以外のファイル(script.js、style.css、index.html など)は読むことが禁止されていますREADME.md に記載された情報と、実際にゲームを動かして得られる情報のみを使用してください# 1. インストール確認
agent-browser --version 2>&1 || npm install -g agent-browser
# 2. バイナリに実行権限を付与(重要!)
chmod +x $(npm root -g)/agent-browser/bin/agent-browser-darwin-* 2>/dev/null
# 3. Chromiumインストール
agent-browser install 2>&1 | tail -5
npm install -g agent-browser && chmod +x $(npm root -g)/agent-browser/bin/agent-browser-darwin-* && agent-browser install
# ゲームディレクトリでサーバー起動(バックグラウンド)
cd /path/to/game && python3 -m http.server 8888 &
# --headed オプションでブラウザウィンドウを表示(ゲームの様子が見える)
agent-browser --headed open http://127.0.0.1:8888/index.html
!!!! 最重要 !!!! 絶対に
--headedオプションを付けてください。--headedを付けないとヘッドレスモード(画面非表示)で動作し、ゲームの様子が視聴者に見えません。 ヘッドレスモードでのプレイは厳禁です。必ずagent-browser --headed open ...の形式で起動してください。
mkdir -p logs
agent-browser screenshot "logs/$(date +%Y%m%d-%H%M%S)_game.png"
スクリーンショットの保存ルール:
- すべてのスクリーンショットは
logs/ディレクトリに保存してください- ファイル名は必ず
YYYYMMDD-HHMMSS_名前.png形式にしてください- 例:
logs/20260202-143025_initial.png,logs/20260202-143130_result.png- シェルでの生成:
agent-browser screenshot "logs/$(date +%Y%m%d-%H%M%S)_名前.png"- プロジェクトルートや
/tmp/に保存しないでください
# ゲームのグローバル変数を探す
agent-browser eval "typeof game"
agent-browser eval "Object.keys(game).join(', ')"
# 例: 倉庫番の場合
agent-browser eval "game.move('right')"
agent-browser eval "game.move('up')"
# 例: オセロの場合
agent-browser eval "game.handleCellClick(3, 4)"
# ゲーム状態確認
agent-browser eval "JSON.stringify({player: game.playerPos, stage: game.currentStage})"
# 移動(方向: 'up', 'down', 'left', 'right')
agent-browser eval "game.move('right')"
# ステージクリア確認
agent-browser eval "game.isCleared()"
パズルの解き方のコツ:
# 有効な手を取得
agent-browser eval "JSON.stringify(game.getValidMoves(game.currentPlayer))"
# 石を置く
agent-browser eval "game.handleCellClick(row, col)"
# ゲーム終了確認
agent-browser eval "game.gameOver"
# 石を置く
agent-browser eval "game.handleCellClick(row, col)"
# 勝者確認
agent-browser eval "game.winner"
重要: ゲーム操作の前に必ず音声読み上げの完了を待ってから次の操作を行ってください。同期XHRでTTS完了を待機します。
# ❌ 悪い例:音声を待たずに全部実行
agent-browser eval "['right', 'right', 'down', 'left'].forEach(d => game.move(d))"
# ✅ 良い例:音声完了を待ってから実行
for dir in right right down left; do
agent-browser eval "var x=new XMLHttpRequest();x.open('GET','http://localhost:3000/api/tts/wait',false);try{x.send()}catch(e){}"
agent-browser eval "game.move('$dir')"
done
# 移動配列を定義してループで実行(音声同期あり)
moves="right right down left up"
for dir in $moves; do
agent-browser eval "var x=new XMLHttpRequest();x.open('GET','http://localhost:3000/api/tts/wait',false);try{x.send()}catch(e){}"
agent-browser eval "game.move('$dir')"
done
agent-browser eval "JSON.stringify(game)" --json
| 問題 | 解決策 |
|---|---|
game が undefined | agent-browser eval "Object.keys(window).filter(k => !k.startsWith('webkit'))" でグローバル変数を確認 |
| キー操作が効かない | eval でJavaScript直接操作を使用 |
| サーバーが起動しない | lsof -i:8888 でポート使用状況を確認、kill で終了 |
| スクリーンショットが真っ白 | agent-browser wait 2000 で待機してから撮影 |
# ポート8888を使用中のプロセスを確認
lsof -i:8888
# プロセスを終了
kill $(lsof -t -i:8888)
agent-browser close