DriverPilot
Inventory a driver folder before and after an update, then diff the two.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get DriverPilot
Inventory a driver folder before and after an update, then diff the two.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, DriverPilot is included in every plan along with the rest of the range.
Two inventories and a diff
Take one before you install anything, take another after, run driverpilot diff --before before.json --after after.json. Out comes a list: what was added, what disappeared, what moved to a newer version, and what quietly moved to an older one. Packages are identified by provider, class and hardware ID.
The version comparison is the fiddly part
Versions are compared numerically, component by component. 10.0.1.0 is newer than 9.9.9.9, and 1.2.10 is newer than 1.2.9. Sort those as strings and you get both backwards, which is how “the update went fine” turns into a bad week.
It reads files. That is all it does.
Real .inf files are INI-style text, frequently UTF-16LE, sometimes with no byte-order mark at all. DriverPilot detects the encoding, resolves %Token% references from the Strings section, handles line continuations, and extracts Provider, Class, DriverVer and every hardware ID in the model sections. Nothing privileged is involved, so it runs on Linux and macOS too.
It never touches the live driver store, never installs or removes anything, and does not check signatures. check will tell you an .inf references a CatalogFile that isn’t in the folder. That is not the same as saying the package is signed.
Reading on the job itself
- How to back up drivers before an update Copy the driver store to somewhere off the machine before you change anything, and record a hash of every f...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working CLI prototype of a real Windows .INF driver-package parser: it reads a driver folder, extracts each package's provider, class, version, catalog and hardware IDs — handling UTF-16LE files, %Strings% substitution and case-insensitive sections — then diffs two inventories to show exactly what changed. Version comparison is numeric per component, so 10.0.1.0 is correctly newer than 9.9.9.9 where a string sort gets it backwards. It reads package files; it does not touch the live driver store or verify signatures.
Naming status
Working name only — brand verdict **AVOID** (Very High). Collision: DriverPilot / DriverPilot Pro / DRIVE PILOT. Rename completely.
What it draws on
Existing paid software whose best ideas shaped this program: IObit Driver Booster Pro, Driver Easy Pro, Auslogics Driver Updater, Revo Uninstaller Pro.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
DriverPilot 1.0.0 - Driver Safety Center
Parse Windows .inf driver packages, inventory a driver folder, and diff two
inventories to see exactly what changed. Reads package FILES only - it never
touches the live Windows driver store and installs nothing.
USAGE
driverpilot <command> [options]
COMMANDS
parse <file.inf> [--json]
Parse one .inf and report Provider, Class, ClassGuid, DriverVer date
and version, CatalogFile, [Manufacturer] entries and every hardware ID.
inventory <dir> [--recursive] --out <inventory.json> [--json]
Parse every .inf in a directory into one inventory file. Files that
fail to parse are reported individually; the scan always completes.
diff --before <a.json> --after <b.json> [--json]
Compare two inventories: ADDED, REMOVED and UPGRADED/DOWNGRADED
packages. Version comparison is numeric per component, so 10.0.1.0 is
correctly newer than 9.9.9.9.
check <dir> [--json]
Quality report: unparseable .inf files, packages with no DriverVer,
CatalogFile referenced but absent from the folder, and hardware IDs
claimed by more than one package.
help, -h, --help Show this help.
version Print version.
EXIT CODES
0 success, no findings
1 usage error or unreadable input
2 check found at least one finding
EXAMPLES
driverpilot parse ./drivers/acmenet.inf
driverpilot inventory ./drivers --recursive --out before.json
driverpilot diff --before before.json --after after.json --json
...
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
console.go · console_test.go · guided.go · main.go
SHA-256 checksums · build instructions & scope notes · full build plan