cli-anything-slay-the-spire-ii은(는) 무엇을 하나요?
실제 Slay the Spire 2 게임을 로컬 STS2_Bridge 모드를 통해 제어하는 상태 기반 명령줄 인터페이스입니다. CLI는 정규화된 게임 상태를 읽고 localhost:15526의 로컬 HTTP API를 통해 액션 명령을 전송합니다.
설치
이 CLI는 게임 프로세스 내에서 실행되는 브릿지 모드가 필요합니다. 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. 브릿지 모드 빌드 및 설치
브릿지 모드는 .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. 모드 활성화 및 확인
Steam을 통해 Slay the Spire 2를 실행하고, 모드 관리자에서 STS2_Bridge 모드를 활성화한 후 연결을 확인합니다:
cli-anything-sts2 state
JSON이 반환되면 CLI와 브릿지가 연결된 것입니다.
필수 조건:
- Python 3.10+
- Slay the Spire 2 (Steam)와
STS2_Bridge 모드 활성화
.NET 9 SDK (브릿지 모드 빌드 시에만 필요)
사용법
기본 명령어
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 필드를 확인하세요
- 각 액션 후 상태를 다시 읽으세요 - 전투 중 인덱스와 에너지가 변경됩니다
- 반환 코드를 확인하세요 - 0은 성공, 0이 아니면 오류입니다
- stdout을 파싱하여 JSON 출력을 확인하세요