Highlights
Highlights in fragcap 0.5.0.
v0.5.0 is the targeting release. fragcap now finds your installed games itself, so you no longer hand-write a profile file to capture one. Run fragcap targets to see what is on your machine, then fragcap capture <n> to capture it.
fragcap targetsis the hero command. A barefragcap(orfragcap targets) runs discovery, registers what it finds, and prints your titles as a numbered table with a CAPTURE column telling you which are ready to capture and a neutral KNOWN column naming the engine, anti-cheat, and DRM detected for each. The listing ends by naming the next command. An empty result prints the commands that populate it rather than an empty table.- Games are discovered, not described. Discovery walks Steam, and on Windows the known game-install roots across every eligible fixed volume, not just the system drive;
fragcap targets scan <dir>points it at one folder. Every origin of a target sits behind one seam, so adding Epic, GOG, Xbox, or Battle.net later is a new implementor rather than a new code path. The cross-volume walk is governed by a persistent volume allowlist keyed on stable volume identity, and every listing surfaces a conserved account, so an excluded volume or an unparsable title is counted and shown rather than dropped silently. - Technology detection is data, not code. The engine, anti-cheat, and DRM signatures that identify a game from its install directory now live in a table in the shipped catalog database, evaluated by one generic matcher. Adding a signature of an implemented kind is honored on the next scan with no code change and no release. The bundled set covers the engines Unity, Unreal, Source, Godot, CryEngine, and RE Engine; the anti-cheat products Easy Anti-Cheat, BattlEye, Vanguard, mhyprot, nProtect GameGuard, and Xigncode3; and the DRM products Denuvo, Steam DRM, Arxan, and VMProtect. A detected product is neutral evidence, never a gate: nothing in any output frames a title as off limits or discouraged.
- Two stores: one shipped, one yours.
hint.dbsplits into a disposablecatalog.db(shipped, replaced wholesale by a catalog refresh) and a user-ownedlocal.db(where your targets and learned launch data accumulate). A catalog refresh never toucheslocal.db. Resolution is fidelity-ordered, so a target you authored or that was verified on disk outranks the shipped catalog's heuristic hint for the same title. - One capture verb.
run,tap, andwatchcollapse intocapture, which takes exactly one of--target <selector>or--process <image>, with every other flag orthogonal. Five previously inexpressible captures (a named process into a ring buffer, a named process waited for, a registered title launched under capture, and so on) are now expressible.--helpgroups the surface under four headings that hide nothing. fragcap doctor --fix. doctor itself is unchanged, still a read-only classifier that names a remediation for every blocking failure.--fixadds an action layer above it that offers to perform those remediations one at a time under your confirmation, and only ones the report already printed.- Launch and observe. A target whose launch chain is unresolved can now be captured: fragcap builds a two-stage profile from the executable you did record, captures normally, and promotes the stored target to the client image that actually held the sockets.
- The documentation describes the tool that shipped. The landing page and getting-started guide are rewritten around
fragcap targetsandfragcap capture <n>, ending at a capture file on disk. The specification gains anApplies-Tofield bound to the workspace version, and a continuous-integration gate now refuses to assemble a release whose changelog fragment claims a specification change the release diff does not contain.
Upgrading from v0.4.0
Below 1.0.0 a minor release may carry breaking changes, and this one does. There are no aliases and no deprecation shims:
| v0.4.0 | v0.5.0 |
|---|---|
fragcap run / tap / watch | fragcap capture |
--profile <file> capture selector | --target <selector> or --process <image> |
fragcap profile ... | fragcap targets ... (schema validate still validates a JSON artifact) |
fragcap steam profile <app_id> | fragcap targets add --steam <app_id> |
fragcap targets seed-signatures | fragcap catalog seed-signatures |
--hint-db / FRAGCAP_HINT_DB | --catalog-db / --local-db (FRAGCAP_CATALOG_DB / FRAGCAP_LOCAL_DB) |
hint.db | catalog.db (shipped) plus local.db (yours) |
The Wireshark extcap integration still advertises a --profile analyzer-config option; migrating it to the stored-target model is follow-up work in its own slice, because it changes the analyzer dialog contract.
Installing on Windows
- Download
fragcap-0.5.0-x86_64.msiand its.sha256from the assets below. - Verify it:
Get-FileHash fragcap-0.5.0-x86_64.msi -Algorithm SHA256should match the value in the.sha256file. The installer is unsigned, so Windows shows a SmartScreen "Windows protected your PC" warning with an "Unknown Publisher" note; this is expected. Choose More info, then Run anyway. - Run the installer. It installs to
Program Files, adds fragcap to the system PATH, and installs the catalog database. It can optionally register fragcap as a Wireshark extcap source; both registration choices are off by default. - Open a new terminal (so the PATH change takes effect) and run
fragcap doctorto check your setup, thenfragcap targetsto see your games. - Live capture also needs the npcap driver, which the installer cannot bundle. Install it from https://npcap.com with WinPcap API-compatible mode enabled, which is not the default;
fragcap doctornames it if it is missing, andfragcap doctor --fixoffers to fetch and launch the vendor's own installer for you. Current npcap installs loopback capture support automatically, so there is no separate loopback option to enable.
Prefer no installer? Download the portable fragcap-0.5.0-x86_64-pc-windows-msvc.zip instead and run fragcap.exe from the unzipped folder; it carries the catalog database beside the binary.