A tiny macOS menu bar app that shows — live, every second — how much power is flowing into (or out of) your MacBook's battery.
Direct download · macOS 13+ · free & open source · all releases · ☕ buy me a coffee
A clean, flat, iOS-style battery icon sits in your menu bar. Click it for the live panel: charge/discharge wattage, battery percentage ring, time to full or time remaining, charger wattage, battery health, and cycle count.
- Click the Download button above (it always grabs the newest DMG)
- Open it and drag BetterBattery into Applications
- Launch it from Applications — the battery icon appears in your menu bar
First launch on a fresh download: releases aren't notarized with a paid Apple Developer ID (yet), so macOS may block the first open. If double-clicking shows a warning, go to System Settings → Privacy & Security, scroll down to the "BetterBattery was blocked" notice, and click Open Anyway (on older macOS versions, right-click the app → Open works too). This is only needed once.
Requires macOS 13 Ventura or later. No special permissions — battery data is read from public IOKit properties.
- Live battery wattage — positive and green while charging (energy flowing into the battery), and the real-time draw while on battery. Read from IOKit's instantaneous amperage × voltage at 1 Hz.
- iOS-style battery icon — modern and flat, with the reading punched into the battery shape. Choose what it shows inside: nothing, percentage (like
75), time remaining (like6h35m; time to full while charging), or live watts with a direction arrow —▴26Wcharging into the battery,▾8.4Wbeing drawn from it. - State color theme — green while charging or plugged in, blue on battery, then orange and red as you cross your low-battery thresholds. The panel ring, the wattage number, and the menu bar icon all follow.
- Low-battery alerts — warning and critical percentages set to any value from 1–20%, plus an optional pulsing neon glow around the screen edges (orange, then red) so a dying battery is impossible to miss. When the charger lands mid-glow, an optional green celebration shimmer fades it out. Test buttons preview every effect — press Esc to end a preview.
- Time estimates — time to full / time remaining, same numbers as the system battery menu.
- History charts — battery level or charge/discharge wattage over a selectable 4h / 24h / 7d window, with history persisted to disk across relaunches, an optional temperature overlay (one click on the temp chip), and a long-term Health trend view built from daily snapshots.
- Charge limit aware — pairs with macOS Tahoe 26.4's native 80–95% charge limit: one click opens the Battery setting, and the panel shows when charging is being held.
- Stats for nerds — a collapsible grid of live tiles: battery temperature with a gauge, a fan that actually spins at the real RPM, volts × amps, session energy and average draw, adapter wattage, capacity bar (current / full / design mAh), color-coded health and cycles, and lifetime energy — measured since install plus an estimate from your battery's cycle history, translated into how long it could power the average U.S. home.
- A calm, glanceable layout — hero readout and history up top; Settings, Low Battery, and Stats for Nerds tucked into collapsible sections; update controls anchored at the bottom.
- In-app updates — the app checks this repo's Releases page and can download and open the new version for you.
- Native SwiftUI, light/dark aware, no Dock icon, optional Launch at Login.
BetterBattery checks GitHub for a new release every few hours (and there's a Check for Updates button in the panel). When one is available, click Install Update — the app downloads the new version, verifies it against the sha256 GitHub publishes for the release, swaps itself in place, and relaunches. One click, no dragging.
git clone https://github.com/michaelmax98/BetterBattery.git
cd BetterBattery
swift run -c release # run it directly
./build-app.sh # or build build/BetterBattery.appReleases are built by GitHub Actions: pushing a v* tag compiles the app on a macOS runner, packages the DMG, and publishes it to the Releases page.
Wattage comes from the AppleSmartBattery IORegistry entry (InstantAmperage × Voltage). Positive means the battery is being charged; negative means it's powering the Mac. Two things that are normal: into-battery watts are lower than your charger's rating (the charger also powers the Mac itself), and ~0 W while plugged in means the battery is full or Optimized Battery Charging is holding it.
Free and open source. If it earns a spot in your menu bar, you can buy me a coffee ☕