View on GitHub

Mac Software Updater

Free, open-source replacement for MacUpdater (CLI + SwiftBar)

License Last Commit Version

Platform Zsh Homebrew SwiftBar

Sources Maintenance

macOS Software Update & Migration Toolkit 

Mac Software Updater is a targeted automation tool designed to bring order to your macOS environment. This project combines Homebrew, Mac App Store CLI (mas), and SwiftBar to solve two specific problems:

  1. Migration: Moving manually installed applications under the control of package managers (App Store or Homebrew).
  2. Updates: Monitors updates from the menu bar and applies them via a single terminal command.

⚠️ Note to Contributors & Testers

  • Pull Requests: Please submit all changes to the develop branch. The main branch is reserved for stable releases.
  • Upcoming Features: Want to try the latest version before it’s released? Switch to the develop branch to see what’s next.

🚀 Key Features

⚙️ How It Works

This is not a generic maintenance utility. It is a set of two scripts performing specific tasks:

1. Migration Wizard (setup_mac.sh)

Run via terminal, this script scans your /Applications folder to detect unmanaged software. For every app found, it checks if a matching version exists in Homebrew or the App Store.

2. Menu Bar Monitor (update_system.x.sh)

A lightweight plugin for SwiftBar.

📸 Screenshots

Main Menu Status
Overview of Homebrew and App Store updates
History
Submenu tracking update counts for the last 7 and 30 days
Main View History
Monitored apps
Submenu showing numbers of monitored apps
Managed Apps List
Submenu showing details of monitored apps
Formulae Details Managed Apps List
Preferences
Change Update Frequency, disable or force
Migration tool
CLI Tool
Main View History
Status Icon Appearance Description
Up to Date Everything Updated System is clean, checkmark icon displayed.
Updates Ready Updates Ready Badge with update count and red sync icon.
Plugin Update Plugin Update New version of the toolkit is available.

Preferences & Control

Manage the plugin behavior directly from the menu.

Feature Description
Update Frequency Toggle check intervals: 1h, 2h, 6h, 12h, or 1d.
Terminal App Choose preferred terminal: Terminal, iTerm2, Warp, Alacritty, or Ghostty.
Self-Update Check for updates. The plugin will scan GitHub and Codeberg for its own new versions.
Update Channel Switch between Stable (Main) and Beta (Develop) releases instantly.
App Store Toggle mas integration on/off directly from the menu.

🛠 Quick Start

1. Run the Installer

The fastest way to start is to run this command in your Terminal. It downloads and triggers the migration wizard:

Option A: Standard Install (GitHub)

curl -L https://github.com/pr-fuzzylogic/mac_software_updater/releases/download/v1.4.0/Installer.zip -o Installer.zip && unzip -q Installer.zip && cd mac_software_updater && chmod +x setup_mac.sh && ./setup_mac.sh

Option B: Emergency Mirror (Codeberg)

zsh -c "$(curl -fsSL https://codeberg.org/pr-fuzzylogic/mac_software_updater/raw/branch/main/setup_mac.sh)"

2. Follow the Wizard

The script will prompt you on how to handle detected applications. You can choose to migrate them or skip the process entirely.

3. Finish

Once completed, SwiftBar will launch automatically with the update monitor loaded.

Important: If macOS asks for permission to access your Documents folder, click Allow. This is required for SwiftBar to write and read the plugin file.


📦 Tools Used

This toolkit acts as the “glue” integrating standard macOS power-user tools:


🗑️ Uninstallation

If you decide to remove the toolkit, an uninstaller script is automatically placed in your application support folder during setup.

To uninstall:

  1. Open Terminal.
  2. Run the following command:
~/Library/Application\ Support/MacSoftwareUpdater/uninstall.sh

📝 Notes

Important: Since this script uses checksums to detect updates, modifying the code (e.g., changing icons) will trigger a “Plugin Update Available” alert. If you customize the script, please go to Preferences → Disable Self-Update to prevent your changes from being overwritten.

Limitation: Apple-native apps (e.g., iMovie) are often invisible to the mas CLI. While this plugin provides a workaround to monitor these “Ghost Apps,” the actual update must be performed manually in the App Store.

Known Issue: Apps running as iPad/iPhone wrappers on Apple Silicon are invisible to this tool. This is a limitation of the upstream mas command-line utility used for App Store interactions.

License

MIT License.