Slay the Spire 2 CLI Anything は何をしますか?
Steam版『Slay the Spire 2』をローカルのSTS2_Bridge Modを通じて制御するためのステートフルなコマンドラインインターフェースです。このCLIは、正規化されたゲーム状態を読み取り、localhost:15526のローカルHTTP APIを介してアクションコマンドを送信します。
インストール
このCLIを使用するには、ゲームプロセス内で動作するブリッジModが必要です。CLIとブリッジはどちらも同じリポジトリから配布されています。
https://github.com/HKUDS/CLI-Anything
1. CLIのインストール
git clone https://github.com/HKUDS/CLI-Anything.git
cd CLI-Anything/slay_the_spire_ii/agent-harness
pip install -e .
2. ブリッジModのビルドとインストール
ブリッジModは.NET 9プラグインであり、コンパイルしてゲームディレクトリにインストールする必要があります。完全な手順はリポジトリのREADMEにありますが、簡易版は以下の通りです。
cd CLI-Anything/slay_the_spire_ii/agent-harness/bridge/plugin
./build.sh
cd ../install
./install_bridge.sh
ビルドスクリプトがゲームデータディレクトリを自動検出できない場合は、STS2_GAME_DATA_DIRを明示的に設定してください。
STS2_GAME_DATA_DIR="/path/to/data_sts2" ./build.sh
3. Modを有効にして確認
SteamでSlay the Spire 2を起動し、ModマネージャーでSTS2_Bridge Modを有効にした後、接続を確認します。
cli-anything-sts2 state
JSONが返ってくれば、CLIとブリッジは接続されています。
前提条件:
- Python 3.10+
- Slay the Spire 2 (Steam) で
STS2_Bridge Modが有効になっていること
.NET 9 SDK(ブリッジModのビルドにのみ必要)
使用方法
基本コマンド
cli-anything-sts2 state
cli-anything-sts2
cli-anything-sts2 --help
コマンドグループ
状態確認
| コマンド | 説明 |
|---|
state | decisionフィールドを含む正規化された状態 |
raw-state | ブリッジの生のJSON |
メインメニュー
| コマンド | 説明 |
|---|
continue-game | 保存されたランを続行 |
start-game --character IRONCLAD --ascension 0 | 新しいランを開始 |
abandon-game | 現在のセーブを破棄 |
return-to-main-menu | 任意の画面からメニューに戻る |
キャラクター: IRONCLAD, SILENT, DEFECT, NECROBINDER, REGENT
戦闘
| コマンド | 説明 |
|---|
play-card <index> [--target <enemy_id>] | 手札からカードをプレイ |
use-potion <slot> [--target <enemy_id>] | ポーションを使用 |
end-turn | 現在のターンを終了 |
マップと部屋の移動
| コマンド | 説明 |
|---|
choose-map <index> | マップノードを選択 |
proceed | 現在の部屋を離れる |
報酬
| コマンド | 説明 |
|---|
claim-reward <index> | 戦闘報酬を受け取る |
pick-card-reward <index> | カード報酬を選択 |
skip-card-reward | カード報酬をスキップ |
claim-treasure-relic <index> | 宝箱のレリックを受け取る |
select-relic <index> | レリックを選択 |
skip-relic-selection | レリック選択をスキップ |
イベントと休憩場所
| コマンド | 説明 |
|---|
event <index> | イベントの選択肢を選ぶ |
advance-dialogue | ダイアログのみのイベントを進める |
rest <index> | キャンプファイヤーのアクションを選ぶ |
ショップ
| コマンド | 説明 |
|---|
shop-buy <index> | ショップで購入 |
カード/レリック選択オーバーレイ
| コマンド | 説明 |
|---|
select-card <index> | オーバーレイでカードを選択 |
confirm-selection | 現在の選択を確定 |
cancel-selection | 現在の選択をキャンセル |
combat-select-card <index> | 戦闘オーバーレイ中にカードを選択 |
combat-confirm-selection | 戦闘カードの選択を確定 |
生のアクション
| コマンド | 説明 |
|---|
action <name> --kv key=value | 生のブリッジアクションを送信 |
決定状態
stateコマンドは、現在のゲーム画面を示すdecisionフィールドを含むJSONを返します。この値に基づいて次のコマンドを決定してください。
| 決定 | 意味 | 次に使用する典型的なコマンド |
|---|
menu | メインメニュー | continue-game, start-game |
combat_play | 戦闘中、自分のターン | play-card, use-potion, end-turn |
hand_select | カード選択オーバーレイ | combat-select-card, combat-confirm-selection |
map_select | マップノード選択 | choose-map |
game_over | ラン終了 | return-to-main-menu |
combat_rewards | 戦闘後報酬 | claim-reward, proceed |
card_reward | カード報酬選択 | pick-card-reward, skip-card-reward |
event_choice | イベント画面 | event, advance-dialogue |
rest_site | キャンプファイヤー | rest |
shop | ショップ画面 | shop-buy, proceed |
card_select | カード選択画面 | select-card, confirm-selection |
relic_select | レリック選択 | select-relic, skip-relic-selection |
treasure | 宝の部屋 | claim-treasure-relic, proceed |
設定
| オプション | デフォルト値 | 説明 |
|---|
--base-url | http://localhost:15526 | ブリッジAPIのURL |
--timeout | 10.0 | HTTPタイムアウト(秒) |
AIエージェント向け
- 常に最初に
stateを読み取り、decisionフィールドを取得してください。
- 各アクションの後に
stateを再読み取りしてください。戦闘中はインデックスやエネルギーが変化します。
- リターンコードを確認してください。0は成功、非ゼロはエラーです。
- stdoutをパースしてJSON出力を取得してください。