DisplayDial is the only Mac app of the 32 we studied that gives every built-in and DDC-capable display a real hardware brightness valve, dims below the floor with a hard anti-lockout limit engineered in, and tapers toward bedtime like a sunset. One command center instead of three separate apps.
Drag it. This is the live idea: brightness and warmth on one dial, per display, with a hard 5% floor, so no dimming path can take it black. Notice you can't reach 0.
Plug in a second screen and F1/F2 stop working the moment they leave the built-in panel. The monitor sits blindingly bright at night or too dim during the day. So you stack MonitorControl for the hardware, f.lux for the warmth, and an overlay dimmer for a dark room, and the pieces fight each other for the same color table, forget their state after sleep, and break at every dock swap.
"How come I get no eye fatigue whatsoever from my MacBook, iPad, iPhone but whatever monitor I buy kills my eyes?"
Apple Support Communities · real thread"External display always increases brightness after sleep even with 'apply last saved settings' enabled."
MonitorControl on GitHub · issues #850, #843"F.lux resets the color table every few seconds," breaking other display apps trying to coexist with it.
BetterDisplay on GitHub · discussion #2508These are real, sourced voices describing the category's pain. DisplayDial is pre-launch: no customer testimonials appear on this page because we do not have customers yet. We think that honesty is a feature too.
Not a gamma trick pretending to be brightness. DisplayDial drives the actual backlight of your built-in display and the actual luminance of every external monitor that speaks the Display Data Channel (DDC) protocol, over USB-C, HDMI, or DisplayPort, each with its own independent slider.

A hard 5% limit is engineered into every dimming path, overlay and hardware alike. Every competitor category has documented black-screen complaints; DisplayDial engineers "accidentally unusable" out of every dimming path.
Step away and the screen eases down to save power; touch anything and it snaps back instantly. Same anti-lockout floor, so idle never means invisible.
Day, Evening, Reading, Movie, Focus, Away. One tap applies brightness and warmth together, holds for a while, then hands control back to the schedule.
Most of what follows already runs in the live build. These four are real captures of the current app, not renders: the pieces the command center added most recently and the page hasn't caught up to showing yet.

Halves, thirds, and corners, with a layout that holds per display. One command center instead of a separate snapping app fighting your dimmer for the same screen.

Pin a brightness and warmth level to a named app. Switch into it and the dial follows on its own, then hands control back the moment you switch away.

Push a supported built-in display past its standard cap for a bright room, the mechanic BrightIntosh and Vivid pioneered, folded into the same dial instead of a separate app.

Dock at your desk and every monitor returns to its saved brightness and warmth. Undock and the laptop takes over. Script any of it from a terminal with the dim CLI.
The notarized download and the license it hands you already work end to end in our own tests. The one piece not live is the connection to Stripe itself: the webhook stays off until launch, so no purchase has completed yet. That is why this page still asks for your email, not your card.
Night Shift flips a switch. f.lux warms the color and stops there. The Daily Dimmer is different: anchor it to your bedtime and it tapers brightness and warmth continuously toward it, the way an actual sunset works, then brings the morning back gently. No tool in this category, out of the 32 we studied, ships a bedtime-anchored brightness-and-warmth curve.
A melatonin-aware descent: the wind-down starts about 3.5 hours before your bedtime, settles at your chosen darkest point and warmth by bedtime, and brightens over 30 minutes after you wake. Every number is yours to tune.
The same curve, as a colour rather than a number: one evening from 7:30pm to bedtime, played once. Every shade is computed from the brightness and Kelvin the app would actually be holding at that minute, so what you see here is the arithmetic, not an impression of it.

