A Chrome extension for people whose tools refuse to log in twice
Session Stash keeps encrypted snapshots of cookies and localStorage for every account you use, synced through a Cloudflare KV namespace you own.
No extra browser profiles, no third-party session server. Between work, life, and the client accounts you keep mixing up, one keystroke is enough.
Most of the web assumes you are one person. ChatGPT, Claude, GitHub, Figma, Linear, Stripe: not one of them will hold a second account in the same tab. Every workaround is a trade against something I wasn't willing to give up.
If you've tried all four and still end up pasting 2FA codes into an incognito window, this one is for you.
Session Stash has no backend of its own. Your cookies are encrypted by a key derived from your passphrase (600k PBKDF2 rounds, AES-GCM). The resulting ciphertext is written to a Cloudflare KV namespace that belongs to your Cloudflare account. The extension author operates no server, stores no data, and holds no keys.
No server of ours sits between these two boxes.
Rotate your Cloudflare token and the extension stops syncing. You hold the only credential.
The verifier on unlock gates every decrypt; a wrong passphrase never silently proceeds.
Read the full crypto module on GitHub →The quick-switcher. Open with ⌥⇧S, pick an account, hit enter. Closes itself. Meant to feel like a keyboard shortcut, not an app.

A column anchored to your window, drill-in from site to account. Rename, delete, mark the active one with a green dot. One drawer per origin; github.com and chatgpt.com never mix.

Your Cloudflare account ID, KV namespace, scoped API token, auto-lock interval, theme. The only surface that touches network configuration.

Install from the Chrome Web Store, point the options page at a Cloudflare KV namespace you control, pick a passphrase. The extension does the rest.
Prefer to self-host? Clone ianchenx/session-stash, then run bun run build. The MV3 zip drops in build/chrome-mv3-prod/, ready for Load unpacked.