Arnav Parashar
NotchHub
NotchHub turns the MacBook camera notch into a quiet information surface. When nothing is happening it is a black notch that blends into the menu bar. When something happens it springs open into an island with what you need, then contracts back.
- System listeners
- 16 (Native sources)
- Island states
- 5 (Idle to interactive)
- Layers
- 3 (Core, System, App)
- Stack
- Swift (SwiftUI + AppKit, no Electron)
One object, five states
Every transition is spring-driven, so the island behaves like one continuous physical object that stretches and reshapes, never a rectangle popping in. A state machine in the core moves it between five states: idle, wings, compact, expanded and interactive.
Events flow one way
A SwiftPM package in native Swift with SwiftUI and AppKit, with no Electron and no web wrapper. Three layers are kept strictly apart: system listeners never touch the interface or activity state, and the interface never polls the system.
- Listener, then event bus, then bridge, then activity queue, then island.
- NotchHubCore holds the testable domain: notch geometry, the activity queue with priorities and auto-dismiss, the island state machine, spring physics and the design tokens.
- NotchHubSystem holds 16 native listeners: battery, volume, brightness, now playing, downloads, clipboard, meetings, privacy, Bluetooth, calendar, weather, focus, notifications, coding agents, Wi-Fi and the frontmost app.
- One bridge is the only place events become island instructions: present, transient, update in place, remove, refresh.
What lives in the notch
There is no dock icon and no menu-bar item. Everything lives in the notch, with keyboard shortcuts for Settings, the clipboard Tray, dictation and a timer.
- A clipboard Tray with OCR and pinning.
- On-device dictation and live-call controls.
- File drop to AirDrop, weather and focus.
- A click dashboard: the time, the weather, your next event with Join, and quick actions.
- The frontmost app: a browser page and its tabs with navigation, the focused window title, and Claude Code, Codex and Foxora Studio sessions with model, working state, tokens, turns and context.
Notchy
A pixel-art fox lives in the notch. It reacts to what you are doing and gets up to mischief when nothing is happening: hiding behind the notch, peeking out, dashing to the other side. Click it to stroke it, ask for tricks, start a 25-minute focus session together, or dress it up with colour looks and seasonal hats. It also knows the major holidays and dresses up for them.
Known limits
Recent macOS releases may withhold now-playing data from third-party apps, so music detection leans on Music and Spotify notifications and on browser tabs. A paused browser tab still reads as playing, and Webex in a browser is not detected as a call.
Links
Contact