Need colour for a minute?
Press Option, Command, C. Full colour comes back for 60 seconds, then the evening eases back in on its own.
DuskMode warms your Mac at sunset, dims it past the lowest brightness key, and turns it gray before bed. Every step is timed from sleep research. You never touch a slider.
Cuts blue near 464 nm, where melatonin suppression peaks, and trims green near 555 nm. Same display method as f.lux, so blacks stay black.
Strong evidenceGoes darker than your brightness keys can. Light level moves melatonin more than light colour, so this layer does the most.
Strong evidenceDrains colour from feeds and thumbnails, so one more video is easier to skip. macOS shows its “Colour Filters” notice for a second each time grayscale switches. That's the system, and it can't be hidden.
Emerging evidenceGrayscale has the last word. macOS applies it on top of everything else, so once it's on the screen is plain gray and the warm tint no longer shows. Dimming still does, which is why it matters most.
Press Option, Command, C. Full colour comes back for 60 seconds, then the evening eases back in on its own.
Figma, Photoshop and other colour-critical apps pause DuskMode on their own. Bring one to the front and your colours come back. For any other app, flip one switch. Dimming stays on, so switching never flashes bright.
The filter is applied at the display, after anything captures the screen. Zoom, Meet and screenshots get normal colours while you keep the warm ones.
Tested with Apple's ScreenCaptureKit: a white pixel reads 255, 255, 255 with the filter on.
DuskMode works out sunset on your Mac with NOAA's solar equations, then builds tonight around it and your bedtime. Your location never leaves the Mac.
This page estimates it from your time zone, the same fallback the app uses.
No account, no analytics, no update checks. Ask macOS which network connections DuskMode has open. It prints nothing, because there is nothing to print.
~ % of daytime melanopic light still reaching your eyes. Modelled from your display's red, green and blue output.
Melatonin suppression peaks at 464 nm, across 72 people. Why the blue goes first.
Journal of Neuroscience ↗Early in the evening, green light at 555 nm suppresses melatonin as much as blue. Why green is trimmed too.
Science Translational Medicine ↗Expert consensus: under 10 lux in the evening, under 1 lux at sleep. This sets how deep dimming goes.
PLOS Biology ↗Students on grayscale phones used them about 40 minutes less a day. Gray screens aren't warm, so from here dimming does the melatonin work.
The Social Science Journal ↗Blue-blocking glasses show no clear sleep benefit. They filter weakly and at any hour. DuskMode lowers the whole dose and times it.
Cochrane Library ↗| Feature | Night Shift | f.lux | DuskMode |
|---|---|---|---|
| Warm colour on a schedule | Yes | Yes | Yes |
| Timed from your bedtime | Sunset or set hours | From wake time | Yes |
| Dims past the lowest brightness key | No | No | Up to 80% |
| Grayscale before bed, automatically | No | No | Yes |
| Open source | No | No | Yes |
All three do this. It's the baseline, and on its own it helps less than you'd think, because brightness matters more than colour.
Move your bedtime and the whole evening moves with it. Every step is counted back from when you actually sleep, not from when the sun happens to set.
Your keys stop at a floor that is still bright for a dark room. DuskMode keeps going, up to 80% lower, because light level moves melatonin more than colour does.
At 9:30 PM colour drains from the screen by itself, so the feed loses its pull right when one more video is most tempting. macOS can do grayscale, but only when you remember to switch it on.
Native Swift with no third-party code. This is the real function that turns a colour temperature into what your screen shows, straight from the repository.
Night Shift and f.lux warm your screen. DuskMode also times the evening from your bedtime, dims past your keys and grays the screen before bed. Free, and open source.
DuskMode isn't signed with a paid Apple certificate yet. Installing from Terminal skips the warning macOS shows for downloaded apps. You can read the script before you run it.
~ % curl -fsSL https://raw.githubusercontent.com/neerajsingh869/DuskMode/main/install.sh | bash==> Downloading DuskMode==> Moving it to /Applications==> Opening DuskMode✓ DuskMode is in your menu bar. Sleep well.~ %
Made by Neeraj Singh for his own evenings, then shared. Native Swift, no third-party code, 50 self-tests on the timeline maths. Every decision is written down in the repository.