Local run history
Auto-discovers your STS2 save folder. Parses every .run file. Builds a private history with winrate, max ascension, character and relic stats. Nothing leaves your Mac.
STS2 co-op is friend-gated through Steam, which means today the only way to find a partner is scrolling the global Discord for ten minutes. Spire Vault is the missing piece: a live feed of who's around right now, a one-click invite, and a green "co-oping with @them" pill on both rows once a pair is locked in. Stats sync across every device you sign in on. The actual game invite still goes through Steam.
Checking who's around… · Open source on GitHub
Mega Crit's call to gate multiplayer through Steam friends is correct. It stops random griefers and keeps the experience tight. But it creates a chicken-and-egg problem: before you can play with someone, you need to already know them. If you didn't bring an STS2-loving friend to launch night, your only option today is the global Discord, and good luck filtering that for "someone at A12 who's online right now."
Spire Vault is the missing layer between "I want to play co-op" and "I have a Steam friend to play with." It doesn't host games, route invites, or replace anything Mega Crit built. It just shows you who's around, what tier they're at, and how to reach out. From there, Steam takes over and you play the game like you would today.
The whole thing is open source. The macOS app reads only files already on your computer. Co-op uses Steam OpenID, so your password never touches the server. Every line of code is on GitHub, and the full threat model is in SECURITY.md. Audit anything before you install.
Auto-discovers your STS2 save folder. Parses every .run file. Builds a private history with winrate, max ascension, character and relic stats. Nothing leaves your Mac.
One-click PNG of any run with the actual relic icons and card art baked in — not just text. Drop straight into Discord, Reddit, or X. Markdown export ships in the same modal.
Sign in with Steam, see everyone else around right now, send a canned invite. When two players accept, both rows pick up a green "Co-oping with @them" pill so the rest of the feed knows who's already matched up. STS2 multiplayer takes it from there.
Six-card KPI strip (current streak, last-10 form, PB floor, fastest win, this week, best streak), winrate-over-time chart, floor-death histogram. Filter chips on Recent Runs by character, outcome, ascension. Export to CSV anytime.
Run tracking works fully offline. Co-op uses Steam OpenID, no password ever leaves Valve. The public landing-page presence count is anonymized server-side — only signed-in users see the full roster. Cloud sync is keyed to your Steam ID and survives a clean install on any device.
MIT licensed. The macOS app, the CLI, the matchmaking server — all in one repo on GitHub. Audit it, fork it, run your own.
A small floating window that sits over Slay the Spire 2, glances at your screen when you ask, and tells you the best card to take, relic to swap, or path to push. Streamer-safe by default (invisible to OBS, Discord, Game Bar). Bring your own OpenAI or Anthropic key; nothing goes through our servers. See it in detail →
Run Coach is a small floating panel that lives over Slay the Spire 2 — the same kind of always-on-top assistant Cluely uses for code interviews, but pointed at deck-building decisions. Tap a chip, ask a question, and it reads your live save file (character, HP, gold, deck, relics, floor) and captures the current frame of your screen, then tells you exactly which card to take, which boss relic to grab, or whether to go left or right at the fork. Bring your own OpenAI or Anthropic key. Nothing routes through our servers.
Defect A6 · F12 · 57/75 · 145g), and a
420×540 chat card that unfolds when you ask for help.
Drag either to position once; it survives relaunches.
NSWindow.sharingType=.none, so
it's invisible to OBS, Discord, and QuickTime captures.
Toggle the switch under Beta → Run Coach
if you actually want it on stream.
.run JSON files that the run tracker reads.
It does not modify the game, inject DLLs, or touch process
memory. Mega Crit-friendly by construction.
Launch a Slay the Spire 2 run, then tap a chip below — Coach will read your save and give you specific advice.
Real captures from the web companion at app.spirevault.app. Every screenshot below is the actual app rendering sample data — including the image-rich Share-Run card with real relic icons and card art baked into the canvas.
STS2 multiplayer is friend-gated through Steam — no third-party tool can route those invites, and we don't try. The Vault solves the actual problem: finding someone at your level who's around right now.
Pick your platform. Mac and Windows get full native apps with run tracking, Run Coach, and Share-Run cards. The web companion covers Linux, Chromebooks, and anywhere else. All three share the same co-op feed.
Run tracker · co-op feed · Share-Run cards
Run tracker · co-op feed · Run Coach
Linux, Chromebook, anywhere with a browser
.run
Power user? Build from source
with git clone + make run (macOS) or cargo tauri build (Windows).
Sign-in is Steam OpenID — the same flow Steam uses for every other site. Your password never reaches our server. We store the minimum required for matchmaking, and the entire codebase is on GitHub.
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.
Run Coach is an opt-in floating panel inside the macOS app — a small window (260×40 pill or 420×540 chat card) that sits on top of Slay the Spire 2. When you ask it something, it grabs the current frame of your screen and sends the question + the screenshot to your chosen AI (OpenAI or Anthropic) using your own API key. Whatever the model replies with shows up in the chat. 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
any 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 visibility
under Beta → Run Coach if you do want
it on stream.
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.
Yes — same backend (Cloudflare Worker), same UI (app.spirevault.app
embedded in a WebView2), same Run Coach overlay, same BYO-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 Windows Defender SmartScreen will show "More info → Run anyway" on first launch — exactly like the macOS "right-click → Open" step. Once the installer builds reputation (~50 installs), SmartScreen clears automatically.
For the run tracker, no — it works fully offline. For co-op matchmaking you sign in via Steam OpenID, which is Valve-hosted and never sees your password. You can sign out at any time and your session disappears.
$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.
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.
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.
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.
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 macOS app makes zero network calls except to the matchmaking server (and only when you're signed in). Read the code, build it yourself if you want, file an issue if something looks wrong.
An STS run tracker for iPhone and iPad. The Vault library actually feeds its stats tab. On the App Store now.