holzcloud
Menu
holzBar: a light menu bar with a chevron and four dots on a wooden plank, beside it the name, “The menu bar manager for macOS — ready for macOS 27.” and the tags macOS 14–27, GPL-3.0, Homebrew

macOS 14–27

Open source

GPL-3.0

The menu bar, tidied up: hide what gets in the way, show it when you need it. And it runs on macOS 27.

The menu bar with the holzBar Shelf open below it, showing the hidden items
The holzBar Shelf shows the hidden items below the menu bar; a right-click on the dot opens the menu.

Runs on macOS 27

A new backend for the redesigned menu bar that macOS 27 brings.

Hide and show

Hide icons and bring them back on hover, click or scroll.

A Shelf for the notch

Hidden icons in a bar of their own below the menu bar.

Via Homebrew

One command to install, one to update.

Version 0.0.6 — Release on GitHub. Feedback counts on the issue tracker. holzBar is a young fork of Ice and is actively developed, so a lot may still change before 1.0.

holzBar keeps the Mac’s menu bar in order: what you rarely need disappears and comes back when you call for it. On top of that there is a bar for icons below the notch, a drag-and-drop layout, a search and settings for how the bar looks.

Features

Hidden until you need it

Only holzBar’s dot stays in the menu bar; what you rarely need is collapsed. A click, hover or scroll opens the holzBar Shelf with the hidden items right below the menu bar — with real item images, on displays with a notch too.

The right side of the menu bar with holzBar’s dot; the hidden items are collapsed
Collapsed: only holzBar’s dot tells you there is more.
The menu bar with the holzBar Shelf open below it, showing the hidden items
The holzBar Shelf shows the hidden items below the menu bar.
The right side of the menu bar with holzBar’s dot; the hidden items are collapsed
Collapsed: only holzBar’s dot tells you there is more.
The menu bar with the holzBar Shelf open below it, showing the hidden items
The holzBar Shelf shows the hidden items below the menu bar.
holzBar settings, General pane: Launch at login, the holzBar icon, the holzBar Shelf with its location, the displays it is used on and items covered by the notch, showing hidden items on click, hover or scroll, and automatic rehide with the Smart strategy

The essentials under General

holzBar can launch at login and shows a dot or another icon of your choice in the menu bar. The holzBar Shelf picks its place dynamically, and hidden items appear on click, hover or scroll — then disappear again on their own.

holzBar’s menu: holzBar Settings…, Search Menu Bar Items, Show Hidden Section, Zen Mode, How to Update…, Quit holzBar

Everything on a right-click

Right-click the dot for holzBar’s menu: the settings, the menu bar item search, the hidden section and Zen Mode. The search finds and opens any item, even while it is hidden.

holzBar settings, General pane further down: the holzBar Shelf on all displays and items covered by the notch, show on click, hover or scroll, automatically rehide with the Smart strategy, the menu bar item spacing slider marked BETA, and on macOS 27 the note that the camera and microphone indicator is hidden

Show and rehide

Hidden items appear on click, hover or scroll — with the trackpad and the mouse wheel. holzBar then hides them again automatically, with the Smart strategy if you like. Item spacing is available as a beta.

holzBar settings, Menu Bar Layout pane: the profile home with Apply and Bind, Save Current Layout…, groups with New Group…, spacers, and the Visible and Hidden sections with the menu bar items

Drag-and-drop layout

Drag items into the visible or the hidden section. Profiles such as “Work” or “Home” save a layout, groups put several items behind an icon of their own, and spacers add room.

holzBar settings, Menu Bar Appearance pane: Dynamic appearance, Tint, Shadow, Border, Shape Kind, Black menu bar and Round the screen corners

A bar to your taste

Tint as a solid colour or gradient, shadow, border and rounded or split shapes. On top of that, a black menu bar that makes the notch disappear, and rounded screen corners.

holzBar settings, Hotkeys pane: hotkeys for the hidden section, the search, opening an item by letter, the layout profile home, the holzBar Shelf, app menus, auto-rehide and Zen mode, each with Record Hotkey

A hotkey for every frequent action

Toggle sections, open the search, switch the holzBar Shelf on and off, toggle app menus and control auto-rehide — each action gets a shortcut of its own.

