Que fait cli-anything-slay-the-spire-ii ?
Une interface en ligne de commande avec état pour contrôler le jeu réel Slay the Spire 2 via le mod local STS2_Bridge. Le CLI lit l'état normalisé du jeu et envoie des commandes d'action via une API HTTP locale à localhost:15526.
Installation
Ce CLI nécessite un mod de pont qui tourne à l'intérieur du processus du jeu. Le CLI et le pont sont tous deux distribués à partir du même dépôt :
https://github.com/HKUDS/CLI-Anything
1. Installer le CLI
git clone https://github.com/HKUDS/CLI-Anything.git
cd CLI-Anything/slay_the_spire_ii/agent-harness
pip install -e .
2. Compiler et installer le mod de pont
Le mod de pont est un plugin .NET 9 qui doit être compilé et installé dans le répertoire du jeu. Les instructions complètes se trouvent dans le README du dépôt, mais la version courte est :
cd CLI-Anything/slay_the_spire_ii/agent-harness/bridge/plugin
./build.sh
cd ../install
./install_bridge.sh
Si le script de build ne peut pas détecter automatiquement le répertoire des données du jeu, définissez explicitement STS2_GAME_DATA_DIR :
STS2_GAME_DATA_DIR="/chemin/vers/data_sts2" ./build.sh
3. Activer le mod et vérifier
Lancez Slay the Spire 2 via Steam, activez le mod STS2_Bridge dans le gestionnaire de mods, puis vérifiez la connexion :
cli-anything-sts2 state
Si cela renvoie du JSON, le CLI et le pont sont connectés.
Prérequis :
- Python 3.10+
- Slay the Spire 2 (Steam) avec le mod
STS2_Bridge activé
.NET 9 SDK (uniquement nécessaire pour compiler le mod de pont)
Utilisation
Commandes de base
cli-anything-sts2 state
cli-anything-sts2
cli-anything-sts2 --help
Groupes de commandes
Inspection de l'état
| Commande | Description |
|---|
state | État normalisé avec le champ decision |
raw-state | JSON brut du pont |
Menu principal
| Commande | Description |
|---|
continue-game | Continuer une partie sauvegardée |
start-game --character IRONCLAD --ascension 0 | Démarrer une nouvelle partie |
abandon-game | Abandonner la partie en cours |
return-to-main-menu | Revenir au menu depuis n'importe quel écran |
Personnages : IRONCLAD, SILENT, DEFECT, NECROBINDER, REGENT
Combat
| Commande | Description |
|---|
play-card <index> [--target <enemy_id>] | Jouer une carte de la main |
use-potion <slot> [--target <enemy_id>] | Utiliser une potion |
end-turn | Terminer le tour actuel |
Carte et flux des salles
| Commande | Description |
|---|
choose-map <index> | Sélectionner un nœud de la carte |
proceed | Quitter la salle actuelle |
Récompenses
| Commande | Description |
|---|
claim-reward <index> | Réclamer une récompense de combat |
pick-card-reward <index> | Choisir une récompense de carte |
skip-card-reward | Passer la récompense de carte |
claim-treasure-relic <index> | Réclamer un relique de trésor |
select-relic <index> | Sélectionner un relique |
skip-relic-selection | Passer la sélection de relique |
Événements & Sites de repos
| Commande | Description |
|---|
event <index> | Choisir une option d'événement |
advance-dialogue | Avancer les événements de dialogue uniquement |
rest <index> | Choisir une action au feu de camp |
Boutique
| Commande | Description |
|---|
shop-buy <index> | Acheter à la boutique |
Superpositions de sélection de cartes/reliques
| Commande | Description |
|---|
select-card <index> | Sélectionner une carte en superposition |
confirm-selection | Confirmer la sélection actuelle |
cancel-selection | Annuler la sélection actuelle |
combat-select-card <index> | Sélectionner une carte pendant la superposition de combat |
combat-confirm-selection | Confirmer la sélection de carte en combat |
Action brute
| Commande | Description |
|---|
action <name> --kv key=value | Envoyer une action brute au pont |
États de décision
La commande state renvoie du JSON avec un champ decision indiquant l'écran actuel du jeu. Acheminez votre commande suivante en fonction de cette valeur :
| Decision | Signification | Commandes suivantes typiques |
|---|
menu | Menu principal | continue-game, start-game |
combat_play | En combat, votre tour | play-card, use-potion, end-turn |
hand_select | Superposition de sélection de carte | combat-select-card, combat-confirm-selection |
map_select | Sélection de nœud de carte | choose-map |
game_over | Partie terminée | return-to-main-menu |
combat_rewards | Récompenses post-combat | claim-reward, proceed |
card_reward | Choix de récompense de carte | pick-card-reward, skip-card-reward |
event_choice | Écran d'événement | event, advance-dialogue |
rest_site | Feu de camp | rest |
shop | Écran de boutique | shop-buy, proceed |
card_select | Écran de sélection de carte | select-card, confirm-selection |
relic_select | Sélection de relique | select-relic, skip-relic-selection |
treasure | Salle au trésor | claim-treasure-relic, proceed |
Configuration
| Option | Valeur par défaut | Description |
|---|
--base-url | http://localhost:15526 | URL de l'API du pont |
--timeout | 10.0 | Délai d'attente HTTP en secondes |
Pour les agents IA
- Lisez toujours
state en premier pour obtenir le champ decision
- Relisez l'état après chaque action - les indices et l'énergie changent pendant le combat
- Vérifiez les codes de retour - 0 pour succès, non nul pour erreurs
- Analysez la sortie standard pour la sortie JSON