Free · Open source · No signup

Your Slay the Spire 2 stats.
And a co‑op partner at your level.

Drop your save folder in once. The Vault parses every .run file and hands you back winrate, current streak, PB floor, per-character splits, every fight filterable. Sign in with Steam and the same app shows you who else is around right now looking for a co-op run. Free, no signup, your saves stay on your machine. The actual game invite still goes through Steam — we just help you find each other.

Checking who's around… · Open source on GitHub

The Vault
The Vault Overview tab — compact painted banner, KPI strip with current streak / last-10 form / PB floor / fastest win, winrate hero, per-character breakdown
Why this exists

Because finding someone to play with shouldn't take an hour.

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 pushing A10 who's online right now."

Spire Vault sits 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. Steam takes it from there — same Steam invite, same in-game experience.

The whole thing is open source. The desktop apps only read 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.

What it does

One app. Two products. Zero account required.

📜

Drop your save folder. Done.

Points at your STS2 save folder, parses every .run file in it, builds a private history out of the lot. Winrate, max ascension, character splits, every relic you've touched. No upload, no signup, nothing leaves your computer. Re-scans silently in the background every 30 seconds.

🎴

Image-rich Share-Run cards

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.

🤝
CLASSIC + LOBBY BETA

Two ways to find a co-op partner

Classic Co-op is the live roster — sign in with Steam, see who's around, fire a canned invite. Lobby Beta is the new path: post the run you actually want to play (character + ascension target), browse Open Run Lobbies, check Best Matches, accept or decline. Both feeds run side by side, both end in a Steam invite, both are free.

📊

Real stats, not vibes

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.

🔒

Privacy you can read in the source

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.

Open source, end to end

MIT licensed. macOS app, Windows app, web companion, the matchmaking Worker — all in one repo on GitHub. Read it, fork it, host your own. No hidden binary, no proprietary service.

🪄
BETA · macOS + Windows · BYO KEY

Run Coach — ask what to play next

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 →

BETA Run Coach · macOS & Windows

A second pair of eyes on your run, sitting right above the game.

