Free · Open source · No signup

Find a Slay the Spire 2
co‑op partner at your skill level.

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

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 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.

What it does

One app. Two products. Zero account required.

📜

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.

🎴

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.

🤝

Co-op partner finder + pair pills

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.

📊

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

MIT licensed. The macOS app, the CLI, the matchmaking server — all in one repo on GitHub. Audit it, fork it, run your own.

🪄
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 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.

  • 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 rendering sample data — including the image-rich Share-Run card with real relic icons and card art baked into the canvas.

Overview tab — compact painted banner, 6 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
Image-rich Share-Run card with actual relic icons and card art for every entry, character portrait, victory/defeat badge, and platform-recognizable Spire Vault footer
Share card · real relic icons + card art, drop into Discord/Reddit/X
Run detail modal — character portrait, full stats, every relic with its icon, every card in the final deck with its art
Run detail · relics + final deck rendered with real art
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-to-inspect modal
Live capture of the co-op presence feed at app.spirevault.app
Co-op feed · live presence at app.spirevault.app
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 never leaves Valve.
  2. 2
    See who's online. Live feed of every Vault user with their tier, status, and reach-out handles.
  3. 3
    Reach out. One click opens their Steam profile, copies their Discord, or fires a friend request.
  4. 4
    Play. Coordinate over Steam or Discord, host the STS2 multiplayer game, send the in-game invite — the same way you would today.
Install

Three paths in. All free.

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.

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
  • One-click PNG and Markdown share cards for any run
  • Run Coach (Beta) — opt-in, BYO 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 — Steam + Discord reach-outs
  • Run Coach (Beta) — same panel, BYO 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 + image-rich Share-Run cards
  • Sign in with Steam — same identity, same live feed
  • Zero install, zero download, works on Chromebooks
Open in browser

No download required. Chrome on Windows can 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 Steam Web API)
  • The status, note, and optional Discord handle you type into the app
  • A session token for 30 days; sign-out drops it instantly
  • Optional: your normalized run history, keyed to your Steam ID, when you opt into cloud sync.

What stays on your machine

  • Your raw STS2 save files (we read them; we never upload them)
  • Card-by-card pickrate detail and per-run timing data
  • Anything at all when you haven't signed into 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 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.

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 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.

Do I need an account?

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.

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.

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 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.

Also from me — for iOS Ascension Companion

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