I've been maintaining a native macOS menu bar app called MacPilot and finally open-sourced it: https://github.com/misswell/MacPilot
It's built with Swift 6 + SwiftUI, has zero third-party Swift dependencies, and ships as a notarized Developer ID build.
What's inside:
- Per-app quit rules: hide / close windows / quit an app after it's been idle for N minutes. Chat and mail apps stop stealing attention automatically.
- BLE proximity unlock: unlock your Mac when your iPhone or Apple Watch comes close, lock when it leaves. RSSI smoothing plus dual thresholds, so a flaky signal doesn't flap the lock.
- Window switcher (⌥Tab) across apps with live thumbnails.
- Clipboard history (⌘⇧V) with search, pinning and persistence.
- Smooth scrolling: rewrites mouse wheel events into interpolated frames that feel like a trackpad.
- Picture-in-Picture via ScreenCaptureKit, with real Now Playing controls.
- Screen capture suite: element picker, OCR, scrolling screenshots, annotations.
- Input source automation per app and website, a configurable Finder right-click menu, APFS transparent compression, and a screen recording engine (HDR, mic mixing, iOS device capture).
A few implementation notes people might find interesting:
The Finder Sync extension shares data with the host app, and we learned the hard way that a NON-sandboxed app cannot write to the App Group container even with the entitlement declared — TCC denies it, and SwiftData's fatalError took the whole app down at launch. The fix probes the directory's real writability at runtime and falls back to Application Support.
Swift 6 concurrency: Timer and NotificationCenter @Sendable callbacks touching @MainActor state became hard compile errors on a fresh CI build. MainActor.assumeIsolated inside callbacks that are already bound to the main queue solved it without giving up isolation.
The in-app updater validates the update package's designated requirement against the running app — otherwise a notarized update can silently reset your Accessibility and Screen Recording grants.
Everything runs locally. Config is a versioned config.json, and the login password only ever lives in the Keychain.
Releases (Apple Silicon + Intel, notarized): https://github.com/misswell/MacPilot/releases/latest
Issues and PRs welcome — especially if you're also building native macOS apps and have opinions about any of the above.
Tags: swift, macos, opensource, productivity
Top comments (0)