CS2-Insight-Agent: a local demo-to-video pipeline that drives OBS without touching the game process
CS2 一站式创作套件:Demo 库与分析(高光/下饭/仿实战POV/2D 回放/热力图/饰品换肤),OBS 自动录制成片,合辑工作台 + LiteCut 多轨精剪,可选 LLM 毒舌锐评。0 注入、0 Hook、0 逆向游戏进程,本地回放低风险。
At a glance
- What is it?
- The project turns Counter-Strike 2 demos into finished highlight videos by parsing them in Python, driving OBS over its runtime integration, and exporting through FFmpeg. Its stated safety claim is that it never injects into or hooks the game process, which is also the constraint that shapes what it can and cannot do.
- Who is it for?
- Adopt it if you cut CS2 highlight videos yourself and want the parse, record and rough-cut steps in one local tool, and if you accept the PolyForm Noncommercial 1.0.0 terms. Do not adopt it for paid editing or recording services, and do not expect it to run without CS2, OBS and a full FFmpeg build.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 4 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The gap between a downloaded demo and a publishable clip
A CS2 demo file is not a video. Getting from one to the other normally means opening the game, loading the replay, positioning the camera, starting a capture tool, watching for the moment, and cutting afterwards. CS2-Insight-Agent targets that whole chain for people who already publish match clips: the README describes a demo library, an analysis workbench, an OBS-driven recording queue, a compilation workbench, and a multi-track editor called LiteCut. The intended user is a single creator working on their own machine, not a studio. The licence reinforces that reading, since commercial editing or recording services are explicitly excluded.
What the parser produces and what the recorder consumes
The analysis side is built on a custom demoparser2 Rust extension compiled through PyO3, which the backend validates at startup. The README states plainly that the backend will not silently fall back to the stock PyPI parser if the required Rust interfaces are missing, which is a deliberate failure rather than a degraded mode. From a parsed demo the tool derives highlight categories (multi-kills, one-taps, clutches, knife kills, jump shots, defuses), a separate set of comedic categories, cross-round compilations, and per-round kill and death timelines. The recording side is a queue: you select matches and segments, preview the plan, and the tool launches CS2 replay and drives OBS to capture. Between the two sits a settings layer that configures spectator HUD, field of view, weapon angle, flash brightness, resolution, and OBS transitions before recording starts. The data flow is one-directional: demo in, parsed events out, recording plan out, video files back into the compilation library.
Install, dependencies and the paths that break
End users download CS2-Insight-Agent-Setup-x.x.x.exe from the Releases page and run it. The README says no browser is needed and no backend is started by hand; a Tauri shell launches an embedded Python backend and renders through Windows WebView2. Source development is different. It requires uv 0.11.x and a PowerShell script at .\packaging\demoparser-lean\setup-backend-dev.ps1, which creates a Python 3.12 environment from the root uv.lock with hash-locked dependencies. The README keeps three lockfiles separate on purpose: uv and uv.lock for Python, pnpm and pnpm-lock.yaml for the frontend and Tauri JS toolchain, cargo and Cargo.lock for the Rust shell. FFmpeg is configured manually in the settings page under an FFmpeg path field, and both the compilation workbench and LiteCut require it. The README recommends the FFmpeg build shipped by FrameMeld for frame interpolation and motion blur, or a full FFmpeg 9.0 build, and warns against essentials or other trimmed builds. Two practical traps are documented: install to a path without Chinese characters, and there is currently no background auto-updater, so upgrades mean downloading a new installer.
The no-injection claim and what it costs
The headline safety statement is 0 injection, 0 hook, 0 reverse engineering of the game process, with recording controlled through OBS reacting to game state. That is a real architectural choice with a real cost. Anything requiring data the demo file or the spectator client does not expose is out of reach, and the project's own roadmap places grenade trajectory analysis and route review in V3, still unchecked. Some features are labelled experimental in the README itself: the first-person POV HUD is described as experimental, and the keypress overlay is documented as sometimes desynchronised from the picture, with manual adjustment as the remedy. The tool also depends on CS2 being installed and launched for recording, so this is not a headless renderer. If you need frame-accurate overlays synced to game events, the OBS-driven approach leaves you tuning offsets by hand.
Licence terms that decide whether you can use it at all
The repository is published under PolyForm Noncommercial 1.0.0, and the README spells out the boundary: personal study, research, hobby use and reviews are permitted, and you may read, modify, build and distribute the source under the same terms. Commercial use is prohibited without written authorisation, and the README lists commercial software, paid services, paid editing or recording services, commercial platform integration, resale and bundling into a commercial product. Commercial licensing enquiries go to the address given in the README. Note also that the skin-swapping component is closed source, so that part is not covered by the source licence at all. The GitHub metadata reports the licence as NOASSERTION, which does not match the badge and the licence section; treat the README and the LICENSE file as the source of truth and read them yourself rather than relying on the repository metadata.
Where a general-purpose editor wins
LiteCut is a multi-track editor with video, audio and text tracks, ripple delete, slip, grouping, keyframes, colour correction presets and transitions. Its distinguishing feature is the kill axis: kill timestamps carried by Insight recordings follow trims, moves and speed changes, and are read-only rather than exported. That is useful for pacing a frag movie. It is not a replacement for DaVinci Resolve or Premiere Pro. Those tools have no knowledge of demo semantics, so you would import flat video and place markers yourself, but they bring colour management, audio mixing, effects and collaboration that LiteCut does not claim. The trade is domain awareness against editing depth. If your videos are mostly talking-head style commentary with occasional gameplay, LiteCut's demo-aware features do little for you and a conventional editor is the better fit.
Maintenance, upgrades and machine requirements
The release cadence is visible in the metadata: V2.7.1, V2.7.0 and V2.6.5 shipped within roughly a month of each other, and the last push is dated 2026-09-10. That pace suggests active development, and it also means the installed version drifts quickly. Because there is no auto-updater, each upgrade is a manual installer download. The build chain is heavier than a typical Python tool: uv 0.11.x, Python 3.12, a Rust extension compiled with PyO3, pnpm for the frontend, cargo for the Tauri shell, plus OBS and FFmpeg managed separately at runtime. On the hardware side, export prefers GPU encoding through NVENC, QSV or AMF and falls back to software encoding when none is available, so a machine without a supported encoder will export more slowly. The README does not state minimum CPU, RAM or disk requirements, and it does not quantify export times, so those remain unverified from the available material.
Editorial conclusion
Adopt it if you cut CS2 highlight videos yourself and want the parse, record and rough-cut steps in one local tool, and if you accept the PolyForm Noncommercial 1.0.0 terms. Do not adopt it for paid editing or recording services, and do not expect it to run without CS2, OBS and a full FFmpeg build. Before committing, verify that your demo directories are detected by the library watcher, that your GPU encoder is picked up at export, and that the custom demoparser2 extension builds, since the backend refuses to fall back to the PyPI parser.
Community notes