v3.0 adds a command-line mode for unattended syncs via launchd, and an update checker that tells you when a new version is out.
What's New
Command-Line Mode
- New
--silentflag runs a full sync with no window, no Dock icon, and no notifications — forlaunchd, cron-style scheduling, or scripting. It's the same signed app, using the same environments, credentials, cache, and settings you've already set up - Writes warranty/purchase data back to Jamf Pro, the same as Run Sync in the app — a full sync, not a preview
--env <name>syncs just one or more named environments;--helpprints full usage- A ready-to-edit sample LaunchAgent for unattended scheduling ships in the repo under
docs/launchd/ - Every log line is now tagged
[GUI]or[CLI]so you can tell which one wrote it, in both the sharedsync.logand each environment's own log - If a scheduled command-line sync fails before it even starts (e.g. no environment configured yet), the app shows a one-time alert the next time you open it, instead of that failure only ever showing up in a log file nobody's watching
Update Checker
- The app now checks GitHub for newer releases — once a day automatically, or on demand from AxM Jamf Sync → Check for Updates… or Settings → General
- Shown as an Update Available item in the menu bar, or a dialog with release notes for an on-demand check, with View Release / Skip This Version / Later
- Never downloads or installs anything on its own — it only tells you a newer version exists and opens its release page
Sidebar & Setup
- An environment shows Syncing (command-line) in the sidebar while a
--silentrun is in progress for it, instead of looking idle - Renaming, deleting, or editing credentials for that environment is disabled until the command-line sync finishes, with an explanation instead of a silent no-op
- Every environment's ID is available from a right-click (Copy Environment ID) or a hover tooltip — useful for
--envand for matching a log file to its environment
Reliability
- Fixed a crash that could fail an entire sync just because Jamf wasn't configured or authenticated. A background or scheduled sync with real AppleCare coverage data waiting to be written, but no working Jamf connection, used to fail outright with an unrelated-looking error. It now does exactly what it does when Jamf credentials are simply missing: leaves those devices pending and finishes normally.
- Fixed reopening the app being able to silently kill an in-progress command-line sync. Under specific conditions — most likely to come up right after a Mac wakes and a scheduled sync starts automatically — opening the app while a
--silentrun was already going could terminate that run outright, with no error, no log entry, and no saved progress. Command-line syncs no longer share anything with the app that this could happen through. - Fixed saving new Jamf credentials silently starting a background sync. Changing the Jamf URL or client ID in Setup used to immediately queue a sync with no explicit action from you — indistinguishable from an unrelated automatic trigger. It still correctly marks the cached device mapping as needing revalidation; it just no longer starts that sync on its own. The next Run Sync (or scheduled/command-line run) does it, same as it always would have anyway.
Upgrade Notes
No action required. Existing credentials, cache, and preferences carry over unchanged. Command-line mode and the update checker are both new — neither changes anything about how the app already worked for you.
Full docs: Command-Line Mode · Release Notes