holzBar settings, Advanced pane: the always-hidden section, section dividers, where new items go, Live Activities, hiding app menus, the secondary context menu and the delays for hover and temporarily shown items

Fine-tuning under Advanced

Here you find the always-hidden section, where new items go, Live Activities, hiding app menus and the delays for hover and temporarily shown items.

holzBar settings, Advanced pane further down: showing hidden items automatically, Export… and Import…, Sync settings between your Macs with Turn On… through iCloud Drive, Nextcloud, Dropbox, OneDrive, Syncthing or a network share, and Accessibility and Screen Recording both granted

Sync and permissions

Further down under Advanced you can export and import your settings or sync them between your Macs through any folder they sync, such as iCloud Drive, Nextcloud, Dropbox, OneDrive, Syncthing or a network share. Below that, holzBar shows the state of every permission.

holzBar settings, Menu Bar Layout pane without Screen Recording: it explains that the pane shows pictures of the menu bar items, which macOS lets an app take only with Screen Recording, with an Allow Screen Recording… button

Screen Recording only when needed

The Layout pane shows pictures of the menu bar items, which macOS lets an app take only with Screen Recording. holzBar asks for it only when a feature needs it, and says why.

holzBar settings, About pane: the app icon, the version, copyright Jordan Baird and holzcloud, Based on Ice by Jordan Baird, the command brew update && brew upgrade --cask holzbar, a Releases button, and Acknowledgements, Website, Contribute and Report a Bug

Built on Ice

The About pane shows the version and the thanks to Ice by Jordan Baird. Updates come through Homebrew with brew update && brew upgrade --cask holzbar, and the releases are one click away.


Everything at a glance

Hide menu bar items

A section for icons you do not need, plus an “always hidden” section. Show on hover, click or scroll, rehide automatically, and hide app menus when they overlap.

holzBar Shelf

The hidden icons in a bar below the menu bar, with real item images and even spacing — handy with the notch.

Drag-and-drop layout

Assign icons to sections. Your old layout is carried over on first launch.

Search

Find and open any menu bar item, even while it is hidden.

Appearance

Tint as a solid colour or gradient, shadow and border, rounded and split shapes. Item spacing is in beta.

Hotkeys

Toggle sections, open the search, switch the holzBar Shelf on and off, and toggle app menus.

Profiles, groups, spacers

Save layouts as “Work” or “Home” and switch between them, put several items behind an icon of their own and add up to ten empty spacers. New in 0.0.2.

Black bar, rounded corners

A black menu bar that makes the notch disappear, and rounded screen corners with an adjustable radius. New in 0.0.2.

Automation and sync

holzbar:// commands and ready-made Raycast scripts that ask before they change anything lasting, Zen mode and Shortcuts actions, hidden items shown automatically when the battery runs low or the network drops, settings exported or synced between Macs through iCloud Drive or any folder your Macs sync.

System

macOS 14 to 27

Licence

GPL-3.0, like Ice

Basis

Ice by Jordan Baird

Installation

Homebrew or from source

Signature

Own certificate, no Apple Developer ID; build provenance attestation

Updates

Through Homebrew

Installation

holzBar runs on macOS 14 Sonoma to 27 and is checked in CI on macOS 14, 15, 26 and 27.

New install

The easiest way is Homebrew:

brew tap holzcloud/holzbar https://github.com/holzcloud/holzBar
brew trust --cask holzcloud/holzbar/holzbar
brew install --cask holzbar

brew trust is needed once: Homebrew only installs casks from third-party taps that you have trusted.

holzBar replaces the original Ice. If you have it installed, remove it first with brew uninstall --cask jordanbaird-ice. The app is signed with its own certificate, not an Apple Developer ID; the cask removes the quarantine flag so it opens normally. Updates go through Homebrew; holzBar itself never checks for updates.

To build it yourself, use Xcode 27 (macOS 27 SDK), as CI does; holzBar itself runs on macOS 14 or later:

git clone https://github.com/holzcloud/holzBar
cd holzBar
Scripts/install.sh

The app lands in ~/Applications.

The archive holzBar-0.0.6.zip is also available directly on the release.

Releases are signed with holzBar's own certificate (SHA-256 e55f0df15060b8c06c6842ccee85e6bc9f86cbbda3bd408abf991457840b1d95) and carry a build provenance attestation; check it with gh attestation verify on the downloaded archive.

