updater — 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.
Scan to join WeChat group