Was macht cli-anything-slay-the-spire-ii?
Ein zustandsbehaftetes Kommandozeileninterface zur Steuerung des echten Slay the Spire 2-Spiels über den lokalen STS2_Bridge-Mod. Das CLI liest normalisierten Spielzustand und sendet Aktionsbefehle über eine lokale HTTP-API unter localhost:15526.
Installation
Dieses CLI erfordert einen Brücken-Mod, der innerhalb des Spielprozesses läuft. Sowohl das CLI als auch die Brücke werden aus demselben Repository verteilt:
https://github.com/HKUDS/CLI-Anything
1. CLI installieren
git clone https://github.com/HKUDS/CLI-Anything.git
cd CLI-Anything/slay_the_spire_ii/agent-harness
pip install -e .
2. Brücken-Mod bauen und installieren
Der Brücken-Mod ist ein .NET 9-Plugin, das kompiliert und in das Spielverzeichnis installiert werden muss. Vollständige Anweisungen finden sich in der README des Repositories, aber die Kurzfassung lautet:
cd CLI-Anything/slay_the_spire_ii/agent-harness/bridge/plugin
./build.sh
cd ../install
./install_bridge.sh
Wenn das Build-Skript das Spiel-Datenverzeichnis nicht automatisch erkennen kann, setze STS2_GAME_DATA_DIR explizit:
STS2_GAME_DATA_DIR="/path/to/data_sts2" ./build.sh
3. Mod aktivieren und überprüfen
Starte Slay the Spire 2 über Steam, aktiviere den STS2_Bridge-Mod im Mod-Manager und überprüfe dann die Verbindung:
cli-anything-sts2 state
Wenn dies JSON zurückgibt, sind CLI und Brücke verbunden.
Voraussetzungen:
- Python 3.10+
- Slay the Spire 2 (Steam) mit aktiviertem
STS2_Bridge-Mod
.NET 9 SDK (nur zum Bauen des Brücken-Mods erforderlich)
Verwendung
Grundlegende Befehle
cli-anything-sts2 state
cli-anything-sts2
cli-anything-sts2 --help
Befehlssgruppen
Zustandsinspektion
| Befehl | Beschreibung |
|---|
state | Normalisierter Zustand mit decision-Feld |
raw-state | Rohes Brücken-JSON |
Hauptmenü
| Befehl | Beschreibung |
|---|
continue-game | Einen gespeicherten Lauf fortsetzen |
start-game --character IRONCLAD --ascension 0 | Einen neuen Lauf starten |
abandon-game | Den aktuellen Spielstand aufgeben |
return-to-main-menu | Von jedem Bildschirm zurück zum Menü |
Charaktere: IRONCLAD, SILENT, DEFECT, NECROBINDER, REGENT
Kampf
| Befehl | Beschreibung |
|---|
play-card <index> [--target <enemy_id>] | Eine Karte aus der Hand ausspielen |
use-potion <slot> [--target <enemy_id>] | Einen Trank verwenden |
end-turn | Den aktuellen Zug beenden |
Karte & Raumablauf
| Befehl | Beschreibung |
|---|
choose-map <index> | Einen Kartenknoten auswählen |
proceed | Den aktuellen Raum verlassen |
Belohnungen
| Befehl | Beschreibung |
|---|
claim-reward <index> | Eine Kampfbelohnung einfordern |
pick-card-reward <index> | Eine Kartenbelohnung auswählen |
skip-card-reward | Die Kartenbelohnung überspringen |
claim-treasure-relic <index> | Eine Schatzreliquie einfordern |
select-relic <index> | Eine Reliquie auswählen |
skip-relic-selection | Reliquienauswahl überspringen |
Ereignisse & Rastplätze
| Befehl | Beschreibung |
|---|
event <index> | Eine Ereignisoption wählen |
advance-dialogue | Bei reinen Dialogereignissen voranschreiten |
rest <index> | Eine Lagerfeueraktion wählen |
Laden
| Befehl | Beschreibung |
|---|
shop-buy <index> | Im Laden kaufen |
Karten-/Reliquien-Auswahloberflächen
| Befehl | Beschreibung |
|---|
select-card <index> | Eine Karte in der Überlagerung auswählen |
confirm-selection | Die aktuelle Auswahl bestätigen |
cancel-selection | Die aktuelle Auswahl abbrechen |
combat-select-card <index> | Eine Karte während der Kampfüberlagerung auswählen |
combat-confirm-selection | Die Kampfkartenauswahl bestätigen |
Rohaktion
| Befehl | Beschreibung |
|---|
action <name> --kv key=value | Eine rohe Brückenaktion senden |
Entscheidungszustände
Der Befehl state gibt JSON mit einem decision-Feld zurück, das den aktuellen Spielbildschirm angibt. Leite deinen nächsten Befehl basierend auf diesem Wert:
| Entscheidung | Bedeutung | Typische nächste Befehle |
|---|
menu | Hauptmenü | continue-game, start-game |
combat_play | Im Kampf, dein Zug | play-card, use-potion, end-turn |
hand_select | Kartenauswahlüberlagerung | combat-select-card, combat-confirm-selection |
map_select | Kartenknotenauswahl | choose-map |
game_over | Lauf beendet | return-to-main-menu |
combat_rewards | Belohnungen nach dem Kampf | claim-reward, proceed |
card_reward | Kartenbelohnungsauswahl | pick-card-reward, skip-card-reward |
event_choice | Ereignisbildschirm | event, advance-dialogue |
rest_site | Lagerfeuer | rest |
shop | Ladenbildschirm | shop-buy, proceed |
card_select | Kartenauswahlbildschirm | select-card, confirm-selection |
relic_select | Reliquienauswahl | select-relic, skip-relic-selection |
treasure | Schatzkammer | claim-treasure-relic, proceed |
Konfiguration
| Option | Standard | Beschreibung |
|---|
--base-url | http://localhost:15526 | Brücken-API-URL |
--timeout | 10.0 | HTTP-Timeout in Sekunden |
Für KI-Agenten
- Lies immer zuerst den
state, um das decision-Feld zu erhalten.
- Lese den Zustand nach jeder Aktion erneut – Indizes und Energie ändern sich während des Kampfes.
- Überprüfe die Rückgabecodes – 0 für Erfolg, andere Werte für Fehler.
- Analysiere die Standardausgabe für JSON-Ausgabe.