A macOS menu bar utility for quickly switching the system default browser.
After spending too long looking for a replacement to Objektiv, I decided it would be quicker (and more fun) to vibe code my own.
Browsar sits in your menu bar and lets you change which browser handles links.
- macOS 13 (Ventura) or later
- Swift 5.9+
git clone https://github.com/Stuzanna/browsar.git
cd browsar
make installThis builds the app, ad-hoc signs it, copies it to /Applications, registers it with Launch Services, and opens it. Browsar will launch automatically on login.
make uninstall- Click the network icon in the menu bar
- See all installed browsers with a checkmark next to the current default
- Click a browser to make it the new system default
- Any links opened system-wide now go to your chosen browser
When Browsar is registered as a URL handler, it forwards incoming URLs to whichever browser you've selected.
make build # build to build/Browsar.app
make run # build and launch from build directory
make clean # remove build artifactsOptionally, place a 1024x1024 PNG at Resources/AppIcon.png. The build will generate all required sizes and bundle the icon automatically.
Built with Swift Package Manager and SwiftUI MenuBarExtra (no Xcode project required).
Sources/Browsar/
├── BrowsarApp.swift # @main, MenuBarExtra scene, login item registration
├── AppDelegate.swift # Apple Event handler for URL forwarding
├── Browser.swift # Browser data model
└── BrowserManager.swift # Detection, default get/set, URL forwarding
- Browser detection —
LSCopyApplicationURLsForURLdiscovers all apps that handlehttps://URLs - Default management —
LSSetDefaultHandlerForURLSchemesets the default for bothhttpandhttps - URL forwarding — Apple Event handler receives URLs and opens them with
NSWorkspacein the selected browser - Login item —
SMAppServiceregisters Browsar to launch at login - Menu bar only —
LSUIElement = truekeeps the app out of the Dock
LSSetDefaultHandlerForURLSchemeis deprecated but remains the only practical API for this task. Apple has not provided a replacement that works without user interaction.- Switching the default browser may trigger a one-time macOS confirmation dialog. This is OS-level behavior and cannot be bypassed.
- The app filters itself out of the browser list using bundle ID
com.browsar.app.
