Free, open-source brightness control for macOS — forever. No subscriptions, no paid tiers, no license keys.
A lightweight menu-bar app that controls the brightness of all your displays — the built-in panel, Apple external displays, and third-party monitors over DDC/CI — with an XDR boost that pushes MacBook Pro miniLED panels past their SDR cap toward the full 1600 nits, for free.
Think of it as a minimal, no-strings alternative to the brightness features of Lunar, Vivid, or BetterDisplay: one job (brightness), done well, MIT-licensed.
- 🖥 Per-display sliders in a menu-bar popover, with an honest badge showing how each display is controlled:
- Hardware — real backlight control (built-in panel, Studio Display, Pro Display XDR, LG UltraFine)
- DDC — real monitor brightness over DDC/CI I2C (third-party externals, Apple Silicon)
- Software dimming — gamma fallback, clearly labeled, only when hardware control is impossible
- ☀️ XDR boost up to ~1600 nits on miniLED MacBook Pros (M1 Pro/Max and later): a second slider fills the panel's HDR headroom using an EDR overlay — the same technique as paid apps, using only public Metal APIs. Thermal-aware: it follows macOS's live headroom instead of fighting it.
- ⌨️ F1 / F2 brightness keys for any display — they control the display holding your focused window (watching YouTube on the external? F1/F2 drive that screen). Past 100% on the built-in panel, F2 keeps climbing into the XDR zone.
- 💡 Custom on-screen HUD on the target display, including a yellow boost zone and a nits readout that the native bezel can't show.
- 🔁 Sync all displays mode with a single master slider.
- 🚀 Launch at login, per-display persistence, and automatic restore after sleep/wake and monitor reconnect.
- 🪶 No Dock icon, no Electron, no analytics, no network access. ~1,500 lines of Swift.
Build from source (requires Xcode and XcodeGen):
git clone https://github.com/robotina10/BrightnessControl.git
cd BrightnessControl
xcodegen generate
xcodebuild -project BrightnessControl.xcodeproj -scheme BrightnessControl -configuration Release buildCopy the built BrightnessControl.app from the build products folder into /Applications and launch it. Or grab a pre-built app from Releases — it's unsigned (no $99 Apple developer subscription behind this project), so on first launch either right-click → Open, or run:
xattr -d com.apple.quarantine /Applications/BrightnessControl.app- No permissions needed for the sliders, DDC control, XDR boost, or launch at login.
- Accessibility (optional) — only for "Intercept system brightness keys": on Apple keyboards F1/F2 emit system media-key events that only an event tap can receive. Grant it in System Settings → Privacy & Security → Accessibility and the app activates automatically. If you'd rather not, enable "Use F1, F2, etc. keys as standard function keys" in System Settings → Keyboard instead — then no permission is needed at all.
- If you build from source: rebuilding invalidates a previously granted Accessibility permission (ad-hoc code signing), so re-toggle it after updating.
macOS has no public API for hardware brightness on external displays. Like every serious tool in this space, BrightnessControl uses:
- the private
DisplayServicesframework for Apple panels, - raw DDC/CI over
IOAVServiceI2C for third-party monitors (Apple Silicon), - gamma tables (public API) for the software fallback,
- an extended-dynamic-range Metal overlay (public API) for the XDR boost.
All private symbols are resolved at runtime and probed with dlsym before use — if Apple removes one in a future macOS, the app degrades gracefully instead of crashing. These techniques are App Store-disallowed, which is why this app (and MonitorControl, Lunar, BetterDisplay) ships outside it.
- macOS 13 Ventura or later (tested through macOS 26 Tahoe), Apple Silicon.
- Intel Macs: builds and runs; DDC for external monitors is not implemented yet (
DDCIntelBrightness.swiftdocuments the IOFramebuffer path — PRs welcome). - Known platform limits: displays on some Macs' built-in HDMI port can't receive DDC (the port's converter chip drops I2C — detected automatically, falls back to software dimming). DisplayLink, AirPlay, Sidecar, and most TVs are software-dimming only.
Standing on the shoulders of open source: the DDC/CI and display-matching techniques were studied from MonitorControl and m1ddc, the XDR/EDR overlay approach from BrightIntosh and BrightXDR, and the excellent reverse-engineering write-ups by Alin Panaitiu (Lunar).
MIT — free forever, for everyone. If someone is charging you for this exact app, you're being scammed.