Changelog
New updates and improvements to Tappie
The Upgrade button always does something
When Tappie's package catalog lagged behind Homebrew, the Upgrade button could silently do nothing: the detail view knew about the update, but the button trusted the stale list. The list now takes its update verdict straight from brew outdated.
The Upgrade button could silently do nothing when the package catalog lagged behind Homebrew; the package list now takes its update verdict straight from brew outdated, so the sidebar, the Updates count, the menu bar badge and the Upgrade button always agree
Fixed
Tappie knows its own version again
1.9.0 reported itself as 1.8.1 - a hardcoded version constant missed the bump - so it kept offering its own version as an update. The version now comes straight from the app bundle, so the two can never disagree again.
Scheduled checks every few hours, and a live resource readout
Scheduled update checks can now run as often as every hour, they no longer get lost when the Mac sleeps, and the status bar shows what Tappie and Homebrew are actually costing you.
Scheduled update checks can run every few hours (1 to 12), not only daily or weekly
NewThe status bar shows live resource usage: CPU for Tappie plus any running brew process, and memory in MB. Local system calls only - nothing leaves the machine
NewScheduled checks survive sleep: a check missed while the Mac slept runs after wake
ImprovedThe package list now refreshes when a scheduled check finds updates, so the list, the menu bar badge and the notification always agree
FixedThe Auto-update Minor policy label now says what it does: any update within the same major version
Fixed
Packages from a tap were invisible to Tappie
Anything installed from a third-party tap - Tappie itself included, if you installed it from our Homebrew tap - never registered as installed, so Tappie could not offer updates for it. The Health Report was reading the wrong package list too.
Packages installed from a third-party tap showed as Available rather than installed, and Tappie could not offer updates for them. If you installed Tappie with brew install --cask empiricapps/zenithal/tappie, the app could not see its own installation. Package matching now compares Homebrew tokens instead of comparing a tap-qualified name against a bare one
FixedThe Health Report counted every installed package as unlicensed and skipped cask signature checks entirely, because it replaced its own audit input with a poorer list. It now audits the real package data
FixedThe status bar shows the version and build number, and the text is selectable, so a bug report can name the exact build
Improved
More from Empiric Apps, and Upgrade All actually works
The dashboard now shows the rest of the Empiric Apps line-up, and the Upgrade All button counts the same updates the sidebar does - it had been greyed out for everyone since it shipped.
More from Empiric Apps on the dashboard: Empiric Commander, Zenithal and Metis, with a one-click Homebrew install for Zenithal. Bundled icons and static text - it makes no network request of its own
NewUpgrade All stayed greyed out even when packages had updates. This affected every user for as long as the button has existed, not a rare edge case. The toolbar button, the Updates tile and the upgrade preview now count the same list the sidebar shows
FixedThe Catalog tile counted installed packages instead of the whole catalog
FixedFiltering the installed list no longer scans the whole catalog for every package, so search is faster
Fixed
Now in your language
Tappie speaks German, Spanish, French, Japanese and Simplified Chinese, and Adopt Apps no longer comes up empty when one stale catalogue entry spoils the batch.
Tappie is translated into German, Spanish, French, Japanese and Simplified Chinese. It follows your Mac's language setting; you can override it for Tappie alone in System Settings, under General then Language & Region
NewAdopt Apps could come up empty and say there was nothing to adopt, when in fact a single stale entry in the local catalogue had blanked the whole list
FixedHomebrew's coloured output no longer appears as raw escape codes while an operation runs
FixedThe dependency graph no longer says "1 dependencies"
Fixed
Homebrew Doctor, upgrade previews, and adopting apps you already have
brew doctor is readable in place, an upgrade tells you which versions it moves before it runs, and apps you installed by hand can be handed over to Homebrew without a reinstall.
Run brew doctor from the Health Report and read its warnings in place, with a copy button for each command it suggests
NewUpgrading now shows the version each package moves to before it runs, with a link to the project's releases. Homebrew publishes no changelogs, so this is versions and a pointer at the vendor, not release notes
NewTools then Adopt Apps finds apps Homebrew also ships and hands them over without a reinstall, so they start getting updates along with everything else. It reads app names and versions on your Mac and matches them against Homebrew's catalogue locally
New
Taps, a thorough uninstall, and a way back to an older version
Third-party taps get a real interface, uninstalling a cask can take its leftovers with it, and package details explain how to go back a major version.
Manage third-party taps without the terminal: add, remove, and see which of your installed packages came from each one
NewUninstalling a cask now offers to remove the preferences, caches and support files it leaves behind - and shows you the exact list first
NewPackage details explain how to install an older major version, and removing old versions asks first, since that is the step that closes the door
NewCVE Lookup offers to install grype instead of reporting that it is missing
FixedClearer message when the vulnerability database download is interrupted
Fixed
Dialogs that fit, and a toolbar that says what it does
The update dialog, the package list and the About panel all stop cutting themselves off, and the three buttons that read as versions of the same idea now have distinct names.
Long release notes scroll inside the update dialog. Before, the dialog stretched past the bottom of the screen and the last lines were cut off
ImprovedRefresh now lives in the Packages menu where it belongs, still on Command-R, instead of competing with Update and Upgrade All in the toolbar
ImprovedUpdate is called Sync Catalog, because that is what it does: it fetches the latest formula and cask list from Homebrew and installs nothing
ImprovedUpgrade All shows how many packages it would touch, and greys out when there is nothing to upgrade
ImprovedReinstall has its own icon instead of borrowing Refresh's
ImprovedAbout is a real window now instead of a panel that clipped its own text, and it lists the other Empiric Apps, as does the Help menu
ImprovedDownloading an update closes the dialog instead of leaving it open behind the browser
FixedThe last package in the sidebar no longer sits half-hidden under the status bar with no way to scroll it clear
FixedSelected rows are legible again: the icon of a formula no longer disappears into the blue highlight, and the Available badge has enough contrast to read
Fixed
Icons for apps you have not installed yet
Casks you are only browsing now show the real application icon instead of a generic box, and CVE Lookup's half-wired parts are finished.
Icons for casks you have not installed - Homebrew's API carries no icon field, so browsing casks showed a generic box. With your permission they now show the real application icon, sourced from CaskFlow (MIT), which extracts it from the vendor's own bundle. Everything without artwork - every formula, and the casks CaskFlow does not cover - gets a colored monogram tile instead of an identical grey glyph. Installed casks keep reading their icon from the bundle on your Mac, with no network request at all
NewTappie asks once, on first launch, before fetching any catalogue icon. Say yes and it is one request per cask name to GitHub's raw CDN, cached on disk - no account, no cookies, nothing identifying you or your Mac, and formulae are never fetched. Say no and nothing is sent. Change your answer any time at Settings > Privacy > "Download icons for casks", which also clears the cache. See the privacy policy for the full description
ImprovedA calmer detail pane - each section sits in its own card, and the pane switches between one and two columns based on its actual width rather than guessing
ImprovedThe status bar spans the whole window instead of stopping at the sidebar, and carries the app name, so the greyed-out system title is gone
ImprovedCVE Lookup: the "run lookup automatically after each Homebrew update" preference was saved but never acted on. It works now
FixedCVE Lookup: the detail pane could only mirror a scan started from the Health Report window and did not refresh until you reselected the package. It can now start a scan itself and updates in place
FixedCVE Lookup: a scan had no working time limit and could spin forever. A hung scan is now stopped after three minutes
Fixedgrype's vulnerability database is downloaded from Settings with visible progress when you enable CVE Lookup, instead of silently in the middle of your first scan
Improved
Real app icons and a rewritten detail pane
Installed casks show their own application icon, and every package's details now sit next to the actions they justify.
Real app icons - installed casks show their actual application icon in the package list and detail pane, read from the app bundle already on your Mac with no network requests. The home screen gained an Applications grid of every cask that installs an app: click to select the package, double-click to open the app
NewRewritten detail pane - Install, Upgrade, Open and Pin sit next to Homebrew's caveats, the install date, whether you installed the package or a dependency pulled it in, the commands it adds to your PATH, what depends on it, other available versions, and a link to the formula source. Deprecated, pinned, keg-only and self-updating packages say so
NewPer-package disk usage broken down by version, with one-click removal of leftovers from past upgrades
NewProgress instead of a terminal - running operations show a progress card with steps (Fetch, Download, Install, Link), download percentage, elapsed time and a Cancel button. The activity log is collapsed by default and opens itself when Homebrew reports an error or asks a question
NewToolbar buttons show their name under the icon, with a toggle in View > Show Toolbar Labels
ImprovedThe update badge now follows Homebrew's own outdated flag instead of our version-string comparison
FixedFixed a launch failure where a single broken cask definition stopped the whole package list from loading
Fixed
Homebrew Services and the menu bar
Control your background services without the terminal, and keep an eye on updates from the menu bar.
Homebrew Services - start, stop and restart background services (postgresql, redis, nginx and more) from a new Services window (Tools > Services...). Services registered by another user are shown read-only with a sudo hint instead of failing
NewMenu bar - Tappie now lives in the menu bar with a badge showing how many packages have updates. Upgrade everything, re-check for updates, or jump straight to a package without opening the main window. Turn it off in Settings > General
New
Homebrew prompt fixes
Reliability fixes for package upgrades that ask for confirmation, plus a clearer fix path when Homebrew is owned by another macOS account.
Fixed package upgrades hanging when Homebrew asked for confirmation (y/N, RETURN) - Tappie now shows a dialog to answer
FixedChoosing "No" on a Homebrew prompt now reliably stops the operation
FixedClearer error with a one-tap "Copy Command" fix when Homebrew's folder is owned by another macOS account (the brew link permission failure)
Fixed
Smart Filter and a fresh look
Tappie's first Apple Intelligence feature: describe the packages you want in plain language and Tappie builds the filter for you, entirely on-device. Plus a refreshed app icon.
Smart Filter (Apple Intelligence) - type a plain-language phrase like "casks with updates, MIT licensed" and Tappie turns it into the advanced filter. Runs 100% on-device (Apple Foundation Models); the resolved filter is shown as a chip you can edit or clear. Requires macOS 26 with Apple Intelligence; not available in the cross-platform Tappie-py edition
NewNew app icon - a refreshed low-poly amber droplet
ImprovedResolved the project's Swift 6 concurrency warnings (no behavior change)
Fixed
More from Empiric Apps
Privacy string alignment
Text-only hotfix. The in-app Preferences > Privacy panel and the Health Report disclaimer still mentioned OSV.dev/Google after the 1.0.2 pivot to grype; this release brings every user-facing string into line with the published privacy policy.
Health Report, CVE Lookup, and Onboarding
A bigger release: a guided first-launch experience, a Health Report window that audits and fixes common Homebrew problems, and opt-in local CVE scanning via grype.
First-launch onboarding - three-step guided introduction with optional opt-in for daily background update checks
NewHealth Report (View > Health Report, Cmd-Shift-H) - audits installed packages for outdated versions, recoverable disk space, missing dependencies, license risks, and code signing issues; each finding has an in-app Fix that runs the matching brew command
NewCVE Lookup (opt-in, experimental) - local vulnerability scanning powered by grype; detects known CVEs against installed Homebrew formulae and distinguishes fixable advisories from upstream no-fix-yet cases; no per-package data leaves your Mac
NewHome screen quick actions - empty state lists actionable shortcuts (Health Report, Update Homebrew, Search, Dependency Graph, Upgrade All) and live stats (installed / updates / catalog size)
NewPrivacy manifest updated to reflect the new opt-in CVE Lookup data flow; dedicated Privacy Policy at empiricapps.com/tappie/privacy
ImprovedActivity Log detects 'already installed' no-ops and surfaces a clearer toast when an upgrade had nothing to change
Fixed
Bug Fixes & Improvements
Initial Release
The first public release of Tappie - a native macOS app for managing Homebrew packages with a clean visual interface.
Visual package browser with sidebar listing all formulae and casks
NewOne-click install, uninstall, upgrade, and reinstall operations
NewBatch upgrade all outdated packages at once
NewReal-time search with instant filtering by name or description
NewAdvanced filters by package type, installation status, and license
NewInteractive dependency graph with hierarchical and force-directed layouts
NewDependency graph export to PNG
NewBackup & restore with .brewmate, Brewfile, and JSON export formats
NewSelective restore with preview before applying
NewScheduled update checks with configurable daily or weekly intervals
NewUpdate policies: notify only, auto-update minor, or auto-update all
NewPackage pinning to prevent automatic updates
NewCustom formula editor with validation and Ruby code preview
NewTap management for organizing custom formulas
NewActivity log with color-coded terminal-style output
NewKeyboard shortcuts for common operations
NewFull VoiceOver accessibility support
NewNative SwiftUI interface with Dark Mode support
New
Stay Updated
Get notified about new releases and features.