SketchyBar app icon

SketchyBar

github.com

A scriptable, open-source macOS status bar replacement with event-driven plugins, dynamic items, graphs, popups, and full mouse interaction support.

SketchyBar screenshot showing the app interface

SketchyBar is a free, open-source macOS status bar replacement that enables users to build a fully custom menu bar through shell scripts and a plain-text configuration file. (Free, open-source)

All bar elements are defined declaratively: users add items with properties such as icon, label, background color, padding, and click scripts, then group them into named components. Items can be added, removed, and modified at runtime without restarting the bar, which supports workflows where the bar adapts to the currently focused app or active task. The event-driven system listens for macOS system events — app focus changes, volume adjustments, display reconnects, calendar notifications — and triggers shell callbacks to update bar content automatically.

SketchyBar supports popup menus, allowing items to expand into floating panels with nested child items. The alias feature renders live copies of native macOS menu bar icons (Wi-Fi, battery, Bluetooth, third-party app icons) inside SketchyBar while retaining their original click behavior, so existing menu bar app functionality is not lost. A built-in graph component plots numeric data streams (CPU load, memory pressure, network throughput) as smooth bar or line graphs directly in the status bar. The project ships default plugins as a starting point; community configurations with hundreds of variants are shared in the official GitHub Discussions thread.

System requirements: macOS 11 Big Sur or later. Installed via Homebrew (brew tap FelixKratz/formulae && brew install sketchybar). Requires “Displays have separate Spaces” enabled in System Settings > Desktop & Dock. No App Store distribution; source code available at github.com/FelixKratz/SketchyBar.

Pricing: (Free, open-source) — GPL-3.0 license. Over 11,700 GitHub stars as of May 2026.

Limitations: Configuration requires shell scripting knowledge; no graphical settings panel is provided. The macOS native menu bar must be hidden via System Settings to avoid overlap. Configuration files require manual adjustment when the SketchyBar API changes between major versions. High plugin update frequency (many community scripts poll system data every second) can increase CPU usage if scripts are inefficiently written.

Alternatives: SwiftBar and xbar (both included in this directory) offer a simpler plugin model based on script output rather than full bar replacement, making them accessible without configuration expertise. Übersicht provides a widget-based approach to desktop and status bar customisation using web technologies.

Suitable for users who want complete, code-driven control over their macOS status bar layout, content, and interactivity, and who are comfortable editing shell scripts and configuration files.

Related Apps