SetupPilot
Catches the unattend.xml typo that silently images 200 machines wrong.
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 SetupPilot
Catches the unattend.xml typo that silently images 200 machines wrong.
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, SetupPilot is included in every plan along with the rest of the range.
One letter, two hundred wrong machines
Change pass="oobeSystem" to pass="oobesystem" and Windows Setup doesn’t complain. It ignores the entire section without a word, and every machine you image comes out wrong. setuppilot check unattend.xml catches that, tells you which pass you meant, and gives you the line it’s on. It also finds duplicate passes, components missing processorArchitecture, amd64 mixed with x86, a ComputerName over 15 characters or ending in a hyphen, and plaintext passwords.
Exit status 2 on any error finding, so it drops into a build pipeline as it is.
Generating and sharing
setuppilot new writes an answer file from plain flags: computer name, locale, time zone, an admin account, skip-OOBE, a UEFI or BIOS disk layout. setuppilot redact writes a copy with every password and product key replaced and everything else preserved byte for byte, so it still diffs cleanly against the original and the line numbers line up. Both are dry runs until you add --apply.
What passing actually means
It means the file has none of the structural faults SetupPilot knows how to find. This is not the Microsoft XSD. It doesn’t know which settings are legal in which pass, can’t tell you a ProductKey is fake, and knows nothing about your edition or drivers. Pilot one machine before you image the fleet.
Reading on the job itself
- How to set up Windows the same way every time Write the setup as a list of steps, each with a check that says whether it is already done. Then the recipe...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working command-line build of the answer-file checker: it validates the XML, the configuration passes, per-component architecture and the computer-name rules, then reports each problem with the line it is on. Passwords and product keys are never printed in any output mode, and it can write a redacted copy for sharing. Applying a file to a live install is out of scope.
Naming status
Working name only — brand verdict **RENAME** (High). Collision: SetupPilot. Prefer a fresh coined name.
What it draws on
Existing paid software whose best ideas shaped this program: NTLite, WinToUSB Professional, EasyUEFI Professional, Macrium Reflect X.
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.
SetupPilot 0.1.0 -- build and check Windows unattended answer files (unattend.xml)
Usage:
setuppilot new --out <file> [options] [--apply]
setuppilot check <unattend.xml> [--json]
setuppilot show <unattend.xml> [--json]
setuppilot redact <unattend.xml> --out <file> [--apply]
setuppilot -h | --help | help
Commands:
new Generate a valid answer file from plain options. Writes nothing
unless --apply is given; without it the document is printed to
stdout as a preview.
check Audit an answer file and report ERROR / WARN / INFO findings with
line numbers: malformed XML, wrong root or namespace, misspelled
configuration passes, duplicate passes or components, components
missing name/processorArchitecture/publicKeyToken, mixed processor
architectures, illegal or over-long ComputerName, and plaintext
passwords (reported, never printed).
show Print a readable summary: passes, components, and the settings
that were actually set.
redact Write a copy with every password and product-key value replaced,
so an answer file can be attached to a ticket safely. Writes
nothing unless --apply is given.
Flags for new:
--out <file> Destination path (required).
--computer-name <name> ComputerName to set (default "*", random).
--locale <tag> Locale for input/system/UI/user (default en-US).
--timezone <name> Windows time zone id (default UTC).
--admin-user <name> Create this local account in Administrators.
--skip-oobe Suppress the out-of-box-experience screens.
--disk-layout uefi|bios Emit a wipe-and-partition DiskConfiguration.
--apply Actually write the file.
Flags for check / show:
--json Emit machine-readable JSON instead of text.
Flags for redact:
--out <file> Destination path (required).
...
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