User Guide
Version Tracker tracks all your macOS applications and their updates, from a single interface. It automatically scans your software sources (Mac App Store, Homebrew, Sparkle, GitHub, direct downloads, package managers, AI tools…) and tells you what's up to date, what isn't, and what to do to update it. This guide covers Version Tracker 1.2.
🚀 Quick start
- Launch Version Tracker. On first launch, a setup assistant guides you through granting Full Disk Access (needed to scan your applications), then optionally installing the package managers you want to track. Everything can be changed later in Settings.
- Enjoy the free trial. A 7-day trial of the full version starts automatically — no credit card required. When it ends, the app returns to the free version (scanning always remains available).
- Wait for the first scan. Depending on the number of installed apps and active sources, the initial scan takes 10 to 60 seconds.
- Check the « All » tab. This is where all available updates from all sources are gathered.
- Click « Update All » to launch all updates at once, or use the individual buttons to manage each app.
🗃️ Supported sources
Version Tracker detects updates for:
| Source | Description |
|---|---|
| macOS Updates | Apple system updates (Software Update) |
| macOS Security | macOS security-patch tracking (SOFA feed) |
| Mac App Store | All apps installed via the official App Store |
| Homebrew Casks | GUI applications installed via Homebrew |
| Homebrew Formulas | Homebrew command-line tools |
| Sparkle | Apps using the Sparkle auto-update framework |
| Electron | Apps built with Electron, updated via Squirrel |
| Tauri | Apps built with Tauri's built-in updater |
| GitHub Releases | Apps distributed via GitHub Releases |
| Direct download | Apps with an installer provided on an official site |
| Mac App Store « Discover » | Apps detected outside the App Store but available on it |
| Adoptable Apps | Apps detected outside Homebrew but available as a cask |
| Microsoft (MAU) | Word, Excel, PowerPoint, Outlook, OneNote, Edge via Microsoft AutoUpdate |
| Google apps updated via Keystone (Chrome, Drive…) | |
| Adobe Creative Cloud | Creative Cloud apps via the Adobe updater |
| Apple Tools | Xcode, Command Line Tools, Rosetta |
| Xcode (xcodes) | Xcode versions managed by the xcodes CLI, stable and beta channels |
| JetBrains plugins | User plugins of JetBrains IDEs and Android Studio (Marketplace) |
| Android SDK | Installed Android SDK platforms and tools |
| Qt | Qt Maintenance Tool components |
| Docker / Podman | Container images and their newer versions |
| Ollama | Local AI models managed by Ollama |
| AI & agents | Skills, plugins and marketplaces of AI tools (Claude Code, Codex, Gemini…) |
| Package managers | npm, yarn, pnpm, pip, pipx, uv, gem, cargo, rustup, conda, go, bun, deno, mise, MacPorts, Nix, Flutter, Composer, SDKMAN, TeX Live, gcloud… |
| Editor extensions | Extensions of VS Code, VS Code Insiders, VSCodium, Cursor, Windsurf |
Each source can be enabled or disabled individually in the Settings.
🖥️ The interface
The main screen is divided into three columns, topped by a toolbar:
Left sidebar
Navigation is organized into collapsible sections that you can reorder by drag and drop. The counter next to each category shows the number of available updates.
- OVERVIEW — Dashboard (overview, recent activity, latest snapshot) and Snapshots
- UPDATES — All (every update in a single list), Apps, Packages, Homebrew, System Updates, Apple Developer Tools…
- Then sections by domain (APPLICATIONS, SYSTEM, AI, JavaScript, Python, Rust, editors…): only those matching what is actually installed on your Mac appear.
Toolbar
- Scan — runs a full scan (the button also lets you cancel a running scan)
- Settings and Feedback — direct access to preferences and the feedback form
- Two buttons to show/hide the sidebar and the Details panel
Center area
The list of items for the selected category, with a search field. Each row shows:
- The app or package icon and name
- The current version and the available version
- A contextual action button (Update, Download, Open, Show in Finder…)
Right sidebar (Details)
Details for the selected item: description, versions, release notes, source, path on disk.
Note : the window width is remembered between sessions. The minimum size is designed to comfortably display all three columns.
🔄 Updating applications
Individual update
Click the green « Update » button on a row (requires an active license or the trial — see License & trial). Depending on the source:
- Mac App Store — uses CommerceKit (silent background update)
- Homebrew Cask/Formula — runs
brew upgrade(with admin authentication if needed — see below). If brew refuses the in-place upgrade, Version Tracker automatically applies the forced reinstall brew recommends. - Sparkle — downloads the DMG/ZIP, unmounts the old version and installs the new one
- GitHub — downloads and installs the most recent binary
- Direct download — see next section
Automatic backup: when the privileged helper is enabled, the previous version of the app is backed up before every update. If anything goes wrong, restore it from Settings → Backups (retention period and number of copies are adjustable).
Batch update
The « Update All » button in the All view launches every automatable update in sequence, after a confirmation that recaps the number of updates. You can leave the view — the operation continues in the background, and a summary is shown when it finishes (including deferred updates).
Manual download (« Download »)
Some apps don't have an automatic mechanism but expose a direct download URL (PKG, DMG, ZIP). For these:
- The orange « Download » button appears
- The file is downloaded to your downloads folder (default
~/Downloads, customizable in Settings) - Once downloaded, the button becomes « Show in Finder » to finalize installation manually
The « Download all » button starts batch downloads for all eligible apps.
If there's an error (HTTP 403, file not found, etc.), the button switches to « Open »: Version Tracker launches the installed app so it can handle its own update.
📸 Snapshots
The Snapshots view (OVERVIEW section) captures the complete software state of your Mac: applications, packages, tools, installed versions and known updates.
- Create Snapshot (⇧+⌘+N) — captures the current inventory. You can then rename or pin it.
- Compare — select two snapshots to see everything that changed between them: installed, removed or updated items, with filters by change type.
- Export… — exports a snapshot or a comparison as JSON, CSV or Markdown. Two privacy profiles: Full (keeps paths and machine name — keep it local) or Shareable (absolute paths, username and machine name are masked).
Typical use cases: documenting a machine before a migration or reinstall, tracking what an update session actually changed, or sharing a clean inventory.
Automatic snapshots
Two options in Settings → Updates:
- Automatic snapshots around “Update All” — creates an inventory snapshot before and after each batch update, to compare and document the changes.
- Snapshot after each scheduled scan — at the end of each automatic scan, creates a snapshot — only if something changed since the last one.
⚙️ Settings
Settings are organized into panes:
| Pane | Contents |
|---|---|
| General | Startup, language, menu bar (« Open at login »), window close behavior, system permissions and the Privileged Helper |
| Appearance | Theme (System / Light / Dark) and visual customization |
| Notifications | Update alerts and badges; macOS notification permission |
| Sources | Enable or disable each scanned source. Disabling a source hides its apps and speeds up scans |
| Automation | Automatic scan scheduling — by interval or at a fixed daily time (app open or closed) —, scan on launch, Background Scan and cache management |
| Updates | Update rules (including “Hide updates incompatible with this macOS”), automatic snapshots, Homebrew options (including “Clean up the Homebrew cache”) and the manual-downloads folder (remembered via a security-scoped bookmark) |
| Backups | App backups created by the helper before each update: restore, delete, and adjust retention (period in days, copies kept per app) |
| Advanced | Diagnostics and debugging tools |
| License | Activate or deactivate your license key, see your plan |
| About | Version, Version Tracker's own updates (automatic check and download, beta channel) and privacy commitments |
Closing the window
- Closing the main window (⌘+W or the red button) hides the window: the app stays active in the background.
- The option « Closing the window keeps only the menu bar » (Settings → General) quits the main app on close and keeps only the menu bar icon.
- ⌘+Q really quits the application (an alert warns you if an update is in progress).
🔐 Administrator authentication
Some updates require administrator privileges. Version Tracker offers two mechanisms:
- Privileged Helper (recommended) — a small signed daemon, enabled once and for all via Settings → General → Privileged Helper → Enable.
- One-shot authentication — if the helper isn't installed, a system dialog asks for your admin password on each operation.
What the helper brings:
- No more password prompt on every update
- Atomic installation (the app is never left half-replaced)
- Signature and Team ID verification on the root side
- Automatic backup of the previous version before each update
Helper not responding? After an app update, use the « Repair » button in the Privileged Helper pane: it re-registers the daemon without asking for your password again.
🔑 License & trial
Version Tracker follows a freemium model:
- Free version — full scanning and inventory always remain available: you see everything that is outdated, across all sources.
- License (Solo, Family or Pro) — unlocks one-click update installs, batch updates and updates from the menu bar. See plans and pricing.
- 7-day free trial — starts automatically on first launch, no credit card required. When the trial ends, the app automatically returns to the free version.
Activating a license: open Settings → License and paste the key received by email after purchase. You can deactivate the license on one Mac to free a seat and activate it on another.
🖱️ Keyboard shortcuts
| Shortcut | Action |
|---|---|
| ⌘+, | Open Settings |
| ⌘+W | Close the main window (the app stays in the background) |
| ⌘+Q | Quit Version Tracker |
| ⇧+⌘+N | Create a snapshot (in the Snapshots view) |
To run a full scan again, use the Scan button in the toolbar or the Scan button in the menu bar panel.
🌍 Languages
Version Tracker is available in:
- 🇬🇧 English
- 🇫🇷 French
- 🇩🇪 German
- 🇪🇸 Spanish
- 🇵🇹 Portuguese (Portugal)
The language follows macOS system settings automatically, and can be overridden in Settings → General → Language.
🗑️ Uninstalling Version Tracker
Dragging the app to the Trash is enough for most people. Here's the full procedure if you want to leave nothing behind.
Simple method (recommended)
- Open Settings and turn off General → Open at login and Automation → Background Scan.
- Quit Version Tracker and its menu bar icon (click the icon → Quit).
- Drag
Version Tracker.appfrom/Applicationsto the Trash, then empty the Trash.
No rush : even without this step, any leftover traces are inert — nothing runs, nothing is root, nothing uses resources.
For a complete removal (optional)
Version Tracker installs three small components, all approved by you at install time : a privileged helper and a menu bar icon (both inside the app — they disappear with it), and a scheduled scan task (a separate file). If you skipped the step above, remove it manually :
launchctl unload ~/Library/LaunchAgents/com.jpflorencio.VersionTracker.agent.plist 2>/dev/null
rm -f ~/Library/LaunchAgents/com.jpflorencio.VersionTracker.agent.plist
To also remove your app backups and inventory snapshots (irreversible) :
rm -rf ~/Library/Application\ Support/Version\ Tracker
defaults delete com.jpflorencio.VersionTracker
Finally, if Version Tracker is still listed in System Settings → General → Login Items & Extensions, remove the entry (it disappears on its own shortly after).
Planning to reinstall or switch Macs?
- Reinstalling on the same Mac : don't touch anything — your license key stays in the keychain and activates automatically.
- Moving to another Mac : free your activation seat first via Settings → License → Deactivate, before removing the app.
Privileged helper won't reinstall? In System Settings → General → Login Items & Extensions, turn Version Tracker off, then back on (the full cycle resyncs the state — turning it on alone isn't enough). If the problem persists, empty the Trash and restart.
🗑️ Uninstalling package managers
Before you start
- Open the Terminal app (Applications → Utilities). The shell configuration file mentioned below is
~/.zshrc(the macOS default). - Only remove tools that you installed for Version Tracker. If other software or projects depend on them, keep them.
- Uninstall individual tools first, and Homebrew last: uninstalling it removes all packages installed with it.
- After uninstalling, Version Tracker will simply stop tracking that source. You can reinstall any tool at any time from onboarding or Settings.
1. Tools installed directly by Version Tracker (via Homebrew)
| Tool | Uninstall |
|---|---|
| mas (Mac App Store CLI) | brew uninstall mas |
| Node.js (npm) | Check dependents: brew uses --installed node, then brew uninstall node |
| Python (pip) | Find the exact formula: brew list --formula | grep python, then brew uninstall python@3.13 (adjust the version) |
Homebrew will refuse to uninstall if other formulas depend on it — that is a safeguard, not an error.
Homebrew (last) — ⚠️ removes Homebrew and every package installed with it:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
The script lists any residual folders at the end (usually /opt/homebrew on Apple Silicon, /usr/local/Homebrew on Intel).
2. External tools (installed via their official guides)
If you installed any of these with Homebrew instead of the official installer, simply use brew uninstall <formula> instead.
| Tool | Uninstall |
|---|---|
| MacPorts | sudo port -fp uninstall installed, then follow the official guide: https://guide.macports.org/chunked/installing.macports.uninstalling.html |
| Nix | Multi-step procedure (launchd daemon, /nix volume, _nixbld users) — follow the "Uninstalling" chapter of the official Nix manual |
| mise | mise implode (removes mise and all its data) |
| Rust (rustup) | rustup self uninstall |
| Go | sudo rm -rf /usr/local/go /etc/paths.d/go (official package) |
| Flutter | Delete the SDK folder (e.g. rm -rf ~/development/flutter) and remove the PATH line from ~/.zshrc |
| Docker Desktop | In Docker Desktop: Troubleshoot → Uninstall, then drag Docker.app to the Trash |
| Ollama | Quit the app (menu bar icon), drag Ollama.app to the Trash, then rm -rf ~/.ollama (also deletes downloaded models) |
| Miniconda | conda init --reverse --all, then rm -rf ~/miniconda3 |
| MacTeX / TeX Live | Follow the official guide: https://www.tug.org/mactex/uninstalling.html (notably /usr/local/texlive/<year>) |
| Composer | rm /usr/local/bin/composer (or wherever your composer.phar lives) |
| SDKMAN! | rm -rf ~/.sdkman, then remove the SDKMAN lines from ~/.zshrc |
| Ruby (RubyGems) | If installed via Homebrew: brew uninstall ruby. Apple's system Ruby cannot be removed |
| Yarn | npm rm -g yarn, or corepack disable if enabled through Corepack |
| pnpm | rm -rf ~/Library/pnpm, then remove the PNPM_HOME lines from ~/.zshrc (if via npm: npm rm -g pnpm) |
| pipx | Optional: pipx uninstall-all, then python3 -m pip uninstall pipx and rm -rf ~/.local/pipx |
| Bun | rm -rf ~/.bun, then remove the bun lines from ~/.zshrc |
| Deno | rm -rf ~/.deno, then remove the PATH line from ~/.zshrc |
| GitHub CLI (gh) | brew uninstall gh (or sudo port uninstall gh via MacPorts) |
| uv | uv cache clean && rm -rf "$(uv python dir)" "$(uv tool dir)", then rm ~/.local/bin/uv ~/.local/bin/uvx |
| VS Code / Insiders / VSCodium / Cursor / Windsurf | Drag the application to the Trash; residual data lives in ~/Library/Application Support/<app> and ~/.vscode (or equivalent) |
Verify
For each uninstalled tool: command -v <tool> should print nothing (open a new Terminal window first).
❓ Frequently asked questions
Why is the « Update » button greyed out or asking for a license?
The free version offers full scanning and inventory, but one-click update installs require an active license (or the 7-day free trial). Activate your key in Settings → License. See License & trial.
Why aren't some apps detected?
Check that:
- The corresponding source is enabled in the Settings
- The app is properly installed in
/Applicationsor~/Applications(not in an exotic folder) - The app exposes a correct
Info.plistwith its bundle ID
Why is a source counter empty after an update?
That's normal. Counters reflect available updates. Once the update is done, the app returns to « up to date » state and disappears from the view. Use the Scan button if you want to force a re-check.
The Mac App Store keeps asking for updates I just performed
The Mac App Store can be slow to confirm an installation. Version Tracker resynchronizes versions on disk after each batch and on return to the foreground. If the problem persists, run a manual Scan.
The menu bar icon stays visible after quitting the app
That's the menu bar companion, a separate agent that keeps watching your updates even when the main app is closed. To disable it, uncheck « Open at login » in Settings → General, or choose Quit Version Tracker from the icon's menu.
A direct download produces a file named ….download
This happens with some CDNs that don't return an extension in the URL. Version Tracker tries to get the real name via the HTTP Content-Disposition header, but as a last resort uses a generic name. Just rename the file to .dmg, .zip or .pkg based on its content.
How do I clear pending downloads?
Go to the All view: apps already downloaded show « Show in Finder ». You can remove them from disk manually via Finder; Version Tracker will reset the trace on the next scan revealing a newer version.
Does Version Tracker track or collect data?
No. No telemetry, no inventory transmitted. Network requests are limited to license validation and querying software sources (App Store, Homebrew, Sparkle Appcasts, GitHub API…) to retrieve available versions. Your software inventory stays on your Mac. See our Privacy Policy.
📩 Contact
To report a bug, suggest an improvement, or simply share feedback: contact@version-tracker.app — or use the Feedback button right inside the app.