Skip to content

Installation

Gil Burns edited this page Jun 7, 2026 · 15 revisions

Installation

Third Party Patcher is distributed as a signed and notarized .pkg installer.


What the Installer Does

The package installs three command-line binaries and a LaunchDaemon:

File Destination
patcher /usr/local/bin/tpp/patcher
patcherscheduler /usr/local/bin/tpp/patcherscheduler
patcherreport /usr/local/bin/tpp/patcherreport
LaunchDaemon plist /Library/LaunchDaemons/com.gilburns.patcher.scheduler.plist

The postinstall script loads the LaunchDaemon immediately:

/bin/launchctl bootstrap system /Library/LaunchDaemons/com.gilburns.patcher.scheduler.plist

On upgrade, the preinstall script unloads the existing daemon first so binaries can be replaced safely.


Deploying via MDM

  1. Upload patcher-<version>.pkg to your MDM as a managed package.
  2. Scope it to the machines you want to patch.
  3. Deploy your configuration profile before or alongside the package (see Preference Keys).

The daemon starts automatically at install and runs every 10 minutes. Nothing else is required for basic operation.


Prerequisites

Requirement Notes
macOS 13 Ventura or later
swiftDialog Required for user-facing prompts. Use patcher ensure in your workflow or deploy it separately.
Network access to GitHub For Installomator label updates and app downloads. Required unless you supply only Managed Labels.

Installing swiftDialog Automatically

patcher ensure checks whether swiftDialog is present and installs or updates it via Installomator if needed:

sudo /usr/local/bin/tpp/patcher ensure

This is safe to include in a postinstall script or as a separate MDM policy.


Directory Layout After First Run

After the scheduler runs its first scan, it creates the following layout under /Library/Application Support/Patcher/:

Patcher/
├── Cache/
├── Config/
│   └── config.json
├── Discovered/
│   └── <label>.plist        # one file per discovered app
├── Installomator/
│   ├── Labels/              # downloaded .sh label files
│   └── Version.txt
└── Managed/
    ├── Labels/              # your custom label files (optional)
    └── Version.txt

Finder window showing the Patcher Application Support layout


Uninstalling

# Stop and remove the daemon
sudo launchctl bootout system/com.gilburns.patcher.scheduler
sudo rm /Library/LaunchDaemons/com.gilburns.patcher.scheduler.plist

# Remove the binaries
sudo rm -rf /usr/local/bin/tpp

# Remove data (optional — removes history)
sudo rm -rf "/Library/Application Support/Patcher"
sudo rm -rf /Library/Logs/Patcher

Clone this wiki locally