Skip to content
Rod Christiansen edited this page Sep 3, 2026 · 3 revisions

BootstrapMate for macOS

BootstrapMate is a bootstrapping tool for Mac device provisioning that downloads and installs packages during Remote Management enrollment in Setup Assistant or after user login. It reads one document — the manifest — from an HTTPS URL, and runs the items in that manifest in three fixed stages: preflight, setupassistant, userland. It is a one-shot provisioning tool, not an ongoing configuration manager: its job is to get the first layer of software onto a new Mac and then hand the machine over to Munki.

Who this is for

Mac administrators who enroll devices through Automated Device Enrollment (ADE/DEP) and need software on the machine before, or immediately after, the first user logs in. You should already be comfortable with MDM configuration profiles, installer, pkgutil and shell scripting. BootstrapMate assumes you have somewhere to host a manifest and some packages over HTTPS, and an MDM that can install a package and deliver a profile.

Start here

Read these in order the first time:

  • Getting Started — obtain the package, author a one-item manifest, install BootstrapMate and watch a real run in the log.
  • How It Works — the exact execution order of a run, and the security context of each step.
  • Manifest Reference — every manifest key, its type, and its default.
  • Troubleshooting and Gotchas — read this before you deploy to a fleet, not after. Several documented-looking settings do nothing, and the reasons are all in there.

If you are arriving from Munki or from InstallApplications, start at the Glossary instead: BootstrapMate's "manifest" and "preflight" do not mean what those words mean in Munki.

The Windows sibling

A separate implementation of the same idea exists for Windows, with the same page names in its wiki, at https://github.com/bootstrapmate/bootstrapmate-windows/wiki. Behaviour differs where the platforms differ — Setup Assistant versus the Enrollment Status Page (ESP), Munki versus Cimian as the handoff target — so check the macOS page before assuming the two are identical.

Getting help

Bug reports, questions and feature requests go to GitHub Issues on this repository. When you file one, include the session log from /Library/Managed Bootstrap/logs/ and the contents of /Library/Managed Bootstrap/status.json; almost every question about a run is answered by those two files.

See also

Clone this wiki locally