What gibMacOS actually does
gibMacOS is a script by the developer corpnewt that reaches into Apple's software update catalog, lists the macOS installers Apple still publishes there, and downloads the pieces you choose. It is not an installer. It does not modify the images it saves, and it does not change your system. It behaves like a catalog browser with a download manager attached: you pick a catalog, you pick a version, and the files land on your disk.
Everything it fetches comes from Apple. The script sends its requests to the catalog service that Software Update itself consults, hosted at swscan.apple.com, and the packages resolve to Apple's own distribution servers. The script contributes the catalog parsing and the progress display; the gigabytes travel from Apple to your machine.
Because that catalog is a moving target, the menu you see is a snapshot. When Apple retires a release from the catalog, it disappears from the list, so two people running the same script months apart can see different versions. That is normal, and it is the main reason the tool needs occasional updates.
What you need before you start
Two things cause most failed attempts: an interpreter that is not available, and a USB drive that is too small or was formatted the wrong way. Prepare for both before you download anything.
- Python 3. Current builds of the script target Python 3. Older documentation mentions Python 2 support, so treat Python 3 as the safe choice and confirm the interpreter requirement in the repository README. On Windows, install Python from python.org and tick the option that adds Python to PATH.
- Disk space. Full installer downloads run to several gigabytes, and the assembled installer app needs room beside them. Plan for roughly 20 GB of free space so you are not cleaning up mid-download.
- A USB flash drive of 16 GB or more. Modern macOS installers do not fit on 8 GB drives.
- A stable connection. The downloads are large, and the script is happiest when it can finish in one session. If the connection drops, running it again resumes the parts that are already complete.
- Terminal basics. On macOS you need an administrator account and Terminal access;
createinstallmediaships inside the installer app, so there is nothing extra to install. On Windows you need an elevated Command Prompt, because the media helper writes an image directly to a physical disk. - A target version that your Mac supports. No script changes hardware support. Check the model and the macOS release you intend to install before you start.
Your setup is ready when python3 --version prints a 3.x version on macOS, or python --version works in an elevated prompt on Windows, and you have a blank or sacrificial USB drive in hand.
Install
gibMacOS is distributed as a repository rather than a signed package. On the project page, use Code -> Download ZIP, then unzip the folder, or clone the repository if you prefer Git. There is no system-wide installation and no package manager to run.
Keep the folder in a plain, stable location. The script creates a macOS Downloads folder beside itself, so moving the script later means moving that folder too.
- On macOS, open Terminal in the extracted folder and run
./gibMacOS.command. If it is not executable yet, runchmod +x gibMacOS.commandonce. Double-clicking the file in Finder works as well, but Terminal shows the URLs and progress that you will want later for verification. - On Windows, run
gibMacOS.batfrom the extracted folder. The batch file starts the same Python script and keeps a console window open for the menu.
Project facts
These are the facts a reader can re-check in the repository. Nothing in this table is a promise that the project is still active.
Field | Value |
|---|---|
Repository |
|
License | MIT, according to the project's LICENSE file; read that file for the authoritative text |
Platform | macOS and Windows. The downloader is a Python script; the Windows side adds batch helpers for building recovery media. |
Written in | Python, with Windows batch scripts for the entry points and the media helper |
Version reviewed | Not pinned for this edition. The project publishes script updates rather than numbered releases, so check the repository's recent commits before relying on a specific behavior. |
Maintenance status | Read the repository README and the date of the most recent commit; that is the only current answer. |
License summary
The source code is released under the MIT license, which is permissive: you may use, modify, and redistribute the script, provided the copyright notice and license text travel with it. The repository's LICENSE file is the authority, and if that file changes, the file wins over this summary.
The installers the script downloads are a different matter. macOS installer packages are Apple's software, distributed under Apple's own license terms. Downloading them for your own Mac is the ordinary use; redistributing them, or bundling them with a product, is not something this script's license grants.
Working through the script
- Choose a catalog. The first menu selects which Apple catalog to read. You will typically see the public release catalog that ordinary Macs use, beta and developer catalogs, and a restore catalog for Internet Recovery images. Public release is the right default for almost everyone.
- Read the version list. The script prints each available product with its build identifier. Pay attention to the build: two entries that share a marketing name but differ in build are not the same installer, and the build is what you compare later against Apple's records.
- Select a version. Type the list number and press Enter. From here the script handles the resolution of packages and shared support files on its own.
- Let the download finish. Progress, sizes, and speeds print in the terminal. The files land in
macOS Downloadsin a subfolder named for the product. If the run is interrupted, start it again and the script skips what is already on disk. - Inspect the payloads. Before you build media, look at what arrived. You should see
.pkgpackages and support files, not a single mysterious archive. - Assemble the installer. On macOS, run
BuildmacOSInstallApp.commandand point it at the downloaded product folder. It combines the packages and shared support into anInstall macOSapplication thatcreateinstallmediacan use. On Windows,MakeInstall.batperforms the equivalent step and writes an Internet Recovery image instead of a full installer app.
How to verify the installers are Apple's
"Downloaded from Apple" is a claim you can test in a few minutes. Run through these checks before you trust the files.
- Watch the URLs. Run the script in a terminal rather than double-clicking it. Every request prints its source URL. The catalog requests should go to
swscan.apple.com, and the package downloads should resolve to Apple's distribution hosts, not to mirrors or third-party sites. - Check a package signature. Run
pkgutil --check-signatureon one of the downloaded.pkgfiles. A valid Apple package reports a signature chain that leads to Apple as the signing authority. A missing or mismatched signature means you should stop and re-download. - Check the assembled app. Point
codesign --verify --verbose=2at the installer application you built, and assess the installer package withspctl --assess --type install -vv. These commands report whether the code is intact and correctly signed. - Compare the build afterwards. Once something is installed,
sw_vers -buildVersionprints the build you ended up with. It should match the identifier the script showed when you selected the version.
A signature check proves origin, not outcome. It cannot promise that the USB will boot on your particular Mac, so the boot test stays on your checklist.
Building a bootable USB
There are two routes, and they produce different things. A full installer USB can reinstall or upgrade a Mac offline. An Internet Recovery USB contains a recovery environment that downloads macOS during installation, so it needs a network.
Prepare the drive. Open Disk Utility and switch to View -> Show All Devices, then select the USB device itself, not the volume indented under it. Choose Erase, set the scheme to GUID Partition Map, the format to Mac OS Extended (Journaled), and give it a short name such as MyVolume. Erasing destroys everything already on the drive.
Write the installer. With the application assembled, the standard command is:
sudo /Applications/Install\ macOS\ <Name>.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --nointeractionThe tool erases the target volume, copies the installer, and renames the volume to the installer's name. Drop --nointeraction if you would rather confirm the erase interactively.
Restore a recovery image instead. If you built media from the restore catalog, use Disk Utility's Restore function: choose the USB volume as the destination, pick the downloaded recovery image as the source, and start the restore. This is the route that works when the media was prepared on Windows.
Label the drive. Write the macOS name and the build identifier on the drive or its case. Two unlabeled USB drives look identical a month later, and the build identifier is the detail you will need.
The job is complete when ls /Volumes shows a volume named for the installer, diskutil list shows the expected partition layout on the USB, and the Mac actually boots from it.
Setting the startup disk
On an Intel Mac, restart and immediately hold the Option key until the boot picker appears, then select the installer volume. To make the choice permanent, open System Settings -> General -> Startup Disk and select the USB. In Terminal, sudo bless --mount /Volumes/MyVolume --setBoot sets the same flag on older systems.
On an Apple silicon Mac, shut down and hold the power button until the startup options screen appears. Before the USB can be selected, the security policy must allow booting from external or removable media; set that under the startup options security settings. Without it, the drive simply will not appear as a boot choice.
After the installation, return to the startup options or Startup Disk and select the internal disk again. Otherwise the Mac keeps offering the USB at every restart.
The limits are worth understanding
- It is a downloader, not a patcher. gibMacOS does not modify the system image, the boot loader, or anything else in the installer. It cannot make an unsupported Mac run a newer macOS, and it does not install a system by itself.
- Apple's catalog is the source of truth, and it moves. Versions disappear when Apple retires them. A tutorial with a fixed menu will age badly; the version list is always whatever Apple currently publishes.
- Internet Recovery media is not an offline installer. It contains a recovery environment and fetches macOS during installation, so the target Mac needs a network. It also tends to install the newest release the Mac supports rather than the version you picked.
- Full installer media needs the assembly step. Modern installers ship as chunked packages plus shared support files, so copying downloads onto a USB drive will not create a bootable disk. The build step is what turns the pieces into an application.
- There is no graphical interface. Everything is a numbered menu in a terminal. If that is not how you want to spend an afternoon, the App Store and
softwareupdateare friendlier routes. - Signature checks prove origin, not compatibility. Apple's signature says the payload is genuine. It says nothing about whether your Mac, its firmware, or its current security policy will accept the USB.
- The trade-off is maintenance. A lightweight script that follows Apple's catalogs must be updated when Apple changes the format. That is the price of not shipping a large installer of its own.
Should you use it?
gibMacOS is worth the download in a few specific situations. Use it when:
- Software Update no longer offers the macOS release you need, but Apple still publishes it in the catalog.
- You need bootable media for a Mac that will not start, or you want an offline installer you can keep.
- You have no working Mac and only a Windows PC, and you need Internet Recovery media.
- You want to inspect the packages and verify their signatures yourself rather than trusting a single installer application.
Skip it when a supported Mac can do the job directly. If the Mac already runs and the version you want is available, softwareupdate --list-full-installers and softwareupdate --fetch-full-installer --full-installer-version <version> fetch the same installer through Apple's own mechanism. On Apple silicon, a reinstall is usually the built-in recovery route or a DFU restore with Apple Configurator. And if the goal is running a newer macOS on an unsupported Mac, the installer is only the first step; that work belongs to boot-loader projects such as OpenCore Legacy Patcher, which carry their own risks.
When something fails, work from the smallest recoverable step. Re-run the script to resume a broken download. If a version disappeared from the catalog, pick another entry or use Apple's own installer listing. If the USB will not boot, erase the drive again with GUID Partition Map and Mac OS Extended (Journaled), rebuild the media, try another port or another drive, and fall back to Internet Recovery with the recovery key combinations.
The honest summary is narrow: gibMacOS exposes the installers Apple still publishes and helps you put one on a USB drive. Verify the signatures, label the drive, test the boot, and treat the repository README as the current source of truth about the project.



