A macOS menu bar to-do app — designed to capture tasks the moment they come to mind.
Press ⌥ Space to bring up a quick input window, type your task, and it's saved locally instantly. Lives in the menu bar with no Dock icon, zero friction task capture.
- Sits in the macOS menu bar
- Global shortcut
⌥ Spacefor quick input - Tasks saved locally on input
- Mark tasks as completed or deleted
- Notch display mode (MacBook notch adaptation)
- Launch at login
- Dark / Light mode support
- macOS 14.0+
- Xcode 15.0+
- Swift 5.9+
# Clone the repo
git clone https://github.com/mitian233/TodoMenu.git
cd TodoMenu
# Build from command line
xcodebuild build -scheme TodoMenu -destination 'platform=macOS'
# Or open in Xcode
open TodoMenu.xcodeproj
# Then press ⌘R to runxcodebuild test -scheme TodoMenu -destination 'platform=macOS' -only-testing:TodoMenuTestsTodoMenu/
├── TodoMenu/ # Main app source
│ ├── TodoMenuApp.swift # App entry point
│ ├── MenuBarRootView.swift # Menu bar view
│ ├── QuickAddWindowController.swift # Quick input window
│ ├── HotKeyManager.swift # Global hotkey management
│ ├── TodoModels.swift # Data models
│ ├── StatusBarController.swift # Status bar controller
│ ├── SettingsView.swift # Settings UI
│ ├── NotchView.swift # Notch display
│ ├── NotchWindow.swift
│ ├── NotchWindowController.swift
│ ├── NotchViewModel.swift
│ ├── NotchTodoView.swift
│ ├── LaunchAtLoginManager.swift # Launch at login
│ ├── DisplayMode.swift # Display mode
│ ├── EventMonitor.swift # Event monitoring
│ ├── ScrollingNumberView.swift # Animated counter
│ └── Ext+NSScreen.swift # NSScreen extension
├── TodoMenuTests/ # Unit tests
├── TodoMenuUITests/ # UI tests
└── TodoMenu.xcodeproj # Xcode project
- UI: SwiftUI + MenuBarExtra
- Storage: UserDefaults (local persistence)
- Hotkeys: Carbon HotKey API
- Architecture: Zero third-party dependencies, Apple frameworks only
- Speed matters more than features. If a change affects "capture in one second", redesign first
- Before adding a feature, confirm it belongs in the MVP
- Keep code simple, avoid heavy architecture
- For hotkeys, windows, and launch behavior, prefer the most stable implementation
The notch display mode references and adapts code from NotchDrop by Lakr233. NotchDrop transforms the MacBook notch into a file drop zone, and its notch window architecture — including mask-based shape drawing, event monitoring, and animation system — served as the foundation for our notch implementation.