A Safari extension that automatically redirects searches to Brave Search, providing a more private search experience.
Disclaimer: Braver Search is an independent Safari extension and is not affiliated with, endorsed by, or connected to Brave Software Inc. This is a third-party tool created to enhance the user experience of Brave Search within Safari, which is a trademark of Brave Software Inc.
This extension redirects your searches to Brave Search, a privacy-respecting search engine created by Brave Software Inc. Brave Search offers:
- Independent search results
- Privacy-first approach
- No tracking or profiling
- Transparent ranking
- Community-powered features
Learn more about Brave Search:
Braver Search/
βββ iOS (App)/ # iOS host app
βββ iOS (Extension)/ # iOS extension-specific code
βββ macOS (App)/ # macOS host app
βββ macOS (Extension)/ # macOS extension-specific code
βββ Shared (App)/ # Shared app code
βββ Shared (Extension)/ # Shared extension code and resources
βββ Resources/
β βββ popup.html # Extension popup UI
β βββ popup.css # Popup styling
β βββ popup.js # Popup functionality
β βββ background.js # Core extension functionality
βββ SafariWebExtensionHandler.swift # Native bridge
- Monitors web navigation events
- Intercepts search queries from Safari's default search engine
- Redirects to Brave Search when enabled
- Uses
browser.storage.localfor state management
- HTML (
popup.html): Simple UI with toggle switch and status indicator - CSS (
popup.css): Modern styling with system-native appearance - JavaScript (
popup.js): Handles user interactions and state management
- SafariWebExtensionHandler: Manages extension state and Safari integration
- Supports both iOS and macOS platforms
- Uses UserDefaults for persistent storage
-
State Management
- Extension state (enabled/disabled) stored in
browser.storage.local - Persists across browser sessions
- Syncs between popup and background script
- Extension state (enabled/disabled) stored in
-
Search Redirection
- Background script monitors navigation events
- Detects search queries in URLs
- When enabled, redirects to Brave Search with the same query
-
User Interface
- Toggle switch to enable/disable redirection
- Visual indicators for current state
- Instant feedback on state changes
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch
- Submit pull requests
- Report bugs via issues
- Improve documentation
- Share feedback and suggestions
- Xcode 15+
- iOS 17.0+ / macOS 14.0+
- Safari 17.0+
- Clone the repository
- Open
Braver Search.xcodeprojin Xcode - Select target platform (iOS/macOS)
- Build and run
- Apple Developer Program membership
- App Store Connect API key
- Xcode 15.1+ (recommended)
- GitHub Actions for CI/CD
-
Distribution Certificates
- iOS/macOS Distribution Certificate
- Mac Installer Distribution Certificate (for macOS pkg)
- Store both certificates securely as base64 in GitHub Secrets:
DISTRIBUTION_CERTIFICATE_BASE64MAC_INSTALLER_CERTIFICATE_BASE64CERTIFICATE_PASSWORD
-
Provisioning Profiles
- iOS App Store Profile (main app)
- iOS App Store Profile (extension)
- macOS App Store Profile (main app)
- macOS App Store Profile (extension)
- Store all profiles as base64 in GitHub Secrets:
IOS_APP_PROFILE_BASE64IOS_EXT_PROFILE_BASE64MACOS_APP_PROFILE_BASE64MACOS_EXT_PROFILE_BASE64
-
App Store Connect API
- Create API Key in App Store Connect
- Store credentials in GitHub Secrets:
APPLE_API_KEY_IDAPPLE_API_KEY_ISSUER_IDAPPLE_API_PRIVATE_KEYAPPLE_TEAM_ID
-
Code Signing
- Set manual code signing for all targets
- Match provisioning profile names with workflow:
- iOS App: "Braver Search iOS App Store"
- iOS Extension: "Braver Search iOS Extension App Store"
- macOS App: "Braver Search macOS App Store"
- macOS Extension: "Braver Search macOS Extension App Store"
-
Build Settings
- Set
DEVELOPMENT_TEAMto match your team ID - Enable App Groups capability if needed
- Set proper bundle identifiers
- Configure proper deployment targets
- Set
- Provide all required sizes for iOS and macOS
- Ensure icons have no alpha channel or transparency
- Use solid background color or gradient
- Let the system handle icon corner radius
The repository includes a GitHub Actions workflow for automated deployment:
- Triggers on push to main or manual dispatch
- Builds both iOS and macOS targets
- Signs with provided certificates
- Creates proper installers
- Uploads to TestFlight and App Store
- Handles cleanup of sensitive data
To use the workflow:
- Set up all required secrets in GitHub
- Ensure Xcode project settings match workflow expectations
- Test the workflow using manual dispatch
- Monitor build and upload progress in Actions tab
Common issues and solutions:
- Code Signing Errors: Verify certificate and profile matches
- Build Errors: Check Xcode version compatibility
- Upload Errors: Verify App Store Connect API credentials
- Icon Validation: Ensure no transparency in app icons
- Extension Issues: Verify manifest.json configuration
This project is licensed under the MIT License with Commons Clause.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to:
- Use the software for personal, non-commercial purposes
- Modify the software for personal use
- Contribute improvements back to the main repository
- Fork the repository for personal projects
The Commons Clause restricts you from:
- Selling the software or modifications of it
- Using the software in commercial products without authorization
- Redistributing the software through commercial channels
- Official distribution through the App Store is exclusively by Brenden Bishop
- One-time purchase price: $4.99
- Family Sharing enabled
- Updates included
- App Store terms and EULA apply
- No personal information collected
- Search queries sent directly to Brave Search
- Settings stored locally
- No analytics or tracking
We love contributions! Here's how:
- Submit bug reports
- Propose new features
- Improve documentation
- Submit pull requests
- Share the project
- Support via App Store purchase or donation
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to your branch
- Open a Pull Request
For feature requests or inquiries:
- Email: btbishop93@gmail.com
- GitHub Issues: For bugs and improvements