cli-anything-slay-the-spire-ii
cli-anything-slay-the-spire-ii
A stateful command-line interface for controlling the real Slay the Spire 2
game through the local STS2_Bridge mod. The CLI reads normalized game state
and sends action commands via a local HTTP API at localhost:15526.
Installation
This CLI requires a bridge mod that runs inside the game process. Both the CLI and the bridge are distributed from the same repository:
https://github.com/HKUDS/CLI-Anything
1. Install the CLI
git clone https://github.com/HKUDS/CLI-Anything.git
cd CLI-Anything/slay_the_spire_ii/agent-harness
pip install -e .
2. Build and install the bridge mod
The bridge mod is a .NET 9 plugin that must be compiled and installed into
the game directory. Full instructions are in the repository README, but the
short version is:
cd CLI-Anything/slay_the_spire_ii/agent-harness/bridge/plugin
./build.sh
cd ../install
./install_bridge.sh
If the build script cannot auto-detect the game data directory, set
STS2_GAME_DATA_DIR explicitly:
STS2_GAME_DATA_DIR="/path/to/data_sts2" ./build.sh
3. Enable the mod and verify
Launch Slay the Spire 2 via Steam, enable the STS2_Bridge mod in the mod
manager, then verify the connection:
cli-anything-sts2 state
If this returns JSON, the CLI and bridge are connected.
Prerequisites:
- Python 3.10+
- Slay the Spire 2 (Steam) with
STS2_Bridgemod enabled .NET 9 SDK(only needed to build the bridge mod)
Usage
Basic Commands
# Read normalized game state (always start here)
cli-anything-sts2 state
# Start interactive REPL mode (default)
cli-anything-sts2
# Show all available commands
cli-anything-sts2 --help
Command Groups
State Inspection
| Command | Description |
|---|---|
state |
Normalized state with decision field |
raw-state |
Raw bridge JSON |
Main Menu
| Command | Description |
|---|---|
continue-game |
Continue a saved run |
start-game --character IRONCLAD --ascension 0 |
Start a new run |
abandon-game |
Abandon the current save |
return-to-main-menu |
Return to menu from any screen |
Characters: IRONCLAD, SILENT, DEFECT, NECROBINDER, REGENT
Combat
| Command | Description |
|---|---|
play-card <index> [--target <enemy_id>] |
Play a card from hand |
use-potion <slot> [--target <enemy_id>] |
Use a potion |
end-turn |
End the current turn |
Map & Room Flow
| Command | Description |
|---|---|
choose-map <index> |
Select a map node |
proceed |
Leave the current room |
Rewards
| Command | Description |
|---|---|
claim-reward <index> |
Claim a combat reward |
pick-card-reward <index> |
Pick a card reward |
skip-card-reward |
Skip the card reward |
claim-treasure-relic <index> |
Claim a treasure relic |
select-relic <index> |
Select a relic |
skip-relic-selection |
Skip relic selection |
Events & Rest Sites
| Command | Description |
|---|---|
event <index> |
Choose an event option |
advance-dialogue |
Advance dialogue-only events |
rest <index> |
Choose a campfire action |
Shop
| Command | Description |
|---|---|
shop-buy <index> |
Buy from the shop |
Card/Relic Selection Overlays
| Command | Description |
|---|---|
select-card <index> |
Select a card in overlay |
confirm-selection |
Confirm the current selection |
cancel-selection |
Cancel the current selection |
combat-select-card <index> |
Select a card during combat overlay |
combat-confirm-selection |
Confirm combat card selection |
Raw Action
| Command | Description |
|---|---|
action <name> --kv key=value |
Send a raw bridge action |
Decision States
The state command returns JSON with a decision field indicating the current
game screen. Route your next command based on this value:
| Decision | Meaning | Typical Next Commands |
|---|---|---|
menu |
Main menu | continue-game, start-game |
combat_play |
In combat, your turn | play-card, use-potion, end-turn |
hand_select |
Card selection overlay | combat-select-card, combat-confirm-selection |
map_select |
Map node selection | choose-map |
game_over |
Run ended | return-to-main-menu |
combat_rewards |
Post-combat rewards | claim-reward, proceed |
card_reward |
Card reward pick | pick-card-reward, skip-card-reward |
event_choice |
Event screen | event, advance-dialogue |
rest_site |
Campfire | rest |
shop |
Shop screen | shop-buy, proceed |
card_select |
Card selection screen | select-card, confirm-selection |
relic_select |
Relic selection | select-relic, skip-relic-selection |
treasure |
Treasure room | claim-treasure-relic, proceed |
Configuration
| Option | Default | Description |
|---|---|---|
--base-url |
http://localhost:15526 |
Bridge API URL |
--timeout |
10.0 |
HTTP timeout in seconds |
For AI Agents
- Always read
statefirst to get thedecisionfield - Re-read state after each action - indices and energy change during combat
- Check return codes - 0 for success, non-zero for errors
- Parse stdout for JSON output
More from hkuds/cli-anything
cli-anything
Use when the user wants Codex to build, refine, test, or validate a CLI-Anything harness for a GUI application or source repository. Adapts the CLI-Anything methodology to Codex without changing the generated Python harness format.
1.1Kcli-hub-meta-skill
>-
520cli-anything-blender
>-
181cli-anything-obsidian
>-
169cli-anything-drawio
>-
160cli-anything-browser
Browser automation CLI using DOMShell MCP server. Maps Chrome's Accessibility Tree to a virtual filesystem for agent-native navigation.
148