This is the biggest update in Cork’s history that took over 6 months of consistent work. What started as a rewrite of the Terminal output matching mechanism grew into a ridiculously complex rewrite of every single system, major and minor alike.
Without further ado, let’s have a look at some of the important additions, fixes and adjustments, because I forgot most of the less important ones.
Additions
Every real-time command has an option to display the raw Homebrew output of the running command #196
Better package UX:
Any package can now be previewed from anywhere inside Cork, not just in select places
Consequently, now you can preview even installed packages, so you can see the details for more than one package at a time. This still has some quirks
Any installed package an have its detail opened from anywhere inside Cork
Consequently, if you have
Package filteringset toShow only manually installed packages, you can access the hidden dependency by right-clicking it in theDependencieslist, and opening its detail through the context menu action
The way to preview packages has been unified everywhere to be a right-click, context menu action instead of sometimes being its own dedicated button (like was the case in the package installation dialog)
New first-party Homebrew tap management:
Uses Speakeasy by Graham Hall to further decouple Cork from Homebrew
Currently supports two first-party Homebrew taps:
homebrew/coreandhomebrew/caskLoading of tap details is now almost three times as fast
Taps that use Speakeasy have a special badge
New screens for processes that included unexpected outputs
For example, package installation:
Differentiates between likely successful processes (those that didn’t include errors), and likely failed processes (those that did include errors)
Every process supports these
Much better UI for the Maintenance results report
Unsuccessful partial package updates now list every failed package, and the reason why it failed. In this case, the reasons are too long to be displayed, and can be accessed by the
ibuttonReal-time outputs now include a timestamp
Every package with a bound version (for example,
python@3.14) now consistently displays everywhere with a custom lock icon, instead of random places still showing it aspython@3.14


Progress bars now follow build-in macOS text conventions, with main text on top of the bar, with supplementary text under
All sheets now follow the macOS sheet titling convention by having a title separated by a divider
You can now open installed Casks through their Detail page by right-clicking on the
Installed asicon
Fixes
Migrated packages preventing package loading #613
Updates on startup failing with a cryptic JSON message #625
Some harmless outputs being incorrectly identified as errors
Decreased RAM usage by up to 12%
Fixed almost all stuttering caused by package reloading
All progress bars have been replaced to fix the various inconsistent behaviors and incorrect progress reporting #331, #329
Some non-streaming commands randomly not returning any output, for example the information loader for the
phppackage and the majority of third-party taps #622Updating process showed “errors” in results even though no errors occurred #541, #595
Modifying services (turning them on and off) didn’t reflect in the UI and the service had to be closed and re-opened
For users that didn’t have the “SF Symbols“ app installed, icons that were parts of other strings are now displayed as the actual icons, instead of question marks inside boxes
Loading of some tap details didn’t work
Switching from a Cask detail to a Formula detail would show the executable for the last opened Cask as the executable for the currently-opened Formula #655
Quickly switching between package details would not load the package detail, and a restart would be required
Fixed flashing text of some sheets when opening
Text in other languages that is not translated yet now falls back to English, instead of shoring the raw key (like
sheet.title)Pinned packages can no longer be updated by right-clicking on them
Adjustments
New Terminal output matcher that is generic, much more robust, and easier to extend and modify
Support for reporting unimplemented and unexpected outputs, giving you an overview of what exactly the various workflows did instead of silently failing, or reporting the wrong results
Faster matching all across the board
With the new Terminal output matcher, the whole backend was rewritten from scratch, including:
A list of packages in a tap now shows the first few packages, and a complete list can be opened in a new window
Searching in the list in the main Cork window still searches through all packages
New icon for “Preview“ & “Open detail“
Increased padding around outlined views for better readability
Custom Tap Hosts can now be specified directly in the tap addition dialog, instead of the process first having to fail to offer the option
New icon for Casks to make it easier to distinguish at smaller sizes (for an upcoming feature in another release…)
Unified subtitle look for outdated and adoptable package sections on the Start Page
The exclamation mark for marking errors in outputs now on the top right of the output line
Select downloading stages include a non-determinate progress bar to make it not seem like long downloads were stuck
New color for the
Already installedtagDependants are now a fully-fledged dropdown
…and probably many more changes, fixes and adjustments I can’t remember
That concludes the list of the most important changes in this release.
If you’d like to support AI-free development of quality software, please consider buying a license to keep Cork alive in the age of cheap slop.
Cork Community
Follow Cork:
Join the Community
See the Code
NO AI USED, EVER
As always, no AI is used at any point in the development of Cork, and we stand by that with Cork’s strict no AI policy, which remains among one of the strictest in the space.






















