Driver Safety Center

DriverPilot

Inventory a driver folder before and after an update, then diff the two.

Free right now — no account, no card

Get DriverPilot free Windows & Mac · one file, nothing to install

Preview

1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.

Interface design DriverPilot, 1 of 1
Screenshot DriverPilot running on Windows today

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

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