/cli-anything-slay-the-spire-ii
Command-line interface for Slay the Spire 2 - Control the real game through a local bridge mod HTTP API. Reads normalized game state and sends action commands for combat, navigation, rewards, and menu management.
$ npx -y skills add HKUDS/CLI-Anything --skill cli-anything-slay-the-spire-ii --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/cli-anything-slay-the-spire-ii
Context preview
The summary Claude sees to decide when to auto-load this skill.
Command-line interface for Slay the Spire 2 - Control the real game through a local bridge mod HTTP API. Reads normalized game state and sends action commands for combat, navigation, rewards, and menu management.
SKILL.md
cli-anything-slay-the-spire-ii.SKILL.mdname: "cli-anything-slay-the-spire-ii"
description: >-
Command-line interface for Slay the Spire 2 - Control the real game through a local bridge mod HTTP API. Reads normalized game state and sends action commands for combat, navigation, rewards, and menu management.
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_Bridge` mod 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
1. **Always read `state` first** to get the `decision` field 2. **Re-read state after each action** - indices and energy change during combat 3. **Check return codes** - 0 for success, non-zero for errors 4. **Parse stdout** for JSON output
Read more
name: "cli-anything-slay-the-spire-ii" description: >- Command-line interface for Slay the Spire 2 - Control the real game through a local bridge mod HTTP API. Reads normalized game state and sends action commands for combat, navigation, rewards, and menu management.
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_Bridge` mod 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
1. **Always read `state` first** to get the `decision` field 2. **Re-read state after each action** - indices and energy change during combat 3. **Check return codes** - 0 for success, non-zero for errors 4. **Parse stdout** for JSON output
"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/
Repo: HKUDS/CLI-Anything
Other skills on cli-anything.
- /cli-anything-firefly-iii
Firefly III CLI - Personal finance management via CLI-Anything
Open skill - /cli-anything-openrefine
Use OpenRefine through an agent-native CLI for importing messy data, applying JSON operation histories, inspecting rows, exporting cleaned data, and managing session undo/redo.
Open skill - /cli-anything-adguardhome
Command-line interface for AdGuard Home - Network-wide ad blocking and DNS management via AdGuard Home REST API. Designed for AI agents and power users who need to manage filtering, DNS rewrites, clients, DHCP, and query logs without a GUI.
Open skill - /cli-anything-anygen
Command-line interface for Anygen - A stateful command-line interface for AnyGen OpenAPI — generate professional slides, documents, webs...
Open skill - /cli-anything-audacity
Command-line interface for Audacity - A stateful command-line interface for audio editing, following the same patterns as the GIMP and Ble...
Open skill - /cli-anything-blender
Command-line interface for Blender - A stateful command-line interface for 3D scene editing, following the same patterns as the GIMP CLI ...
Open skill