This is the whole idea in one photo: a screen dim enough to sit next to a lamp at 11pm, not a floodlight in a dark room.
DisplayDial ships a local Model Context Protocol (MCP) server, bundled inside the app, so Claude on your Mac can read the dimmer and drive it in plain English: brightness, warmth, and your nightly wind-down schedule. One click in Settings → “Works with your AI” connects it.
Zero-dependency local server that drives the same engine as the app, on your Mac only; it never opens a network socket. Every AI change goes through the same anti-lockout floor and self-restoring lease, so a request can never leave your screen stuck dark.
“Ease my screen down to 30% and warm it up after 9 tonight.”
dim_schedule_set() reshapes tonight's curve, dim_status() confirms the live state on every display.
We studied 15 competitors and 17 indie tools. Here are the seven most capable, scored feature by feature. The others are single-purpose tools whose headline capability already appears as a row.
| Feature | DisplayDial | Lunar | MonitorControl | BetterDisplay | Dimify | f.lux | desktop-dimmer | Nocturnal |
|---|---|---|---|---|---|---|---|---|
| Real hardware (DDC) brightness, built-in + external | ✓ | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ | ✕ |
| Sub-minimum dimming below the hardware floor | ✓ | ◐ Pro | ✕ | ✓ | ✓ | ✕ | ✓ | ✓ |
| Click-through dimming overlay | ✓ | ✕ | ✕ | ✕ | ◐ | ✕ | ◐ | ◐ |
| Bedtime-anchored brightness + warmth curve | ✓ | ✕ | ✕ | ✕ | ✕ | ◐ color only | ✕ | ◐ |
| Anti-lockout floor (no accidental black screen) | ✓ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Idle power-save dimming with a usable floor | ✓ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Per-display state survives sleep / dock swap | ✓ | ◐ reported broken | ◐ reported broken | ◐ | ✕ | ✕ | ✓ | ✕ |
| One unified command center (all of the above) | ✓ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Command-line control for scripting | ✓ | ✓ | ✕ | ◐ | ✕ | ✕ | ✕ | ✕ |
| Free tier | ✓ | ✓ | ✓ fully free | ✓ reduced | ✓ | ✓ free | ✓ | ✓ |
| Simple, uncluttered default UI | ✓ | ✕ "appallingly complex" | ✓ | ✕ | ✓ | ✓ | ✓ | ✓ |
| Coexists with Night Shift / f.lux color table | ✓ | ✕ documented conflict | ◐ | ◐ | ◐ | n/a | ◐ | ◐ |
| Open source, auditable code (their win) | ✕ | ◐ core open | ✓ fully open | ✕ | ✕ | ✕ | ✓ open | ✓ open |
Scored from each product's own documentation, GitHub issue trackers, and published reviews (July 2026). ◐ means partial or a documented reliability complaint. Full sourcing lives in our research dossier; every claim traces to a citation. The open-source row is an honest loss. Out of scope by choice for every app in this table: Wi-Fi-only Samsung/LG smart monitors (DisplayDial is scoped to built-in panels and DDC-capable monitors). Window snapping, per-app presets, and the XDR brightness boost already run in the current build, shown above.
Every tool in this category will happily take your screen darker. The complaints all live at the bottom: black-on-wake, stuck-dark monitors, "I had to restart the display to get it back." DisplayDial's answer is architectural: one choke point clamps every dimming path, overlay and hardware alike, to a 5% floor. Below that, the app will not go, no matter which slider, schedule, or script asked. And a reconnect safety net raises any monitor that arrives stuck dark from someone else's leftover state.
A dimmer knows when you work, when you wind down, and when you finally stop. That is intimate data by any definition, and the cleanest way to protect it is not to collect it. DisplayDial is built so that record never leaves your Mac, because it is never assembled in the first place.
The honest boundary: we cannot see how you use DisplayDial, so improving it depends on what you choose to tell us. If something misbehaves, the report you write is the only telemetry we will ever have, and we read every one.
These are not shipped yet. They are the direction: one app that runs your whole desk's displays, beyond brightness alone. Waitlist members vote on what comes first.
Today's per-display memory already survives a dock swap. Next: named profiles you can switch by hand for a second desk or a conference room, on top of automatic recall.
Presentation mode pins everything bright and holds notifications-adjacent dimming; Movie mode darkens everything but the show.
The Daily Dimmer curve learning from your actual habits, beyond a fixed clock. Presence-aware ideas are on the bench.
The DIY alternative is three apps stitched together and re-tuned at every macOS update. DisplayDial will be a one-time purchase, priced at launch in the range of this category's one-time tools, with a real free tier and no subscription.
A comparable setup means stitching together three apps that still fight each other, and re-tuning them at every macOS update. DisplayDial is one command center, designed so a dock swap never wipes your setup and a bedtime never ends in a black screen. Join the waitlist for the first public build at the waitlist price.
You're on the list. New builds and the waitlist price will land in your inbox.
That email didn't look right. Mind trying again?
Your email is used for DisplayDial launch news only. No cookies, no trackers, no personal-data analytics on this site; anonymous, aggregate event counts only.
DisplayDial dims below your monitor's floor. Free tier, no login, no subscription.
See the bottom line