Skip to content

Security

meetsu edited this page Jul 11, 2026 · 6 revisions

Security & Data

In short

  • Your accounts and settings stay on your computer.
  • accshift never asks for or stores your passwords.
  • Sensitive bits (Steam Web API key, Roblox login cookie) are encrypted using your operating system's built-in vault (Windows DPAPI, macOS Keychain, or Linux Secret Service / KWallet). Only your user account on this PC can decrypt them.
  • The only outbound traffic is what you ask for: signing into a game launcher, optional update checks, and optional telemetry (see Telemetry). All of that can be disabled.

The rest of this page is reference detail: paths, exact backends, and what the threat model is.


Where data lives

Windows

Data Path
Config %APPDATA%\com.accshift.desktop\state\
Logs %APPDATA%\com.accshift.desktop\logs\
User settings and themes %APPDATA%\com.accshift.desktop\user\
Platform snapshots %LOCALAPPDATA%\com.accshift.desktop\platforms\
Roblox accounts %LOCALAPPDATA%\com.accshift.desktop\platforms\roblox\accounts.json
Migration backups %LOCALAPPDATA%\com.accshift.desktop\backups\pre-migration\

Linux

Data Path
Config ~/.config/com.accshift.desktop/state/
Logs ~/.config/com.accshift.desktop/logs/
User settings and themes ~/.config/com.accshift.desktop/user/
Platform snapshots ~/.local/share/com.accshift.desktop/platforms/
Migration backups ~/.local/share/com.accshift.desktop/backups/pre-migration/

Honours $XDG_CONFIG_HOME and $XDG_DATA_HOME when set.

macOS

Data Path
Everything ~/Library/Application Support/com.accshift.desktop/ (with the same subfolders: state/, logs/, user/, platforms/, backups/pre-migration/)

Encryption

OS Backend What it protects
Windows DPAPI (user-scoped) Steam Web API key, Roblox .ROBLOSECURITY cookies
Linux Secret Service via the keyring crate (GNOME Keyring, KWallet, or any compatible daemon) Same secrets, where applicable
macOS Keychain via the keyring crate Same secrets, where applicable

Threat model: secrets are bound to your user session. Copying the config file to another machine does not yield decryptable secrets, because the OS key store will not surface them to a different user.

Service id used by the keyring backends: com.accshift.desktop. Entries appear grouped in keyring UIs.

Riot and Ubisoft session files are stored as captured (not separately encrypted). They contain tokens that are only valid on the originating machine; moving them does not transfer the session.

GOG Galaxy, Jagex Launcher and Discord session snapshots are encrypted at rest with a key held in the OS vault above. accshift never parses or decrypts their contents beyond restoring them in place.

PIN lock

Optional 4-digit PIN. When enabled with an inactivity blur delay, the window blurs after the configured timeout. Failed attempts add a short delay before the next try.

Configure in Settings > Privacy: enable the PIN, set the 4 digits, set the inactivity timeout in seconds (0 disables auto-blur but keeps the PIN gate).

Data migration

When the on-disk layout changes between versions, accshift migrates data on startup. The previous file is copied into …/backups/pre-migration/<timestamp>/ before being moved. You can roll back by restoring from there.

Process lock

Mutating platform operations (switch, forget, capture) take an exclusive file lock. The GUI and CLI share the same lock, so they cannot collide. The lock has a 2-second timeout; if it is contended, the second caller fails fast rather than queueing.

What leaves your machine

By default, nothing. Operations that talk to remote services:

  • Steam Web API (when you set an API key for ban or profile lookups).
  • Roblox login (.ROBLOSECURITY exchanged for an auth ticket).
  • Riot, Battle.net, Epic, Ubisoft Connect, GOG Galaxy, Jagex Launcher, Discord: only the operations you start (launching the official client, etc.).
  • Roblox session health check (a lightweight authenticated ping to users.roblox.com to flag expired sessions).
  • Tauri auto-updater, if you keep it enabled (see Updates).
  • Telemetry, if you opt in (see Telemetry).

Account credentials are never sent anywhere by accshift. Captured session files stay on disk.

Clone this wiki locally