Skip to content

Security

meetsu edited this page Jul 16, 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, session snapshots and optional CS2 bridge token) are encrypted using operating-system protection. Only your user account on this PC can decrypt them.
  • Outbound traffic is limited to launcher operations, optional account lookups and health checks, the optional CS2 bridge, Windows update checks, and telemetry you explicitly enable.

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


Where data lives

Windows

Data Path
Portable config %APPDATA%\com.accshift.desktop\state\
Machine-local config %LOCALAPPDATA%\com.accshift.desktop\state\
Logs %APPDATA%\com.accshift.desktop\logs\
User settings %APPDATA%\com.accshift.desktop\user\
Custom themes %APPDATA%\com.accshift.desktop\themes\
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
Runtime config ~/.local/share/com.accshift.desktop/state/
Logs ~/.config/com.accshift.desktop/logs/
User settings ~/.config/com.accshift.desktop/user/
Custom themes ~/.config/com.accshift.desktop/themes/
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
Config, logs, settings and snapshots ~/Library/Application Support/com.accshift.desktop/
Cached profile data ~/Library/Caches/com.accshift.desktop/platforms/

The Application Support root uses the same subfolders as the other platforms: state/, logs/, user/, themes/, platforms/ and backups/pre-migration/.

Encryption

OS Backend What it protects
Windows DPAPI (user-scoped) API tokens, Roblox cookies and encrypted platform snapshot files
Linux Secret Service via the keyring crate (GNOME Keyring, KWallet, or any compatible daemon) Steam API key and other configured secrets, where applicable
macOS Keychain via the keyring crate Steam API key and other configured 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 Games, Ubisoft Connect, Epic Games, GOG Galaxy, Jagex Launcher and Discord session snapshots are encrypted at rest. accshift decrypts them only while staging or restoring the selected local session. Battle.net does not use this snapshot mechanism.

The optional CS2 bridge Bearer token is encrypted with the same OS-backed secret storage. The bridge URL itself is stored in the app config, so a secret embedded in that URL is not vault-protected; prefer the token field when the server supports it.

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

Network operations include:

  • 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).
  • A user-configured CS2 stats bridge, when enabled. It receives SteamID64 values and returns CS2 stats; see CS2 Stats Bridge.
  • The signed Windows auto-updater (see Updates).
  • Telemetry, if you opt in (see Telemetry).
  • One identifier-free onboarding-choice aggregate after you answer the consent dialog, including when you refuse both usage modes.

Captured session files stay on disk. accshift does not send account credentials to its telemetry service or to a CS2 bridge. Authentication operations with an official platform still send the required cookie or ticket to that platform (for example, Roblox Quick Login).

Clone this wiki locally