Skip to content

Repository files navigation

CS2 Config Manager

CS2 Config Manager — manage, compare and transfer configs across all your Steam accounts

A free, open-source desktop app to manage Counter-Strike 2 configs across multiple Steam accounts.

Built with Tauri 2 (Rust backend) + React 19 / Vite / Tailwind CSS v4 (frontend). Windows only (for now).

English · Português (BR) · Website

Features

  • Automatic Steam detection — finds your Steam install via the registry (with a manual folder override if auto-detect fails).
  • All your accounts, one screen — lists every Steam account with CS2 configs in userdata/, with avatars (local Steam avatar cache, with Steam Web fallback), last played, resolution, bind/convar counts.
  • See what's inside a config — video settings (resolution, refresh rate, display mode, MSAA, NVIDIA Reflex, quality levels), crosshair (with a live canvas preview), viewmodel, mouse sensitivity, radar/HUD and key binds.
  • Edit safely — friendly editors for crosshair/video/viewmodel/mouse, full bind editor, searchable convar table, and a raw file editor for the four config files.
  • Transfer configs between accounts — copy video/convars/binds (or everything) from one account to another in two clicks. Perfect for when you log into a second account and everything resets to default.
  • Compare accounts — side-by-side diff of two accounts' configs, grouped by category, with a "differences only" filter.
  • Browse Steam screenshots — the account's CS2 captures (Steam F12) in a gallery tab inside the profile.
  • Jump to the cfg folder — one click in the account ⋯ menu or profile header opens userdata/<accountId>/730/local/cfg in Explorer.
  • Automatic backups — every write operation (edit, transfer, restore) first snapshots the current files. Manual snapshots and one-click restore included.
  • Steam Cloud warning — the app detects when Steam/CS2 is running and warns you before writing (Steam Cloud can overwrite changes made while the game is open).
  • i18n — English and Português (Brasil), with more languages welcome.

Download

Grab the latest Windows installer (*-setup.exe, NSIS) from Releases.

Important: close CS2 (and preferably Steam) before editing or transferring configs. Steam Cloud sync can overwrite changes made while the game is running. The app warns you when it detects either process.

Windows SmartScreen warning: the installer is not code-signed yet (certificates are expensive — this is a free project), so Windows shows a red "Windows protected your PC" screen on first run. Click More info → Run anyway. We plan to get free open-source signing (SignPath) to remove this warning.

Where does it write?

  • Reads/writes CS2 configs only inside Steam/userdata/<accountId>/730/local/cfg/ (the four files: cs2_video.txt, cs2_user_convars_0_slot0.vcfg, cs2_user_keys_0_slot0.vcfg, cs2_machine_convars.vcfg). It also reads (never writes) CS2 screenshots from Steam/userdata/<accountId>/760/remote/730/screenshots/.
  • Backups and settings live in the app data folder: %APPDATA%/com.cs2configmanager.app/ (cs2-backups/<accountId>/<timestamp>/ and settings.json).
  • Every write is atomic (temp file + rename) and preceded by a backup when the target file already existed.
  • The two files synced with Steam Cloud (cs2_user_convars_0_slot0.vcfg and cs2_user_keys_0_slot0.vcfg) also have their _lastclouded siblings updated with the same content — otherwise CS2's cloud sync would revert external changes on the next launch.

Development

Prerequisites

  • Node.js 22+ and npm
  • Rust (stable, via rustup)
  • Microsoft C++ Build Tools (Windows) — install via the Visual Studio Installer with the "Desktop development with C++" workload
  • WebView2 — already present on up-to-date Windows 10/11

Windows + Git Bash gotcha: run cargo / npm run tauri dev from cmd.exe or PowerShell, not Git Bash. Git Bash ships its own link.exe (GNU coreutils) that shadows the MSVC linker in PATH and breaks the build with link: extra operand .... In cmd/PowerShell, rustc finds the MSVC linker automatically via the registry — no vcvars needed.

Windows 11 — Smart App Control: if cargo build/test fails with error 4551 (An Application Control policy has blocked this file) when running build scripts, Smart App Control is blocking freshly compiled unsigned executables. Turn it off in Windows Security → App & browser control → Smart App Control settings → Off (one-way switch — standard for dev machines). It will also block running the unsigned app binary, so local tauri dev requires it off.

Commands

npm install        # install frontend dependencies
npm run dev        # frontend only (Vite, http://localhost:5173) — UI without backend
npm run tauri dev  # full desktop app with hot reload
npm run tauri build # production build + NSIS installer (src-tauri/target/release/bundle)
npm run typecheck  # TypeScript check
cargo test --manifest-path src-tauri/Cargo.toml  # Rust unit tests (VDF parser, SteamID math)

Project structure

src/                 Frontend (React 19, Vite, Tailwind v4, react-router, react-i18next)
  components/ui/     shadcn/ui components (radix)
  components/layout/ App shell (sidebar, theme toggle, language switcher)
  features/          accounts (list), account-detail (tabs), compare (diff)
  i18n/locales/      pt-BR.json, en.json
  lib/               api.ts (Tauri command wrappers), types.ts (command contracts)
src-tauri/           Rust backend (Tauri commands: Steam detection, VDF parsing, backups, diff, transfer)

Internationalization (i18n)

UI strings live in src/i18n/locales/<lang>.json. To add a language:

  1. Copy en.json to <your-lang>.json and translate the values.
  2. Register it in SUPPORTED_LANGUAGES in src/i18n/index.ts.
  3. Open a PR — that's it.

Release process

Releases are built by GitHub Actions (.github/workflows/release.yml): push a tag like v0.2.0 and the workflow produces a draft release with the Windows NSIS installer.

Roadmap

  • Crosshair share-code import/export (CSGO-…)
  • Shared game cfg folder editor (autoexec.cfg, practice cfgs)
  • Custom app icon (currently the default Tauri icon — run npx tauri icon <png> to replace)
  • Linux/macOS builds (Steam on those platforms)

Origin

This app was extracted from lowlights (a local CS2 highlight generator), where the config manager first shipped as a feature. It is now a standalone project so any CS2 player can use it.

License

MIT © brunobach

About

Free and open-source desktop app to manage, compare and transfer Counter-Strike 2 configs across multiple Steam accounts — Tauri 2 (Rust) + React

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages