Switch Steam, Riot Games, Battle.net, Epic Games, Ubisoft and Roblox accounts in one click. No passwords stored. Windows, macOS and Linux. Built with Tauri 2 and Svelte 5.
Note
See the wiki for the full user guide.
| Platform | Windows | macOS | Linux |
|---|---|---|---|
| Steam | ✅ | ✅ | ✅ |
| Riot Games | ✅ | ||
| Battle.net | ✅ | ✅ | |
| Epic Games | ✅ | ||
| Ubisoft Connect | ✅ | ||
| Roblox | ✅ | ||
| GOG Galaxy | |||
| Jagex Launcher | |||
| Discord |
You can request any platform to be added here: GitHub Issues.
Most of these are a JSON descriptor rather than code, so you can add a launcher of your own without compiling anything: the format, the sandbox rules and the dry run are in docs/platform-descriptors.md.
- One-click switching: pick an account, the launcher restarts already signed in. No passwords stored
- Streamer mode: automatically blurs account names and avatars when OBS, Streamlabs, XSplit, Wirecast or Twitch Studio is running
- CLI and deep links (
accshift://) for scripting, Stream Deck and automation - Personas: group one account per platform under a single identity and switch them all in one click
- Update accshift directly inside the app
- Copy any Steam game settings to another account
- Easy access to copy account info (username, SteamID64, CS2 friend code, profile URL)
- Bulk edit: edit multiple accounts at once (disable the Steam game news popup at launch, toggle do not disturb, set launch options for any game)
- Game and community ban tracking
- Switch to an account in online or invisible mode, or switch and launch any game directly (remembers the last game chosen)
- CS2 Bridge: connect any app tracking your accounts to display CS2 level, XP progression and weekly drop inside Accshift, see CS2-Bridge
- Folders, search and command palette to manage large account collections
- Color and rename account cards, add private notes, reorder by drag and drop
- UI in 7 languages (English, Spanish, French, Portuguese, Brazilian Portuguese, Russian, Simplified Chinese)
- Optional PIN lock, on app launch and after a period of inactivity
- Light, Dark and Midnight themes, light and dark acrylic variants, and an experimental Liquid Glass theme
Grab the build for your OS from Releases:
- Windows: NSIS or MSI installer
- Linux: deb, rpm or AppImage
- macOS: dmg (unsigned for now, run
xattr -cr /Applications/Accshift.apponce if Gatekeeper complains)
Accshift stores no passwords nor sensitive cookies.
Tokens and session snapshots are encrypted at rest on your machine with OS-backed protections: DPAPI on Windows, Secret Service on Linux, Keychain on macOS. The threat model, what the optional PIN lock does and does not cover, and how to report a vulnerability are in the security policy.
Usage telemetry is a handful of anonymous counters. Nothing is sent before you finish the first-launch screen, and one switch in Settings, Privacy turns it all off for good. The app is identical either way, and no feature is gated on it.
What is never sent, in any mode: account names, platform identifiers such as SteamID, passwords, tokens, cookies, persona or folder names, file paths, and your IP address. An event can say "an account was added on Steam"; it cannot say which account. What is sent is nine counters, the app and OS version, the locale, and a country code.
Everything is detailed in docs/analytics.md: the full
event list with every field, a real example payload, where the data is stored,
and how to export or delete it. The client is under
crates/accshift-core/src/telemetry/
and the server is in server/, both readable in a sitting.
pnpm install
pnpm tauri buildpnpm install
pnpm tauri devSetup, coding standards and how to propose a new platform are in the contributing guide.
accshift also ships as a command-line binary for scripting, Stream Deck
macros and AI automation. It reads and writes the same config as the GUI:
running both at once is safe thanks to an exclusive lock on mutating
operations.
accshift platforms # list platforms known to this build
accshift list <platform> # list accounts for a platform
accshift switch <platform> <account-id>Output is a table on a TTY and JSON when piped, so scripts get a stable contract without an extra flag. Install steps, every flag, the versioned JSON envelope and the exit codes are in docs/cli.md.
src/lib/ # Svelte frontend (GUI)
app/ # app lifecycle, dialogs, navigation
features/folders notifications settings
platforms/ # per-platform UI adapters
shared/components contextMenu platform ...
storage/ # client storage layer
crates/
accshift-core/ # platform logic, config, storage, OS
src/
platforms/steam riot ... # hand-written platforms
platforms/descriptor/ # JSON-described platforms and their engine
os/windows linux macos # per-OS primitives (sysinfo/open/keyring)
context.rs # AppContext trait (replaces tauri::AppHandle)
lock.rs # fs4 exclusive lock
runtime.rs # tokio block_on helper
config storage logging themes
accshift-cli/ # CLI binary (list, switch, platforms)
src-tauri/ # Tauri GUI thin wrapper
src/main.rs commands.rs app_runtime.rs tauri_context.rs
This project is not affiliated with Valve (Counter-Strike 2, Dota 2), Blizzard (Overwatch 2, Diablo IV, WoW, Call of Duty), Riot Games (Valorant, League of Legends, TFT), Epic Games (Fortnite, Rocket League), Ubisoft (Rainbow Six Siege, The Division 2), Roblox Corporation, CD PROJEKT (GOG) (Cyberpunk 2077, The Witcher 3), Jagex (RuneScape, Old School RuneScape), or Discord. Use at your own risk.


