explaingit

felixkratz/sketchybar

11,744CAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A fully customizable replacement for the macOS menu bar that you build and style yourself using shell scripts, with live updates driven by timers, system events, and custom triggers you define.

Mindmap

mindmap
  root((sketchybar))
    What it does
      Replaces macOS menu bar
      Scriptable live items
      Event driven updates
    Tech stack
      Written in C
      Shell script plugins
      Lua scripting API
    Use cases
      Weather and music widgets
      System event triggers
      Custom graph displays
    Community
      Shared configs
      Plugin library
      GitHub Discussions
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a custom macOS menu bar showing live CPU usage, weather, and current song driven by shell script plugins

USE CASE 2

Wire menu bar items to system events like network switches or song changes so they update automatically

USE CASE 3

Mirror existing macOS system tray apps into your custom bar layout so you keep the tools you rely on

USE CASE 4

Create animated status indicators with popups and mouse-click actions using the built-in event system

Tech stack

CShellLua

Getting it running

Difficulty · moderate Time to first run · 30min

Requires macOS and comfort writing shell scripts, initial setup involves creating a config file and writing item plugins before anything appears.

Free to use and modify, but any changes you distribute must also be released under the same GPL v3 license, commercial use is allowed as long as you keep it open source.

In plain English

SketchyBar is a replacement for the macOS menu bar at the top of the screen. Instead of the standard Apple bar, you get one that you build and style yourself using shell scripts, with full control over every element it displays. The core idea is that nothing in the bar is fixed. You can add or remove items at any moment, change their appearance, and wire them up to events, all while the bar is running. A weather widget can update on a timer, a notification badge can appear when a message arrives, and a custom graph can draw live data, all driven by scripts you write or borrow from the community. Out of the box the bar supports text, icons, background colors, borders, popups, mouse clicks, and animated transitions between states. It can also mirror macOS native menu bar apps into its own layout, so you do not have to give up system tray tools you depend on. The event system means items can react to things like song changes, network switches, or any custom trigger you define. The project is written in C and licensed under GPL v3. It started as a fork of an older project called spacebar, which itself grew out of a status bar feature that the macOS window manager yabai once included. The author has since rewritten it from scratch. A Lua scripting API, a companion symbol font, and C/C++ helper bindings are available as separate related projects. Community-shared configurations and plugins are collected in the GitHub Discussions section, which is a practical starting point for anyone who wants a finished look to build from.

Copy-paste prompts

Prompt 1
Write a sketchybar shell script plugin that shows the currently playing Spotify song and pauses or resumes playback on click
Prompt 2
Create a sketchybar item that displays live CPU usage as an updating graph using the event system
Prompt 3
Show me how to configure sketchybar to display a weather widget that refreshes every 30 minutes using a timer
Prompt 4
Write a sketchybar config that adds a color-changing network status indicator that reacts when I switch WiFi networks
Prompt 5
How do I use sketchybar popups to show a dropdown list of open windows when clicking a custom bar item?
Open on GitHub → Explain another repo

← felixkratz on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.