Run Coach is a small always-on-top panel that lives over Slay the Spire 2 — same idea as Cluely for code interviews, but pointed at deck-building decisions. Tap a chip, ask a question. It reads your live save (character, HP, gold, deck, relics, floor) and grabs the current frame of your screen, then tells you exactly which card to pick, 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.

  • Two states, one panel. A 260×40 status pill that shows your live run summary (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.
  • Streamer-safe by default. The window sets 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.
  • Context-aware chips, not generic prompts. ⌘⏎ Assist auto-detects your current situation (combat, map, shop, event) and gives the right advice without you picking a chip. The explicit chips ("Card pick", "Boss relic", "Shop", "Path", "Event", "Fight", "Plan") add structured context — Path in particular reads the map screenshot and tells you the exact fork direction to take (LEFT, RIGHT, or straight) with reasoning, not just a generic "elites are next" observation.
  • Bring your own key, no middleman. Pick OpenAI or Anthropic, paste your API key into the panel. Calls go directly from your Mac to the chosen provider. Spire Vault never sees your prompts, your screenshots, or your key — and there's nothing to bill you for.
  • Not a mod. Not a memory hook. Run Coach is a SwiftUI panel. It reads the same .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.
Run Coach collapsed pill
Run Coach Anthropic · claude-sonnet-4-6
BETA
Run Coach is ready.

Launch a Slay the Spire 2 run, then tap a chip below — Coach will read your save and give you specific advice.

Ask the Coach about your run…
Chat card · unfolds from the pill on demand
Looks the part

Design that doesn't fight you.

Real captures from the web companion at app.spirevault.app. Every screenshot below is the actual app on sample data — including the Share-Run card, which renders real relic icons and card art straight into the canvas.

Overview tab — six KPI cards (current streak, last-10 form, PB floor, fastest win, this week, best streak), winrate hero, highest-ascension panel
Overview · KPI strip, winrate hero, highest-ascension panel
Share-Run card with relic icons and final-deck card art rendered onto the canvas, character portrait, victory or defeat badge, Spire Vault footer
Share card · relic icons + deck art baked in, paste into Discord
Run detail modal — character portrait, full stats, every relic with its icon, every card in the final deck with its art
Run detail · every relic + every card in the final deck
Characters tab — winrate cards for every STS2 character with run counts and per-character winrate trend
Characters · per-character winrate at a glance
Recent Runs tab — filter chips by character, outcome, ascension; search; sortable run list
Recent Runs · filter chips, click any row to inspect
Live capture of the Classic Co-op presence feed at app.spirevault.app
Co-op feed · live presence, signed in with Steam
Co-op, demystified

Find people. Then play with them.

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.

  1. 1
    Sign in with Steam. Official OpenID. Your password is typed into Steam's login page, never ours.
  2. 2
    See who's online. Live roster of every signed-in Vault user with their tier, status, and reach-out handles.
  3. 3
    Reach out. One click opens their Steam profile, copies their Discord handle, or fires a friend request.
  4. 4
    Play. Coordinate over Steam or Discord, host the STS2 lobby, send the in-game invite — same as you would today.
Install

Three ways in. All free.

Pick your platform. Mac and Windows get native apps with run tracking, Run Coach, and Share-Run cards. The web companion covers Linux, Chromebooks, and anywhere else with a browser. All three share the same co-op feed and the same stats — sign in once, your runs sync across every device.

Native macOS app

Run tracker · co-op feed · Share-Run cards

  • Reads your STS2 save folder, computes Vault stats locally
  • Live co-op feed with Steam + Discord reach-outs (Lobby Beta optional)
  • One-click PNG and Markdown share cards for any run
  • Run Coach (Beta) — opt-in, bring your own API key
  • In-app updates · macOS 13+, Apple Silicon and Intel
Download .dmg v0.9.9

Ad-hoc signed. First launch: right-click → Open. Auto-updates from Vault → Check for Updates… after that.

Native Windows app

Run tracker · co-op feed · Run Coach

  • Auto-detects STS2 saves in %APPDATA%\SlayTheSpire2
  • Same live co-op feed — Classic and Lobby Beta both work
  • Run Coach (Beta) — same panel, bring your own API key
  • OBS / Game Bar invisible by default (WDA_EXCLUDEFROMCAPTURE)
  • Auto-updates · Windows 10/11, x64
Download .exe v0.9.9

SmartScreen may prompt "More info → Run anyway" on first launch (no EV cert yet). Same experience as the macOS right-click requirement.

Web companion

Linux, Chromebook, anywhere with a browser

  • Full run tracker — points at your STS2 folder, parses every .run
  • KPI strip, winrate chart, Share-Run cards with real card art
  • Sign in with Steam — same identity, same live feed, same Lobby Beta
  • Cross-device sync — your stats follow you between Mac, Windows, browser
  • Zero install, zero download, works on Chromebooks and Linux
Open in browser

No download. Chrome / Edge read your STS2 save folder directly via the File System Access API.

Power user? Build from source with git clone + make run (macOS) or cargo tauri build (Windows).

Privacy & trust

You can audit every line.

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.

What goes on the server

  • Your verified Steam ID, persona, and avatar URL (from the Steam Web API)
  • The status, note, and optional Discord handle you type into the app
  • A session token good for 30 days; sign-out drops it instantly
  • Optional: your normalized run history, keyed to your Steam ID, only when you opt into cloud sync

What stays on your machine

  • The raw STS2 save files (we read them; we never upload them)
  • Card-by-card pick-rate detail and per-run timing data
  • Anything at all when you haven't signed in for co-op
  • Your Discord chat, Steam friends list, anything Steam-account-adjacent that isn't Steam ID + persona + avatar
View source on GitHub → Read SECURITY.md →
FAQ

Common questions.

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.

Also from me — for iOS Ascension Companion

STS run tracker for iPhone and iPad. The Vault parsing library feeds its stats tab. On the App Store now.