Stop squinting at "Desktop 4" trying to remember which one had your email open.
Nook is a tiny macOS menu bar app that lets you give your virtual desktops real names — "Coding", "Email", "That One With The Tabs I'm Afraid To Close" — and then shows them where you actually look: in Mission Control and (on notched MacBooks) right under the notch.
Because macOS gives you eight desktops and zero ways to tell them apart. 🤷
Mission Control strip (three-finger swipe up — first stage):
Mission Control expanded (mouse moves up — second stage):
Notice how the named Spaces show their names and the unnamed ones politely fall back to "Desktop 5", "Desktop 6"... Nook never breaks the muscle memory.
- 🏷️ Names in Mission Control — both stages of the trackpad gesture and the hot-corner / F3 view.
- 🎩 Hover-activated notch — on notched MacBooks, peek the active Space's name without opening Mission Control.
- 🖥️ Per-display tracking — each screen tracks its own active Space.
- ✏️ Rename inline — right-click (or Ctrl-click) a label in Mission Control.
- 🧠 Collision-safe — two Spaces named "Coding" become "Coding 1" and "Coding 2".
- 🆔 UUID-anchored — names follow their Space through reorders, reboots, and the occasional Mission Control mood swing.
🚧 Alpha. This is my second-ever project and very much open source — expect rough edges, weird AX behavior on macOS versions I haven't tested, and the occasional "wait, why did the label do that?" moment. Issues and PRs are extremely welcome; tell me what broke and on what hardware.
- macOS 13 Ventura or later
- Accessibility permission (Nook will ask on first launch — this is how it reads the Mission Control layout)
Grab the latest .dmg from Releases, open it, drag Nook to Applications, launch it once.
Nook is notarized and fully open source, so if you'd rather build it yourself, see Contributing.
ORRRRR
Just ask Claude to do it :)
Nook polls the macOS Accessibility tree to find Mission Control's layout, then floats a transparent overlay window on top with your custom names. It uses a SpaceStore actor backed by UserDefaults to persist the name ↔ Space-UUID mapping, so names survive reboots and reorders.
There's no private API spelunking, no kernel extensions, no daemons — just AX, AppKit, and a healthy amount of "let's see what happens when I swipe with three fingers."
- Read
CONTEXT.mdfor the domain vocabulary (Space vs Desktop vs Display — they mean specific things). - Skim
PRD.mdfor the full product spec. - Architecture decisions live in
docs/adr/. - Open a PR or an issue. Don't be shy — this is alpha, every report helps.
GPL-3.0 — see LICENSE and NOTICE.
The notch-activation surface in Nook/Notch/ is derived from
mew-notch (GPL-3.0) by Monu Kumar.
Per GPL copyleft, the combined work is now distributed under GPL-3.0; the
pre-GPL MIT history is preserved in NOTICE.

