A native, configurable menu bar for macOS and an alternative to SketchyBar. Built with Swift, AppKit and SwiftUI.
Download for Mac · Website · User guide · Widget store
Download StableBar.dmg, drag it to Applications and open it. Setup walks you through a preset, a theme and a placement.
Or install with Homebrew:
brew install --cask seb-graf/tap/stablebarmacOS 14+ · Apple silicon · Free and open source. Releases update themselves. See Getting started for permissions, beta updates and uninstalling.
Follow your workspaces with AeroSpace, yabai or OmniWM. Without a window manager, try the opt-in macOS Spaces source.
Keep the active app, calendar, system stats and playback controls in reach. Widgets can open popups with graphs, lists and controls. Each display gets its own bar, with room for the notch.
Built-in widgets · Custom popups · Multiple displays
Choose from Built-in and six bundled themes, or save your own.
Right-click the bar and choose Edit Bar in Place to drag widgets between positions, add them with + or remove them with −. Changes save as you go, with undo.
Run a command that prints text or JSON, and its output becomes a widget. Refresh on a timer or on events.
Find widgets and themes in Settings → Packages → Store. StableBar shows a package's commands, hosts and permissions before anything runs.
Create a widget · Packages and the store
A shell script is enough
#!/bin/sh
# ~/.config/stablebar/widgets/disk.sh
used=$(df -h / | awk 'NR == 2 { print $5 }')
printf '{"text":"%s","icon":"internaldrive"}' "$used"{
"id": "disk", "type": "script", "position": "right", "interval": 300,
"command": "~/.config/stablebar/widgets/disk.sh"
}Change content, appearance and behavior in Settings, with undo and redo. Or edit ~/.config/stablebar/config.json: StableBar applies it when you save and keeps the last working bar if a change is invalid. The JSON schema gives your editor completion and validation.
Settings · Configuration · Command line · Example setups
A minimal configuration
{
"$schema": "https://raw.githubusercontent.com/Seb-GRAF/StableBar/main/stablebar.schema.json",
"theme": { "id": "catppuccin" },
"widgets": [
{ "id": "spaces", "type": "workspaces", "position": "left" },
{ "id": "app", "type": "activeApp", "position": "left" },
{ "id": "power", "type": "battery", "position": "right" },
{ "id": "clock", "type": "clock", "position": "right", "format": "EEE d MMM HH:mm" }
]
}Built by Sebastien Graf and Steve Mendes Reis, with help from everyone who has contributed.
Bug reports, ideas and pull requests are welcome. CONTRIBUTING.md explains how to build StableBar, run the tests and open a pull request. Report security issues privately through SECURITY.md.
Available under the MIT License, including commercial use and redistribution.







