Three visibility modes
Route detected menu bar items to Always shown, Floating shelf, or Always hidden.
Open-source macOS menu bar control
BarShelf is a native macOS menu bar manager with per-item visibility modes, a translucent floating shelf, Launch at Login, and an automation-friendly CLI.
Route detected menu bar items to Always shown, Floating shelf, or Always hidden.
Click BarShelf’s persistent status item to reveal hidden icons in a compact shelf below the menu bar.
Use barshelf commands and JSON output from scripts, power-user workflows, or AI agents.
brew tap lvtd-llc/tap
brew install --cask barshelf
BarShelf is a menu bar app, so it does not stay in the Dock. First launch opens a setup window; after setup, use the BarShelf menu bar item or Command-comma while BarShelf is active to open Settings, check for updates, and configure visibility modes and permissions.
BarShelf’s own ▦ icon always remains visible in the macOS menu bar. Click it to show or hide the floating shelf. Use Settings → Check for Updates to fetch the latest GitHub release and run a Homebrew cask upgrade when applicable.
If macOS does not expose an item reliably, use the fallback separator mode: hold Command (⌘), drag menu bar icons left of BarShelf’s │ separator, then collapse/expand the shelf.
Advanced routing depends on user-approved macOS permissions:
On first launch, BarShelf shows live permission status, buttons for the relevant macOS Privacy settings panes, and a Finish Setup button that unlocks after Accessibility is granted. You can reopen setup later from the BarShelf menu.
The native Swift CLI ships inside the app bundle:
/Applications/BarShelf.app/Contents/MacOS/barshelf status --json
/Applications/BarShelf.app/Contents/MacOS/barshelf install-cli
barshelf status --json
If /usr/local/bin is not writable, install to a user-writable PATH location:
/Applications/BarShelf.app/Contents/MacOS/barshelf install-cli --path "$HOME/.local/bin/barshelf"
barshelf status --json
barshelf list --json
barshelf show
barshelf hide
barshelf toggle
barshelf rescan
barshelf set <item-id> floating-shelf
barshelf launch-at-login status --json
barshelf launch-at-login enable
barshelf launch-at-login disable
barshelf open-settings
barshelf permissions
BarShelf is built with SwiftPM and AppKit. The app, CLI, and tests live in this repository.
swift test --configuration debug --enable-code-coverage
swift build -c release
./Scripts/build_app.sh
GitHub Actions runs tests and builds on every pull request. Release tags build and attach BarShelf.dmg. If Apple Developer secrets are configured, release builds are signed, notarized, and stapled automatically. See Signing and notarization.