updater
npx machina-cli add skill lu-zhengda/macos-toolkit/updater --openclawupdater — macOS App Update Manager
Run a health + update discovery pass:
!updater doctor --json 2>&1 || echo "updater not installed — brew install --cask lu-zhengda/tap/updater"
If updater is installed, use this default flow:
updater scan --jsonupdater check --jsonupdater update --all --dry-run --json- Ask for confirmation before any non-dry-run update command.
Summarize what is outdated (current vs latest), call out major updates, pinned apps, and errors, then propose specific next actions.
Commands
| Command | Purpose | Example |
|---|---|---|
updater scan --json | Discover installed apps and update sources | updater scan --json |
updater check --json | Check available updates | updater check --json |
updater check --json -v | Check with release notes | updater check --json -v |
updater outdated --json | List only outdated apps | updater outdated --json |
updater update <app> | Update specific app | updater update Firefox |
updater update --all | Update all apps | updater update --all |
updater update --auto | Unattended update (skip major, pinned, manual) | updater update --auto |
updater update --all --dry-run --json | Plan updates without changes | updater update --all --dry-run --json |
updater install <name> | Install app via Homebrew Cask | updater install visual-studio-code |
updater upgrade --json | Self-update updater | updater upgrade --json |
updater pin <app> | Pin app to prevent updates | updater pin Photoshop |
updater unpin <app> | Unpin app | updater unpin Photoshop |
updater rollback <app> | Restore previous version from backup | updater rollback Firefox |
updater rollback --all --json | Roll back all restorable apps | updater rollback --all --json |
updater cleanup --json | Find unused apps | updater cleanup --days 90 --json |
updater cleanup --delete --json | Move unused apps to Trash | updater cleanup --days 90 --delete --json |
updater history --json | Show update history | updater history --json |
updater schedule --json | Schedule periodic checks | updater schedule --interval 24 --json |
updater schedule --remove --json | Remove scheduled checks | updater schedule --remove --json |
updater menubar --json | Install/remove menu bar agent | updater menubar --remove --json |
updater config export --json | Export config as JSON | updater config export --json |
updater config import <file> --json | Import config and return status | updater config import config.yaml --json |
updater ui --json | Machine-readable UI command response | updater ui --json |
JSON + Agent Mode
- All updater commands accept
--json. - In Codex or Claude Code environments, updater auto-enables JSON output.
- Override auto-detection with:
UPDATER_AGENT_MODE=1to force JSON modeUPDATER_AGENT_MODE=0to force human-readable mode
updater update --jsonis for dry-run planning and requires--dry-run.
Output Handling Notes
check --jsonstatus values:ok,update_available,major_update,pinned,error.install --jsoncan returninstalled,no_match, ormultiple_matches.ui --jsonreturns a structuredunsupportedresponse instead of launching TUI.
Safety Guidelines
- Plan before apply: Use
update --dry-run --jsonbefore applying updates. - Confirm destructive actions: Require confirmation before
cleanup --deleteand broad update/rollback operations. - Pin critical apps: Use
pin/policy manualfor version-sensitive software. - Rollback available:
rollbackrestores from pre-update backups when present.
TUI Mode
Launch updater (or updater ui) without JSON mode for interactive TUI management.
Source
git clone https://github.com/lu-zhengda/macos-toolkit/blob/main/skills/updater/SKILL.mdView on GitHub Overview
The updater skill manages macOS applications by performing health checks, discovery, and updates. It supports scanning, checking for updates, planning updates with dry-run, pinning apps, scheduling checks, installing via Homebrew Cask, rolling back updates, cleaning unused apps, and self-updating.
How This Skill Works
Updater executes a standard flow: scan --json to inventory apps and sources, check --json to detect available updates, and update --all --dry-run --json to preview changes. It supports JSON/agent modes (override with UPDATER_AGENT_MODE) and a suite of commands for pinning, rollback, cleanup, schedule, and menu-bar management.
When to Use It
- You want to audit installed macOS apps and identify which are outdated.
- You want to preview updates with a dry-run before applying any changes.
- You need to pin apps or enforce an update policy to control versions.
- You are installing apps via Homebrew Cask or configuring a menu-bar updater agent.
- You need to rollback an update or clean unused apps and reclaim space.
Quick Start
- Step 1: Run updater scan --json to inventory apps and sources.
- Step 2: Run updater check --json to identify available updates.
- Step 3: Run updater update --all --dry-run --json, review results, then run without --dry-run after confirmation.
Best Practices
- Always run a scan then a check to identify updates before planning changes.
- Use updater update --all --dry-run --json first and review results before applying.
- Pin critical apps and use policy manual to prevent unwanted updates.
- Review major updates status and any errors in the --json output.
- Schedule regular checks with updater schedule to keep software current.
Example Use Cases
- updater scan --json to inventory installed apps and sources.
- updater check --json to see which apps have available updates.
- updater update --all --dry-run --json to plan changes without applying.
- updater install visual-studio-code to add a new app via Homebrew Cask.
- updater pin Photoshop to prevent future updates.