LeanBattery
11 points wide · the percentage lives inside the icon

A battery indicator that
doesn't hog your menubar.

A native macOS menubar app that shows battery level and charging state in an 11-point-wide upright battery — with a popover for per-app energy use, battery health and low-battery alerts you set yourself.

Apple Silicon MacBooks, macOS 26 or later. Builds aren't notarized yet — macOS asks for one confirmation in Privacy & Security on first launch. Fully open source under MIT.

  • macOS 26+
  • Apple Silicon
  • Swift 6
  • 1.3 MB
  • MIT

Illustration with sample data. The narrow glyph in the menubar above is LeanBattery — the wide one beside it is macOS's own.

A battery app that costs you battery is a bad joke — so this one publishes its own numbers.

One glyph. Every state.

  • The LeanBattery menubar glyph, on battery.

    On battery

    The charge sits inside the glyph, so nothing extra is needed beside it.

  • The LeanBattery menubar glyph, charging.

    Charging

    A plug replaces the number and the fill turns green.

  • The LeanBattery menubar glyph, running low.

    Running low

    At 20% or below the fill goes red, before you have to think about it.

  • The LeanBattery menubar glyph, running hot.

    Running hot

    A red dot appears once the battery passes the temperature you set.

The same glyph drawn dark, for a light menubar.

Light menubar? The glyph inverts to match it — the fill stays translucent so the digits read either way.

What you get back

  • Your menubar space

    An upright battery 11 points wide, with the charge drawn inside it and a plug glyph when you're plugged in. On a notched MacBook that difference is the whole point.

    • 11-point icon
    • % inside the glyph
    • Plug when charging
  • The app that's draining it

    Top five apps by energy use, with icons and share bars, over the last hour, 8 hours, 24 hours or 7 days — read straight out of the power log macOS already keeps.

    • Per-app energy
    • Now → 7 days
    • Read-only
  • A warning you actually notice

    Set up to five of your own thresholds — below 20%, above 80% while charging, whatever you like. Each one can raise a floating pill, pulse the screen edge and play a sound.

    • 5 custom rules
    • Notch pill
    • Screen-edge glow

Everything else, one click away.

  • Battery header

    Charge level and whether you're on battery, charging or plugged in but not charging — with time remaining, the adapter's wattage, live system draw and battery temperature.

  • Energy by app

    The top five energy users with their real app icons and share bars, across four time ranges. Rows under 1% are dropped so the list stays readable.

  • Battery information

    Health, condition, cycle count, current capacity, voltage and the connected adapter — the numbers you'd otherwise dig out of System Information.

  • Low Power Mode

    Flip Low Power Mode from the popover instead of opening System Settings. The icon turns yellow while it's on, so you can tell at a glance.

Coming next: batteries for Bluetooth headphones, mice, keyboards and controllers.

Measured, not claimed

Numbers from the real app on a real Mac — an M3 Pro MacBook Pro running macOS 27 — sampled once a second by a script in the repo.

What you're doingCPUIdle wakeupsMemory
Sitting in the menubar — the 99% case<0.1%0 / min~15 MB
Notification on screen0.01%0 / min
Popover open, Now0.81%~38 MB
Popover open, 7d0.91%1.0 / min44 MB

The menubar figure is three ten-minute runs, measuring 0.06%, 0.08% and 0.06% mean CPU with the popover closed. A one-minute sample usually reads 0.00%, which flatters it — so the honest number is under 0.1%, not zero. Reproduce it with scripts/cpu-check.sh.

Why it's idle: there's no polling for battery state. The icon redraws when macOS posts a power-source, Low Power Mode or wake notification, and not otherwise — plus one lax 60-second timer for temperature, the single value macOS has no notification for. The popover's own timers exist only while it's open, and notifications cost nothing at all between events.

Running in under a minute

  1. Install

    Run brew install --cask manustays/tools/leanbattery, or download the .zip from Releases and drag LeanBattery.app to /Applications.

  2. Approve it once

    Builds aren't notarized, so the first launch needs System Settings → Privacy & Security → Open Anyway. Right-click → Open no longer works on recent macOS.

  3. Forget about it

    It sits in the menubar. Click for the popover, and turn on Launch at Login in Settings if you want it back after a restart.

Open source you can trust

  • MIT licensed

    A permissive license — use, fork and ship it however you like.

  • Fully local

    Battery and energy data never leave your Mac. LeanBattery reads macOS's power log; it stores no history of its own.

  • No account

    No sign-up, no login. Download it and go.

  • No telemetry

    The only network call it ever makes is a release check — automatically at most once a day, or when you ask. Switch it off and it makes none.

  • Swift 6, zero dependencies

    System frameworks only at runtime. Nothing third-party ships inside the app, and 159 tests cover the logic.

  • 1.3 MB

    A native AppKit agent app with no Dock icon. No Electron, no bundled browser.

Enjoying LeanBattery?

LeanBattery is free and open source, built in my spare time. If it saves you time, a one-time sponsorship — or even a quick star — genuinely helps and keeps me motivated.

No pressure — LeanBattery stays free either way.

MIT © 2026 Kumar Abhishek