Update from 0.0.6 beta 1 or 2

brew update && brew upgrade --cask holzbar

The Accessibility permission stays.

Update from 0.0.5

0.0.5 was published under the app's former name, as a different cask and app, so brew upgrade does not replace it and holzBar does not take over its settings. To keep your layout, hotkeys and appearance, export them in the old app (Settings → Advanced → Export…). Quit it and uninstall its cask (brew list --cask shows its name), install holzBar as above, grant Accessibility, import the file in Settings → Advanced → Import… and turn “Launch at login” on again. Settings of the original Ice are imported on the first launch anyway.

If macOS says holzBar “can’t be opened”

holzBar is signed with its own certificate, not an Apple Developer ID. The Homebrew cask removes the quarantine flag for you. If you downloaded the archive yourself — or macOS still blocks the app — take it out of quarantine:

xattr -dr com.apple.quarantine /Applications/holzBar.app

Then open holzBar again. Alternatively, open the app once, then click Open Anyway next to the holzBar message in System Settings → Privacy & Security.

Why holzBar?

📦 Zero dependencies No third-party packages at all — every line that runs is in holzBar’s repository.
🦅 Modern Swift 6 Built with Swift 6.4 and Xcode 27, the latest stable Swift and the macOS 27 SDK, in Swift 6 language mode with data-race safety checked by the compiler; @Observable instead of Combine, one backend per macOS generation.
🔒 Never online No update checks, telemetry or analytics. A CI check proves there is no network code in the app.
🛡️ Least privilege Only Accessibility at first launch; Screen Recording only when a feature needs it. Hardened runtime, private logs.
🍃 Lean No polling where macOS sends an event, no mouse tracking unless you use it, nothing kept in memory that nobody shows.
🪵 macOS 27 compatible A dedicated backend for the redesigned macOS 27 menu bar drawn by MenuBarAgent.
✅ macOS 14 to 27, checked Every pull request launches the app on macOS 14, 15, 26 and 27 and runs the 371 unit tests on each.
✨ More features Profiles, folders, spacers, Zen mode, Shortcuts actions, a black menu bar, URL commands, settings sync through any folder.
🌍 Five languages English, German, French, Italian and Romansh.
🍺 Homebrew first Install and update with one command.

holzBar vs. Ice and Thaw

What the original Ice 0.11.12 and the other active fork Thaw 3.0 beta do, and what holzBar adds. — means not available or not documented.

