Windows installer
QuartermasterCollectorSetup.exe is a guided Windows installer (NSIS)
for the collector — the easiest way to keep a
Windows machine feeding your cloud registry. It bundles a portable Node
runtime, so the machine needs no Node install, no git clone, no terminal.
What the wizard does
Section titled “What the wizard does”- Welcome — explains exactly what will happen: pair with your Worker and install an explicit on-demand scanner. No background task is created.
- Install location — defaults to
%LOCALAPPDATA%\Quartermaster. The install is per-user; no admin rights required. - Components — keeps the thin collector selected and offers Local Companion (advanced: local Drift dashboard), off by default.
- Connect — asks for your Worker URL, machine name (defaulting to the
Windows computer name), and the admin token. The admin token
is used once to pair and is never stored; only the revocable
device-scoped token lands on disk (
%USERPROFILE%\.quartermaster\, along with scan state). - Install — copies portable
node.exe+collector.cjsand pairs the machine. It does not register a Scheduled Task or other persistence. - Finish — optionally runs the first scan immediately in a console so you can watch the initial crawl.
Use %LOCALAPPDATA%\Quartermaster\qm-scan-now.cmd whenever you want to scan.
It shows its progress and runs both the scan and queued-jobs pass. Secrets are
redacted on-device before upload.
Advanced: Local Companion for Drift
Section titled “Advanced: Local Companion for Drift”Select the optional Local Companion component if this personal Cloudflare
machine should also keep a full local provenance/Drift registry. Installation
uses the bundled npm CLI to download native dependencies; the embedding model
downloads on first start. It binds only to 127.0.0.1:8765, does not start
automatically, and does not synchronize reports into the Worker dashboard.
$companion = "$env:LOCALAPPDATA\Quartermaster\qm-companion.cmd"& $companion open # start in the background and open #/drift& $companion status& $companion stop& $companion run # foreground mode for troubleshootingOptional: schedule scans yourself
Section titled “Optional: schedule scans yourself”Scheduling is deliberately separate from installation. Review and run the following in PowerShell only if you want an hourly per-user task:
$collector = "$env:LOCALAPPDATA\Quartermaster\qm-collector.cmd"$command = '"' + $collector + '" scan && "' + $collector + '" jobs'$action = New-ScheduledTaskAction -Execute $env:ComSpec -Argument ("/d /c " + $command)$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(5) -RepetitionInterval (New-TimeSpan -Hours 1)Register-ScheduledTask -TaskName "Quartermaster Collector" -Action $action -Trigger $trigger -Description "Explicit opt-in Quartermaster scan and jobs poll"Inspect or remove it at any time:
Get-ScheduledTask -TaskName "Quartermaster Collector"Unregister-ScheduledTask -TaskName "Quartermaster Collector" -Confirm:$falseGet the installer
Section titled “Get the installer”- Releases: every
collector-v*tag builds the installer in CI and attaches it to the GitHub release. - CI artifact: the Build collector installer (Windows) workflow can be
dispatched manually; the
.exeis uploaded as a build artifact. - Build it yourself:
node installer/windows/build.mjs(needsmakensis; NSIS cross-compiles, so this works on Windows, Linux, and macOS).
CI-built installers are code-signed automatically when signing credentials
are configured (Azure Trusted Signing, with a classic OV-certificate fallback);
locally-built installers are always unsigned — treat CI as the source of
release binaries. The bundled node.exe is already signed by the OpenJS
Foundation.
For an unattended install generated by the Devices dashboard, all pairing values can be supplied in PowerShell:
& .\QuartermasterCollectorSetup.exe /S ` "/WorkerUrl=https://quartermaster.<you>.workers.dev" ` "/DeviceName=my-laptop" ` "/AdminToken=$env:QM_ADMIN_TOKEN" ` "/LocalCompanion=1" # omit to keep the default thin collectorUninstall
Section titled “Uninstall”Settings → Apps (or Uninstall.exe in the install folder) removes program
files and cleans up the legacy task created by older installers. It deliberately leaves
%USERPROFILE%\.quartermaster so re-installing doesn’t need re-pairing —
this also preserves the companion’s SQLite registry and model cache. Revoke the
device server-side and delete that directory to fully disconnect and remove
local companion data.
macOS and Linux
Section titled “macOS and Linux”Both have their own self-contained installers — see the
macOS installer (.run, launchd user
agent, no sudo needed) and the
Linux installer (.run, systemd user
timer or cron, no root needed). On anything else, the
manual collector setup
works on every platform with Node ≥ 22.