English | 繁體中文 | 简体中文 | 日本語 | 한국어 | Русский
A Windows desktop tool for managing and analyzing Counter-Strike 2 demos. Explore player statistics, 2D replays and experimental match anomalies, and export highlights or suspicious moments as videos.
- Microsoft Store — Install and receive updates through Microsoft Store.
- Portable EXE — Download the standalone
.exefrom GitHub Releases; no installation required.
- If export fails after a CS2 update, re-download HLAE from Settings; this usually fixes it.
- You cannot play while recording. Exports run one at a time.
- Choose H.264 for playback in chat apps and browsers; NVIDIA encoding requires an NVIDIA GPU.
Review match results and player performance across combat, utility and round situations. Comparison charts, round trends and spray control plots help explore the match from different angles.
Analyze aiming, shooting and movement across all players, including TTD and estimated smoke hit rate. Select, merge and export suspicious clips by player and behavior for closer review.
Statistics are for reference, not a cheating verdict. They cannot identify deliberately concealed cheats without statistical anomalies; no anomalies does not mean no cheating.
- Highlights (multi-kills, clutches, ninja defuses) are detected and scored automatically
- Selected clips are recorded by CS2 in the background and encoded with FFmpeg
- Resolution, FPS, H.264 / H.265, CPU or NVIDIA
- Per-element HUD toggles, optional merge into one video
- File size limit (10 / 20 / 50 MB) for sharing in chat apps
- Player positions, view angles, health, armor, weapon, money
- Grenades, smoke / fire / flash areas, C4 and defuse countdowns, kill feed, hearing range
- Round navigation, playback speed, follow a player
- Multi-level maps shown one level per panel; radar images extracted from the local game files
Nothing is written into the game folder: no plugin, script, or cfg, and no game file is changed. Recording launches a separate CS2 process through HLAE with -insecure (the same as using HLAE manually), sends commands over the game's own netcon console, and keeps game settings in a separate USRLOCALCSGO folder so the player's settings are untouched. All third-party tools are downloaded into the app's own data folder:
| Tool | Purpose | Source |
|---|---|---|
| HLAE | Recording (mirv_streams) | advancedfx/advancedfx |
| FFmpeg | Encoding, merging, size limit | BtbN/FFmpeg-Builds (GPL) |
| Source 2 Viewer CLI | Radar image extraction from vpk | ValveResourceFormat (MIT) |
| demoparser | Demo parsing (vendored) | LaihoE/demoparser (MIT) |
No database is required. Settings, export jobs and analysis caches are stored as files in the user home directory (%USERPROFILE%\.noih\demodesk-data) by default; the data folder can be changed in Settings. Clearing that setting restores the default on restart. Existing files are not moved; to reuse an older portable data folder, select it in Settings. Demos stay at their original paths and can be added individually or discovered through scan folders.
Requires Rust (stable) with Visual Studio Build Tools (Desktop development with C++), Node.js 24.20.0 (.nvmrc), and WebView2 (included in Windows).
npm install
npm run app:dev # development: Vite + Tauri window
npm run app:build # dist-portable\CS-DemoDesk-<version>.exe
npm run app:release # portable EXE + unsigned Store MSIX (Windows SDK required)
npm run test:core # Rust unit testsReleases are built by GitHub Actions and include the portable EXE and its SHA256 checksum. The unsigned MSIX and its checksum are available in the workflow run as the store-msix-<tag> artifact, retained for 90 days for manual Microsoft Store submission. Both binaries receive build-provenance attestations. To verify that a download was built from this repository:
gh attestation verify CS-DemoDesk-<version>.exe --owner noihCopyright (C) 2026 NOIH - https://github.com/noih
GNU AGPL-3.0. Third-party components keep their own licenses (see the table above; the vendored demoparser retains its MIT license in vendor/demoparser/LICENSE).



