Signalman is an advanced URL router for Android that acts as a default handler for HTTP and HTTPS links. It provides powerful customization options to route specific URLs to specific applications or browsers based on user-defined rules.
- Custom URL Rules: Create rules to route URLs to specific apps based on patterns
- Auto Rule Generation: Automatically prompt to create rules for new links
- Pattern Matching: Support for contains, equals, starts with, ends with, and regex patterns
- URL Transformation: Transform URLs before routing with simple or regex-based replacement
- Browser Selection: Choose which browsers appear in the overlay chooser
- Import/Export: Backup and restore your rules as JSON
- Modern UI: Clean, intuitive Material Design 3 interface
- Offline First: All data stored locally on your device
- Android 14 (API 34) or higher
- Compatible with Android 14+
- Download the latest APK from the Releases page
- Install the APK on your Android device
- Set Signalman as your default browser in system settings
- Go to Settings → Apps → Default apps → Browser app
- Select Signalman
- Tap the + button on the Custom tab
- Enter a rule name and optional example URL
- Add conditions to match URLs (e.g., contains "twitter.com")
- Select the target app for matching URLs
- Save the rule
- Go to the Auto tab
- Enable "Enable auto rule generation"
- Set a fallback default app (optional)
- When you open a link that doesn't match any rule, you'll be prompted to create one
When editing a rule, you can enable transformation to modify URLs before routing:
- Simple Mode: Replace URL components (scheme, host, domain)
- Regex Mode: Use regex patterns for advanced transformations
- Go to Settings
- Use Export Rules to save all rules to a JSON file
- Use Import Rules to restore rules from a JSON file
Signalman is built with modern Android architecture:
- UI Layer: Jetpack Compose with Material Design 3
- State Management: ViewModel with StateFlow
- Dependency Injection: Koin
- Local Storage: Room Database with DataStore for preferences
- Async Operations: Kotlin Coroutines
- Android Studio Hedgehog (2023.1.1) or later
- JDK 11 or higher
- Android SDK with API 34
-
Clone the repository:
git clone https://github.com/sudarshandodiya/Signalman.git cd Signalman -
Open the project in Android Studio
-
Sync project with Gradle files
-
Build the project:
./gradlew assembleDebug
-
Or run on a connected device/emulator:
./gradlew installDebug
This project uses git hooks to ensure code quality. Install them by running:
./scripts/install-hooks.shThe pre-commit hook will automatically:
- Run
spotlessApplyto format your code - Run
detektto check code quality
If either check fails, the commit will be blocked until issues are fixed.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
If you encounter any issues or have questions, please open an issue.