Ice 0.11.12 Thaw 3.0 beta holzBar
Compatibility
macOS 14 – 26 ✅ macOS 26 only ✅
macOS 27 (new menu bar drawn by MenuBarAgent) ❌ ✅ ✅
Launched and unit tested in CI on every supported macOS ❌ — ✅ 14, 15, 26 and 27
Features
Hidden and always-hidden sections, Ice Bar / holzBar Shelf, search, appearance ✅ ✅ ✅
Layout profiles ❌ ✅ ✅
Groups and spacers ❌ ✅ ✅
Folders with their own icon and colour; item images of your choice ❌ ✅ ✅
Choose where new items appear ❌ — ✅
Bar only on some displays, notch overflow ❌ — ✅
Black menu bar, rounded screen corners ❌ corners only ✅
Dashed and dotted borders, wallpaper, accent and glass tints ❌ ✅ ✅
Show hidden items on low battery or when offline ❌ — ✅
URL commands and Raycast ❌ ✅ ✅
Zen mode (also while presenting) ❌ ✅ ✅
Hotkeys per profile and per item ❌ ✅ ✅
Shortcuts actions (App Intents) ❌ ✅ ✅
Profiles bound to a display or a Space ❌ ✅ ✅
Open an item by letter ❌ ✅ ✅
Layout editor and Shelf from the keyboard, undo, VoiceOver actions ❌ ✅ ✅
Opened items stay up to 30 s, or open without showing the item ❌ ✅ ✅
Show an item briefly when it changes ❌ ✅ ✅ opt-in per item
Export and import settings ❌ ✅ ✅
Settings sync: iCloud Drive or any synced folder ❌ ❌ ✅
Languages English many, through Crowdin English, German, French, Italian, Romansh
Keep Live Activities visible ❌ — ✅ experimental
Show on scroll with a mouse wheel ❌ — ✅
Search tolerates typos and abbreviations ✅ (library) ✅ ✅ (built in)
Refuses hotkeys macOS cannot register, and says why ❌ — ✅
Input never stalls when an app hangs ❌ ✅ ✅
Items keep their section when an app changes its title ❌ ✅ ✅
Pauses while the screen is locked, settles after wake ❌ ✅ ✅
Look on every desktop, follows the icons, steps aside in fullscreen ❌ ✅ ✅
No screen-recording indicator when showing or hiding (macOS 27) — ✅ ✅
Hover and click on a second display (macOS 27) — ✅ ✅
URL commands ask before they change anything lasting; no URL ends Zen mode during a screen share — — ✅
Validated hotkeys, colours and numbers in imported and synced settings (no crash loop from bad settings) ❌ — ✅
Privacy and permissions
Network connections (update checks, telemetry, analytics) Sparkle update checks Sparkle update checks none — enforced by CI
Personal data (app names, item titles, paths) in logs partly public — private, enforced by CI
Asks for Screen Recording only when a feature needs it ❌ — ✅
Hardened runtime (no injected code or libraries) ✅ ✅ ✅ (checked by CI)
Settings import accepts only known keys of the right type, in range — (no import) — ✅
Settings import and sync can't turn sync on; the sync file carries no computer name — (no sync) — ✅
Menu bar item service accepts only holzBar's own code team check only — team or exact code hash
Fix for the permissions loop ❌ — ✅
Code and resources
Swift packages 5 10 (Sparkle, AXSwift6, CompactSlider, Ifrit, LaunchAtLogin-Modern and 5 from Apple) none
Swift language mode Swift 5 Swift 6 Swift 6 (data-race safety checked by the compiler), built with Swift 6.4 and Xcode 27
State management Combine @Observable and Combine @Observable, no Combine
Mouse event tap when "Show on hover" is off always running — off
Timers and polling while nothing is shown yes — only while needed
Settings sync checks for changes — (no sync) — (no sync) when the synced folder delivers them, no polling
Settings migration 6 version steps at every launch — once, while importing Ice settings
Runtime patching of AppKit (method swizzling) yes yes none
Item images in memory kept — released when unused
Unit tests run on every change none ✅ ✅ 371
App size — — 16.7 MB
Distribution and maintenance
Install and update with Homebrew ✅ ✅ ✅
Updates Sparkle (dialog can hang on macOS 26) Sparkle Homebrew
Every bug group of Ice's 282 open reports solved — — ✅ confirmed on a Mac in 0.0.6, see the list
Signed with a Developer ID ✅ — ❌ (own certificate instead)
Stable signature, so Accessibility survives updates ✅ — ✅ (own certificate, docs/signing.md)
Build provenance attestation (gh attestation verify) ❌ — ✅

macOS 27

macOS 27 no longer draws menu bar items as separate windows; it draws them all into one bar. holzBar ships a backend of its own for that: hiding through assertions in assessment mode with per-app sections, item discovery through Accessibility, and an editor that assigns apps to sections.

Known limitations on macOS 27

  • Items cannot be reordered on the bar itself, only assigned to sections.
  • Opening a system item (clock, battery, Wi-Fi) while hidden items are concealed takes about 150 ms longer.
  • Coming from 0.0.5 or earlier, macOS asks for Accessibility once more. If holzBar is stuck on the permissions window, click Reset and Grant Again.
  • “Hide application menus” is turned off on macOS 27, where macOS folds overflowing items itself.
  • The privacy indicator is hidden while items are hidden: while holzBar hides any item on macOS 27, Control Centre does not show its indicator for the camera, the microphone and screen recording; the small green dot beside the clock still shows the camera. It comes back while holzBar hides no item.

A fork of Ice — with thanks to Jordan Baird

holzBar is a fork of Ice by Jordan Baird. Ice is one of the best menu bar managers for the Mac, and nearly everything you see here is his work. holzBar only carries it on for macOS 27 while development of the original is slower.

The backend for macOS 27 comes from RabenkoYevhenii (pull request #995 at Ice). If you like Ice: please give Ice a star and sponsor Jordan Baird. holzBar is independent and neither affiliated with nor endorsed by the Ice project.

See it on GitHub

Source code, releases and the Homebrew cask.

Go to GitHub