{"id":49717208,"url":"https://github.com/luminary-cloud/steam-tracer-cleaner","last_synced_at":"2026-06-03T01:01:06.820Z","repository":{"id":356597923,"uuid":"1233274407","full_name":"luminary-cloud/steam-tracer-cleaner","owner":"luminary-cloud","description":"Steam userdata cleaner, tracer scrubber, and autoexec installer for Windows.","archived":false,"fork":false,"pushed_at":"2026-05-18T19:31:07.000Z","size":47933,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-18T21:43:15.861Z","etag":null,"topics":["cleanup","counter-strike-2","cpp","cs2","gui","imgui","privacy","steam","steam-cleaner","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luminary-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-08T19:29:38.000Z","updated_at":"2026-05-18T19:28:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/luminary-cloud/steam-tracer-cleaner","commit_stats":null,"previous_names":["luminary-cloud/steam-tracer-cleaner"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/luminary-cloud/steam-tracer-cleaner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminary-cloud%2Fsteam-tracer-cleaner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminary-cloud%2Fsteam-tracer-cleaner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminary-cloud%2Fsteam-tracer-cleaner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminary-cloud%2Fsteam-tracer-cleaner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luminary-cloud","download_url":"https://codeload.github.com/luminary-cloud/steam-tracer-cleaner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminary-cloud%2Fsteam-tracer-cleaner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33843611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cleanup","counter-strike-2","cpp","cs2","gui","imgui","privacy","steam","steam-cleaner","windows"],"created_at":"2026-05-08T21:01:13.032Z","updated_at":"2026-06-03T01:01:06.776Z","avatar_url":"https://github.com/luminary-cloud.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# steam-tracer-cleaner\n\nCleans Steam account residue and installs autoexec / video configs. Single-file Windows executable, no installer, no telemetry.\n\n## Download\n\nGrab the latest `steam-tracer-cleaner.exe` from the [Releases](../../releases) page. The binary is statically linked, so it runs on any 64-bit Windows 10 or 11 install with no Visual C++ Redistributable required.\n\nOn first launch Windows SmartScreen may show \"Windows protected your PC\" because the binary is unsigned. Click **More info** then **Run anyway**. Code-signing certificates are not free; this is normal for small open-source Windows tools.\n\n## What it does\n\nThree things, picked one at a time from the left-nav.\n\n**Cleaner.** Walks a known catalog of Steam artifacts and removes the ones not on your preserve list:\n\n- `loginusers.vdf` entries, `ssfn*` files, `HKCU\\Software\\Valve\\Steam\\Users\\\u003cSteamID64\u003e` subkeys\n- `AutoLoginUser` — redirected to a preserved account when the active account is being wiped, so Steam reopens to a saved login instead of the blank login form. The matching `mostrecent` / `Timestamp` in `loginusers.vdf` are flipped onto the new target so Steam actually picks it. Left untouched if no preserved account is available.\n- `htmlcache/` (Chromium cache for the in-client web view, leaks logged-in cookies)\n- `dumps/`, `logs/`, `appcache/`, `depotcache/`, `shadercache/` on every Steam library drive\n- Cached avatars in `config/avatarcache/` — files named `\u003cSteamID64\u003e.png` belonging to a preserved account are kept in place, the rest go (Steam re-caches them on next launch anyway)\n- `userdata/\u003cAccountID\u003e/` per game or wholesale, depending on the profile\n- Steam-related minidumps in `C:\\Windows\\Minidump`, `%LOCALAPPDATA%\\CrashDumps`\n- Steam web sessions in Chrome / Edge / Brave / Firefox cookie databases\n\n**Configs.** Two modes:\n\n- *Autoexec*: pick a `.cfg`, the tool writes it to the game's cfg directory (default CS2 path: `steamapps/common/Counter-Strike Global Offensive/game/csgo/cfg/autoexec.cfg`). Existing file is backed up first. The destination filename is editable — handy if you want to chain configs via `exec a.cfg` from another file.\n- *Video config*: pick a `cs2_video.txt`, multi-select target accounts, the tool writes it to each `userdata/\u003cAccountID\u003e/730/local/cfg/cs2_video.txt`.\n\nImported `.cfg` and `cs2_video.txt` files are kept in a per-user library at `%APPDATA%/steam-tracer-cleaner/configs/`, so you can re-pick the same config across runs without re-browsing. Installing a config closes only the target game (e.g. `cs2.exe`) — Steam stays running.\n\n**Audit.** Read-only. Inventories what's on disk, lists every Steam account it sees, displays MachineGuid / MachineId / HwProfileGuid, exports a text report. No writes, no registry changes.\n\n**Update check.** On launch the app fetches `https://api.github.com/repos/luminary-cloud/steam-tracer-cleaner/releases/latest`. If the tag is newer than the version baked into the .exe, a modal pops up with **Open releases**, **Skip this version**, and **Remind me later**. Skipping persists the tag in `settings.json` so the same release stops nagging. The check runs once per launch on a background thread and stays out of the way if the network is down or GitHub is unreachable. Can be turned off entirely in Settings.\n\n## What it doesn't do\n\n- No HWID spoofing. The audit page shows the values, that's it.\n- No bypassing of VAC, Easy Anti-Cheat, BattlEye, or any anti-cheat. This is a file cleaner.\n- No bundled cheats, configs, or scripts beyond what you supply.\n- One outbound HTTPS call on launch to `api.github.com` to check for a newer release tag — nothing else. No analytics, no telemetry. Untick *Check for updates on launch* in Settings if you'd rather it stay silent.\n\n## First run\n\nThe app requests UAC elevation on launch — registry edits under `HKCU\\Software\\Valve\\Steam` and writes to per-account `userdata` need it on some setups.\n\n1. Launch `steam-tracer-cleaner.exe`. The window opens on the **Cleaner** screen.\n2. Open **Settings** in the left-nav. Add any SteamID64s you want to keep across cleanups under *Preserved account ids*. Tick *Preserve all ssfn (Steam Guard sentry) files* if you want to skip the 2FA prompt on next login. Tick *Register scheduled clean on logon* if you want Quick Clean to run automatically at user sign-in — this creates a `SteamTracerCleaner-LogonClean` task in Task Scheduler. Untick *Check for updates on launch* if you'd rather the app not talk to GitHub. Click **Save settings**.\n3. Back on **Cleaner**, pick a profile from the dropdown:\n   - **Quick Clean**: caches, logs, dumps. Safe daily use.\n   - **Account Reset**: Quick + account residue (loginusers, AutoLogin, ssfn, htmlcache, browser cookies). Preserved accounts survive.\n   - **Full Wipe**: Account Reset + userdata folders + controller bindings. Preserved accounts still survive.\n   - **Game Reset**: pick AppIDs to wipe just those games' userdata.\n4. Click **Dry run** to see the list of files / registry values that would be touched. Nothing is deleted.\n5. Click **Backup and clean** when you're ready. Steam is auto-closed first; affected files and registry keys are mirrored to `%LOCALAPPDATA%/steam-tracer-cleaner/backups/\u003ctimestamp\u003e/`; then the deletes run.\n6. If something went wrong, open the **Backups** screen and click **Restore** on the most recent timestamped entry.\n\n## Why an ignore list\n\nIf you keep more than one Steam account on a machine and only want to scrub some of them, a wholesale wipe of `HKCU\\Software\\Valve\\Steam\\Users` and `AutoLoginUser` will log you out of the accounts you wanted to keep. The cleaner reads `ignore.json` first and only acts on entries whose SteamID64 is not on the preserve list.\n\n`ignore.json` lives at `%APPDATA%/steam-tracer-cleaner/ignore.json` (or next to the .exe in portable mode):\n\n```json\n{\n    \"preserved_account_ids\": [\"76561198000000000\"],\n    \"preserved_ssfn_files\": true,\n    \"preserved_paths\": [],\n    \"preserved_registry_values\": []\n}\n```\n\nA SteamID64 in `preserved_account_ids` survives across:\n\n- The matching `loginusers.vdf` entry\n- The `userdata\\\u003caccount_id\u003e\\` folder\n- The `HKCU\\Software\\Valve\\Steam\\Users\\\u003cid\u003e` registry subtree\n- Controller bindings in that account's userdata\n- The cached avatar at `config\\avatarcache\\\u003cSteamID64\u003e.png`\n- `AutoLoginUser`, `RememberPassword`, and `LastGameNameUsed` — kept pointing at this account when it's the current AutoLoginUser, or redirected here from a wiped account when another preserved account is the active one. The matching `mostrecent` / `Timestamp` in `loginusers.vdf` get flipped too, so Steam actually auto-logs in instead of falling back to the login form.\n- `remoteclients.vdf` and `coplay_*` files (preserved when any account is in the list, since they can't be cleanly split per-account)\n\n## Build from source\n\nThe project is self-contained. Every dependency is vendored under `third_party/`, so there's no vcpkg, Conan, or git submodule to set up.\n\n### Visual Studio (recommended)\n\n1. Install Visual Studio 2022 17.x or 2026 18.x with the **Desktop development with C++** workload.\n2. Open `steam-tracer-cleaner.sln`.\n3. Set the configuration to `Release | x64` and hit Build (F7).\n\nThe binary lands at `build/Release/steam-tracer-cleaner.exe`.\n\n### CMake / Ninja\n\nFor headless / CI builds:\n\n```\ncmake --preset release\ncmake --build --preset release\n```\n\nThe binary lands at `build/release/bin/steam-tracer-cleaner.exe`. The CMake build also compiles the `tests/` directory; run `ctest --preset debug` to execute the unit tests.\n\n## Project layout\n\n```\napp/         WinMain, D3D11 device, message loop\ncore/        cleaning logic, profiles, ignore list, VDF helpers, autoexec, update check\nplatform/    Win32 wrappers (registry, fs, process)\nui/          ImGui screens, widgets, embedded GitHub footer icon\ntests/       doctest unit tests (CMake only)\nthird_party/ vendored deps: imgui, spdlog, nlohmann_json, sqlite, doctest\nassets/      app icon (compiled into the .exe via app.rc)\ncmake/       shared compile options\n```\n\nThe `core/ \u003c-\u003e platform/` split means cleaning rules can be unit-tested without a Win32 message pump.\n\n## Safety\n\nEvery destructive action is gated by:\n\n1. A dry-run preview that shows the exact list of files / keys / values it would touch.\n2. A backup step that mirrors the affected paths to `%LOCALAPPDATA%/steam-tracer-cleaner/backups/\u003ctimestamp\u003e/` before deleting. One-click restore from the Backups screen. Old backups beyond the configured keep-count are auto-pruned after each successful run.\n3. An auto-close step. The **Cleaner** sends WM_CLOSE to Steam and every known game executable before any write (TerminateProcess fallback after a 5-second timeout) — it has to, because Steam rewrites `loginusers.vdf` and `localconfig.vdf` when it exits. The **Configs** screen closes only the target game (`cs2.exe` for video configs, the matching exe for autoexec) so installing a config while Steam is running doesn't drop you out of the client.\n4. A rotating log at `%LOCALAPPDATA%/steam-tracer-cleaner/logs/\u003cname\u003e.log` recording every action with timestamp, target id, result, and Win32 error code if applicable.\n\n## Portable mode\n\nDrop a file named `portable.flag` next to the .exe. Settings, profiles, ignore list, backups, and logs all live in the same folder as the binary instead of `%APPDATA%` and `%LOCALAPPDATA%`. Useful from a USB stick or a sandbox.\n\n## Vendored libraries\n\n| Library | License | Used for |\n|---|---|---|\n| [Dear ImGui](https://github.com/ocornut/imgui) (docking) | MIT | UI |\n| [spdlog](https://github.com/gabime/spdlog) | MIT | logging (header-only mode) |\n| [nlohmann/json](https://github.com/nlohmann/json) | MIT | config files |\n| [SQLite amalgamation](https://www.sqlite.org/) | Public domain | browser cookie DBs |\n| [doctest](https://github.com/doctest/doctest) | MIT | unit tests |\n\n## License\n\n[MIT](LICENSE).\n\n## Contributing\n\nPull requests welcome. Code style: `clang-format` config is at the repo root, `clang-tidy` is set up for `bugprone-*` / `cert-*` / `cppcoreguidelines-*` / `modernize-*`. Tests run via `ctest` after a CMake build.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluminary-cloud%2Fsteam-tracer-cleaner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluminary-cloud%2Fsteam-tracer-cleaner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluminary-cloud%2Fsteam-tracer-cleaner/lists"}