NotchShelf is a local-first macOS notch productivity app built inside the NotchApp Xcode project. It keeps recent clipboard items, temporary files, quick notes, and keep-awake controls close to the notch without using Notification Center or a persistent menu bar item.
- Notch-only panel: compact black SwiftUI/AppKit panel anchored around the notch, with no Dock icon and no visible menu bar item.
- Clipboard history: tracks recent copied text and links, deduplicates entries, supports search, copy-back, delete, clear recents, and local JSON persistence.
- Link and text handling: link items open in Safari from the left icon; text items open in a selectable detail view so partial text can be selected.
- Favorites: save clipboard items into custom folders with optional titles, search saved items, move favorites between folders, and delete custom folders.
- Temporary file shelf: drag files into the notch/panel to copy them into local app storage, then reveal, copy path, drag out, AirDrop, pin, multi-select, or remove them.
- Two-day shelf retention: unpinned shelf files are treated as temporary and automatically expire after two days; pinned files are kept.
- Quick notes: add short notes from the notch panel, including Enter-to-add behavior, copy, and delete.
- Focus view: keep-awake control for two hours or until turned off.
- Local-only storage: no app network calls. Clipboard, favorites, notes, shelf metadata, and copied shelf files stay on the Mac.
Command 1: ClipboardCommand 2: ShelfCommand 3: NotesCommand 4: FocusCommand K: toggle Keep Awake until turned offCommand Shift Delete: clear recent clipboard historyEnter: add the current quick note
NotchShelf stores data under:
~/Library/Application Support/NotchShelf/
Important files:
clipboard.json: recent clipboard metadataclipboard-folders.json: custom favorite folders and saved clipboard itemsnotes.json: quick notesshelf.json: shelf file metadataShelf/: copied shelf files
Removing a shelf item deletes only the app-managed copy in Shelf/, never the original source file.
- Pasteboard access is used for clipboard history and copy-back behavior.
- File shelf actions use local file access for files the user explicitly drops into the app.
- Keep Awake uses a local IOKit power assertion while enabled.
Open NotchApp.xcodeproj in Xcode and run the NotchApp scheme, or build from the command line:
xcodebuild -project NotchApp.xcodeproj -scheme NotchApp -sdk macosx -configuration Debug buildRun tests:
xcodebuild -project NotchApp.xcodeproj -scheme NotchApp -sdk macosx -configuration Debug testAppDelegateowns the accessory app lifecycle.NotchPanelControllermanages notch/panel activation and positioning.NotchShelfPanelViewhosts the top-level SwiftUI tabbed interface.- Feature views live in separate SwiftUI files for Clipboard, Shelf, Notes, and Focus.
- Local persistence uses small JSON stores rather than a database.
- The old Codex task provider remains isolated behind model/provider types for later reuse, but the active UI does not expose a Codex tab.
macOS does not provide a public API for placing third-party UI inside the hardware notch itself. NotchShelf uses an overlay-style panel anchored around the notch/menu-bar region, which is the practical approach for a personal-use notch app. External displays and Macs without a notch fall back to the same anchored panel behavior.
- Privacy filters for sensitive clipboard sources.
- Better folder management for favorites, including rename.
- Optional snippet expansion or multi-paste workflows.
- Shelf size limits and cleanup controls.
- Settings panel for retention, shortcuts, and launch-at-login.