关于 cli-anything-slay-the-spire-ii
cli-anything-slay-the-spire-ii 通过本地 STS2_Bridge Mod 控制 Slay the Spire 2,提供有状态的命令行操作。它面向 Agent 等程序化使用场景,可读取规范化游戏状态,并执行冒险、战斗、地图和奖励操作。
主要功能
- 01读取规范化或原始游戏状态
- 02开始、继续或放弃冒险
- 03打出卡牌、使用药水和结束回合
- 04选择地图节点并处理房间
- 05领取奖励并管理选择界面
- 06交互式 REPL 与 JSON 状态
适用场景
- 01行动前检查当前决策状态
- 02自动执行冒险中的战斗操作
- 03选择地图路线、事件和营火行动
- 04以程序方式处理卡牌和遗物奖励
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-slay-the-spire-ii安装后在 Claude Code 中输入/cli-anything-slay-the-spire-ii确认已加载。
详细介绍
cli-anything-slay-the-spire-ii
一个有状态的命令行界面,用于通过本地 STS2_Bridge 模组控制真实的 Slay the Spire 2
游戏。该 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(仅在构建桥接模组时需要)
用法
基本命令
# 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
命令组
状态检查
| 命令 | 描述 |
|---|---|
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 命令返回的 JSON 中包含一个 decision 字段,表示当前
游戏画面。根据该值来路由你的下一条命令:
| Decision | 含义 | 典型的下一条命令 |
|---|---|---|
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 | Bridge API URL |
--timeout | 10.0 | HTTP 超时时间(秒) |
供 AI Agent 使用
- 始终先读取
state以获取decision字段 - 每次操作后重新读取 state - 战斗期间索引和能量会发生变化
- 检查返回码 - 0 表示成功,非零表示错误
- 解析 stdout 以获取 JSON 输出
评论
支持 Markdown