Is this affiliated with Mega Crit?
No. Spire Vault is an unofficial, fan-made companion. Mega Crit owns
Slay the Spire. We don't host games, route invites, or replace anything
they built — we just help players find each other before Steam takes over.
What's the "Run Coach (Beta)" thing?
Run Coach is an opt-in floating panel that sits on top of
Slay the Spire 2 — a 260×40 pill that collapses to
a 420×540 chat card. Ask it something and it grabs the
current frame of your screen, sends the question + the
screenshot to your chosen AI (OpenAI or Anthropic) using
your own API key, and shows you what the model says
back. That's it.
It's marked Beta on purpose and ships on both macOS and Windows.
What it doesn't do: modify the game, read game
memory, hook the process, talk to a Vault-hosted AI, or spend
money on your behalf. Nothing about Run Coach changes how runs
are tracked. The overlay is streamer-safe by default (hidden
from screen recordings via
NSWindow.sharingType=.none) — toggle it
under Beta → Run Coach if you do want
it on stream.
What's the "Co-op Lobby Beta"?
Classic Co-op is the live roster you've probably seen: sign
in with Steam, see who's around, fire a canned invite. The
Lobby Beta is the alternate path. You post the run you actually
want to play — character, ascension target, vibe —
and the page shows a board of Open Run Lobbies, a Best Matches
rail picked by the server, and a request-to-join flow with
accept / decline.
Classic stays the default. Flip the Lobby Beta on under the
Beta tab (or the in-tab toggle on the Co-op page),
flip it off whenever. Same Steam sign-in, same live presence
underneath, same Steam invite to start the actual game.
Is this a mod? Could it get me banned?
No, it's not a mod. Spire Vault doesn't modify
Slay the Spire 2, doesn't inject into the game process, doesn't load
DLLs or use ModTheSpire, and doesn't touch game memory. It only reads
the .run JSON files Slay the Spire 2 itself writes to your
save folder after each run — the same files you could open in any
text editor.
Run-history readers like this have existed for the original Slay
the Spire for years (Sky Diving, Mintotaur, etc.) and are universally
accepted by Mega Crit and the community. The macOS app has read-only
access to one folder. The web companion never touches your filesystem
at all.
Is the Windows .exe the same as the Mac app?
Yes — same backend (Cloudflare Worker), same UI (app.spirevault.app
embedded in a WebView2), same Run Coach overlay, same bring-your-own-key flow, same
co-op feed. The native layer is rewritten in Rust (Tauri 2) instead of Swift, but
everything the player sees and every API call it makes is identical. Auto-updates
ship through GitHub Releases on the same tag cadence as the macOS DMG.
The one current difference: the Windows build is ad-hoc signed, so SmartScreen
will show "More info → Run anyway" on first launch — same energy as
the macOS "right-click → Open" step. Once the installer builds reputation
(~50 installs), SmartScreen clears automatically.
Do I need an account?
For the run tracker, no — it works fully offline. For co-op
you sign in via Steam OpenID, which is Valve-hosted and never sees
your password. Sign out any time and your session disappears.
What does it cost?
$0 to use. No tier, no premium, no donation
gate, no "supporter" perks dangled in front of free features. I
cover hosting (Cloudflare costs me a few dollars a month) and the
$14/year domain — that's the entire bill. It's MIT licensed, so
even if I disappear, anyone can fork the repo and keep it running
for themselves and their friends.
Can I self-host my own copy?
Yes, and the entire stack is designed for it. The marketing
site is a static page (any host works), the web companion is also
static, and the matchmaking server is a single Cloudflare Worker
with a KV namespace. The
repo
includes a Makefile that deploys all three with
wrangler; bring your own Steam Web API key and
you're done. There's no hidden binary, no proprietary service,
nothing that only works on my domain.
How does the co-op feed actually work?
You sign in with Steam, set your status (Looking · Playing ·
Idle), optionally add a Discord handle. Your client heartbeats your presence
every minute. The feed shows everyone heartbeating in the last few minutes,
with a button to open their Steam profile or copy their Discord. The actual
game session goes through Steam friends like normal.
If you opt into the Co-op Lobby Beta, the same presence layer is what
decides whether your posted lobby shows up in someone else's Open Run
Lobbies board. Drop offline, the lobby drops off the board.
Can someone impersonate me?
No. Every write to the server requires a signed Steam OpenID
verification — the server checks the signature with Valve directly.
Your session token can only be issued after that verification. Threat
model details in SECURITY.md.
Why should I trust some random tool with my Steam account?
You don't have to. Sign-in is Steam OpenID, which means your
password is typed into Steam's login page, not mine — the server
only ever sees the verified Steam ID Valve hands back. The
whole stack is on GitHub;
every outbound network call from the app is documented in
SECURITY.md.
The desktop apps make zero network calls except to the matchmaking
server, and only when you're signed in. Read the code, build it
yourself, file an issue if something looks wrong.