Open source

You cannot hide the macOS menu bar clock. So I made it unreadable.

Nocturne is a small menu bar app that stops the clock telling you how late it is. It is MIT, notarized, universal, and needs no permissions at all.

macOS 14 or later. Signed with a Developer ID and notarized, so it opens on a double click with no Gatekeeper warning.

Why it exists

The number was making the call, not my body.

I work a day job and build at night. What I kept noticing is that the thing ending a session was almost never actually being tired. It was catching the clock in the corner, reading 2:14 AM, and something in my head deciding that was that.

So I went to turn the clock off, and found out you cannot. That was surprising enough that I kept pulling on it. Most of the work after that was measuring which of the dozen "just run this defaults command" answers still do anything on current macOS. Almost none of them do, which is the part of this worth reading even if you never install the app.

It is a small thing. It removes one specific interruption that was reliably costing me the back half of my good hours, and I wanted it to exist, so I built it.

Jack

The finding

Every documented trick is dead.

The clock is the one menu bar item Apple gives no visibility toggle. In System Settings under Menu Bar, Siri, Spotlight, Wi-Fi, Bluetooth, Battery and AirDrop all have a checkbox. Clock has a Clock Options button and nothing else.

Measured on macOS 26.3.1 by reading the on-screen width of Control Center's clock window before and after each write, rather than by trusting a blog post:

ApproachClock width
Baseline, Sat Aug 8 2:43 AM142pt
defaults write com.apple.controlcenter Clock -int 8142pt, no effect
defaults write com.apple.controlcenter "NSStatusItem VisibleCC Clock" -bool false142pt, no effect
defaults write com.apple.menuextra.clock DateFormat -string " "142pt, no effect
defaults write com.apple.menuextra.clock IsAnalog -bool true44pt

So the trick is not to hide the clock. It is to make it unreadable. An analog dial at 44pt still tells the time, in the sense that a sundial in the next room tells the time. Your eye stops catching it, and nothing is hidden, moved or drawn over.

Modes

Four, and the default is the safe one.

  • Clock visible

    The normal macOS clock. Nothing is touched.

  • Blind

    An analog dial. The time is still there, you just cannot read it. This is the default, and it is one Apple preference key, so nothing about it can break.

  • Gone

    A patch drawn over just the clock. Experimental, and it leaves a faint seam.

  • Hide everything

    The whole menu bar goes blank, except Nocturne's own icon so there is a way back. Clicks still pass through, so the Apple menu and app menus keep working. You just cannot read them.

Worth stealing

The window list has a trap in it.

kCGWindowBounds is free to read. kCGWindowName is gated behind Screen Recording. An early version of the locator filtered menu bar windows by name and appeared to work perfectly, because it was being launched from a terminal and inheriting that terminal's permission. Launched normally as an app it returned nothing, silently.

Launched asWindows with a readable name
Bare binary from Terminal10
.app via open0

So Nocturne identifies the clock by where it sits, never by what it is called. If you test anything against the window list, test it as a real app bundle and not from your shell.

Limits

What it does not do.

  • Gone leaves a faint seam. The Tahoe menu bar is translucent over your wallpaper, so any window drawn above it blurs an already-translucent layer and lands darker. Eight materials were measured against a live bar; the closest still sits 36.7 away. An exact match would mean sampling real screen pixels, which costs a Screen Recording prompt, and a clock utility has no business holding that permission.

  • Restoring always lands on a digital clock. Nocturne's own preferences can be cleared while the clock is analog, and treating that as your original would restore you to analog permanently. If you were already running the analog clock before installing, you get a digital one back.

  • macOS 14 and 15 are compiled and symbol-checked but have never been run. Every API and SF Symbol used resolves to macOS 13 or earlier, and the deployment target is 14.0, but the only machine this has actually run on is macOS 26.

  • It does not manage other menu bar items. Hide everything blanks the whole bar, but for per-icon control, ordering and hidden sections, that is Ice, which is excellent and does it properly.

If you build something on this, or you fixed something I got wrong, I want to see it. My inbox is open: jack@dotcomjack.com. I read and answer everything myself.