Skip to content

Installomator Metadata

Gil Burns edited this page Jun 7, 2026 · 1 revision

Installomator Metadata

The Installomator-Metadata repository is a companion project to Installomator that provides icons and descriptive metadata for Installomator label files. Third Party Patcher syncs this repository locally and uses it to enrich the Available Software catalog and the various managed-software views.


What the Repository Contains

The repository has two directories, with files named to exactly match Installomator label keys:

Directory Contents
Icons/ PNG icons, one per label (e.g. googlechrome.png)
Metadata/ Plist files with descriptive data, one per label (e.g. googlechrome.plist)

Each metadata plist can contain any of these fields:

Field Description
AppName Human-readable application name
AppID Bundle identifier (e.g. com.google.Chrome)
PackageID Package receipt identifier
Publisher Developer or company name
Description Short description of the app
Keywords Comma-separated search terms
Category Category label (e.g. Productivity, Developer Tools)
Homepage Publisher website URL
Documentation Support or documentation URL
Privacy Privacy policy URL

Not all fields are present in every file — Third Party Patcher uses whichever fields are available and omits the others.

Localization

Translated metadata can be placed in language-code subdirectories inside Metadata/. For example, French metadata for a label would live at Metadata/fr/<label>.plist. Third Party Patcher checks the user's preferred language first and falls back to the English (root) file.


How Third Party Patcher Uses It

Available Software catalog

The catalog pulls icons, app names, descriptions, publishers, keywords, categories, and links (Homepage, Documentation, Privacy Policy) from the synced metadata. This is what populates the app detail views, the category sidebar section, and the search index.

Managed Software and Update History

Icons are shown alongside app names in the Managed Software grid, Pending Updates, Pending Downloads, and Update History views. Where no icon is available locally, Available Software falls back to fetching the icon directly from the configured GitHub repository at runtime.

PatcherMenu

App icons appear in the Pending Updates and Pending Downloads sections of the menu bar popover.

Icon and metadata resolution priority

For every label, Third Party Patcher resolves icons and metadata from three sources in order:

  1. Admin-managed (Managed/Icons/<label>.png or Managed/Metadata/<label>.plist) — always wins; intended for custom overrides.
  2. Synced metadata repo (Installomator-Metadata/Icons/<label>.png or Installomator-Metadata/Metadata/<label>.plist) — used after the first sync; works offline.
  3. Remote GitHub fetch — used before the first sync or for labels that have no local file.

Sync Mechanism

The sync is handled by patcher metadata, which downloads the repository as a .tar.gz archive from GitHub and atomically replaces the local copy. The Scripts/ directory from the archive is discarded after extraction since it is not used.

The sync runs automatically on the scheduler's configured interval. To trigger it manually:

sudo /usr/local/bin/tpp/patcher metadata

The synced files are stored at:

/Library/Application Support/Patcher/Installomator-Metadata/

Configuration

Key Default Description
MetadataSyncEnabled true Enable automatic metadata sync on the scheduler interval
MetadataSyncIntervalDays 10 How often (in days) the scheduler re-syncs the repository
InstallomatorGitHubMetadataAccount "gilburns" GitHub account hosting the metadata repository
InstallomatorGitHubMetadataRepo "Installomator-Metadata" Repository name
InstallomatorGitHubMetadataBranch "main" Branch to sync

You can point to a fork of the repository — for example, to maintain your own icons or metadata overrides centrally — by changing the account and repo keys. Any fork must preserve the same directory layout (Icons/, Metadata/) and file naming convention.


Admin Overrides

For labels where you want to supply your own icon or metadata (or where the upstream repository has no entry), place files in the managed folders:

/Library/Application Support/Patcher/Managed/Icons/<label>.png
/Library/Application Support/Patcher/Managed/Metadata/<label>.plist

Admin-managed files always take precedence over the synced repository. See Managed Labels for how the managed folder is structured and deployed.

Clone this wiki locally