Repository navigation
CLI & Protocol
TcNo-Acc-Switcher.exe handles the GUI, swaps, list commands, tray startup, and tcno:// links. There is no separate CLI binary.
TcNo-Acc-Switcher.exe --help
| Action | Example |
|---|---|
| Steam swap | TcNo-Acc-Switcher.exe +s:76561197960287930 |
| Steam swap with persona | TcNo-Acc-Switcher.exe +s:76561197960287930:3 |
| Templated platform swap | TcNo-Acc-Switcher.exe +b:email@example.com |
| Open platform page |
TcNo-Acc-Switcher.exe Steam or --page=Steam
|
| Add new / logout flow | TcNo-Acc-Switcher.exe logout:Steam |
| List platforms | TcNo-Acc-Switcher.exe --list-platforms |
| List accounts | TcNo-Acc-Switcher.exe --list-accounts=Steam |
| JSON list output | Add --json to a list command |
| Start hidden in tray | TcNo-Acc-Switcher.exe -tray |
| Debug logs |
-v or --log-level=debug
|
Platform short names come from the first entry in each "Identifiers" array in Platforms.json.
+<platformShort>:<uniqueId>[:optionalArg]
- Steam uses
+s:<steamId64>[:personaState]. - Other platforms use
+<platformShort>:<uniqueId>. - Unknown arguments after the swap token are passed to the target platform executable.
Steam persona state is an integer. Example:
TcNo-Acc-Switcher.exe +s:76561197960287930:3
| Flag | Use |
|---|---|
--run-appid=<id> |
After a Steam swap, launch steam://rungameid/<id>
|
--run-shortcut=<value> |
After a swap, launch a .lnk or .url found in shortcut folders |
--run-appid only works with +s:<steamId64>. --run-shortcut works with Steam and templated platform swaps. The shortcut value is URL-decoded, reduced to a basename, then searched in cache, Desktop, and Start Menu locations.
Example:
"C:\Program Files\TcNo Account Switcher\TcNo-Acc-Switcher.exe" +s:76561197960287930 --run-appid=730
The UI can create shortcuts from the account right-click menu.
These run the same flow as Add New in the GUI:
TcNo-Acc-Switcher.exe logout
TcNo-Acc-Switcher.exe logout:Discord
TcNo-Acc-Switcher.exe logout:Steam
logout:<platform>:<accountId> is parsed for protocol compatibility. The current logout flow clears the platform's current login state, not one saved account.
TcNo-Acc-Switcher.exe Steam
TcNo-Acc-Switcher.exe --page="Epic Games"
TcNo-Acc-Switcher.exe --open-page=Steam
This is also used when the app restarts as administrator and needs to return to the same platform page.
TcNo-Acc-Switcher.exe --list-platforms
TcNo-Acc-Switcher.exe --list-accounts
TcNo-Acc-Switcher.exe --list-accounts=Steam --json
--json is valid only with --list-platforms or --list-accounts.
Enable it in Settings -> System -> Protocol handler.
Protocol payloads mirror CLI swap tokens:
tcno://s:76561197960287930
tcno://s:76561197960287930:3
tcno://d:123456789012345678
Use links from Win+R, browsers, scripts, or other launchers.
| Platform | Identifiers |
|---|---|
| Escape from Tarkov |
eft, bsg, tarkov
|
| OBS Studio | obs |
| Epic Games |
e, epg, epic, epicgames
|
| GOG Galaxy |
g, gog, gog2
|
| Discord |
d, discord
|
| Discord Canary |
dc, discordcanary, canary
|
| Discord PTB |
dp, discordptb, ptb
|
| Riot Games |
r, riot, riotgames
|
| Origin |
o, origin
|
| EA Desktop |
ea, eadesktop
|
| GeForce Now |
gn, geforce, geforcenow
|
| Ubisoft |
u, ubi, uplay, ubisoft
|
| Meta Horizon Link |
mhl, metahorizon, metalink
|
| Oculus |
oc, oculus
|
| Magic Arena |
mtga, magicarena
|
| PS Remote Play |
psr, psrp, psremote
|
| Albion Online |
ao, albion, albiononline
|
| Roblox |
rb, roblox, rblx
|
| Rockstar |
rs, rockstar, socialclub
|
| Battle.net |
b, bnet, battlenet, blizzard
|
| Arena Breakout: Infinite |
abi, arenabreakout
|
| Delta Force |
dfho, deltaforce, hawkops
|
| Jagex |
jagex, osrs, runescape
|
| Steam |
s, steam, valve
|
Check Platforms.json for the current list.
These are read once, at startup. They exist for cases where a command-line flag is awkward or does not exist — most usefully wails3 dev, which runs the app through a task and cannot forward arguments to it.
| Variable | Effect |
|---|---|
TCNO_ALLOW_STEAMGUARD_CAPTURE |
Lets Steam Guard windows be screenshotted and recorded. Same as --allow-steamguard-capture. |
TCNO_STEAMGUARD_CONFIRMATION_DUMP |
Writes the full payload of each confirmation you open to {UserData}\SteamGuard\diagnostics\. No flag equivalent. |
A variable counts as set when it holds anything other than an empty string, 0, or false (any case). 1 is the conventional value:
$env:TCNO_ALLOW_STEAMGUARD_CAPTURE=1; .\TcNo-Acc-Switcher.exeset TCNO_ALLOW_STEAMGUARD_CAPTURE=1 && TcNo-Acc-Switcher.exe
Both switches are process-wide and decided before any window exists, so nothing in the app can turn them on or off later, and neither is a setting in the UI.
Steam Guard windows are hidden from screen capture, which also blocks deliberate capture — so screenshots and screen recordings of the feature itself come out blank. Setting this lifts the exclusion for that run, and the log records that the protection is off. It covers the confirmations window and the main window while it is showing a code or another sensitive view.
It does not touch Settings -> Privacy -> Always hide this app from screenshots, which is a separate, user-controlled setting covering the ordinary windows.
Off unless you set it, because the payloads describe live trades: item names, counterparties and the summary Steam rendered. Each confirmation you open writes one timestamped .json file, 0600, under {UserData}\SteamGuard\diagnostics\. The confirmation's id and nonce are deliberately left out — together they are the decision keys, and anyone holding them alongside a session could accept the trade.
Set it when reporting a confirmation that renders wrongly, and read the file before attaching it anywhere.
Development and test variables are listed in Building from source.
When the app moves user data from Settings, it may restart with:
--userdata-move-from=<old> --userdata-move-to=<new>
This is normally automatic. The flags are documented for troubleshooting.
All trademarks and materials are the property of their respective owners and their licensors. This project is not affiliated with any companies referenced. This is not "Official" software or related to any companies mentioned. All it does is let you move your files around on your computer the same way you can. The use of names, icons and trademarks does not indicate endorsement of the trademark holder by this project or its creators, nor vice versa. They are only used to visually indicate which programs this project interacts with easily to the end-user.
By enabling optional features that scrape the web for publicly available information (such as limited game/profile statistics and other data), you understand and accept full responsibility for doing so on your own volition. If you appreciate accurate information, support the services providing it directly. The information collected is incredibly limited and is no replacement or competitor for sites scraped.
I am not responsible for the contents of external links. For the rest of the disclaimer, refer to the License (GNU General Public License v3.0) file: https://github.com/TCNOco/TcNo-Acc-Switcher/blob/master/LICENSE - See sections like 15, 16 and 17, as well as GitHub's 'simplification' at the top of the above website.
Information
Build and contribute
- Building from source
- Building on Linux
- Help code a platform
- Templated platform guide
- Game statistics guide
Platforms
Automation