Privacy-focused link cleaner for Android and iOS, powered by a Kotlin Multiplatform shared core.
Truesight takes messy shared links, unwraps redirect layers, strips tracking parameters, and gives fast actions to copy/share/open the clean URL.
- Reduce link tracking clutter before sharing links with others.
- Keep links readable and easier to trust.
- Use one cleaner engine across Android and iOS.
- Customize behavior by domain and tracking source.
Input:
https://www.google.com/url?q=https%3A%2F%2Fexample.com%2Farticle%3Futm_source%3Dnewsletter%26id%3D42&sa=D
Output:
https://example.com/article?id=42
- Extracts the first URL from pasted/shared text.
- Unwraps common redirect wrappers (Google, Reddit, Facebook, Amazon, AMP cache variants).
- Follows selected remote redirects (
share.google.com, Reddit,amzn.to,a.co) before sanitization. - Removes tracking query params (
utm_*, click IDs, ad campaign params, host-specific trackers). - Reddit-aware behavior:
- resolves short/share links to canonical comment permalinks
- preserves Reddit permalinks for self/internal media posts
- resolves to destination URLs only for external link posts
- Domain-aware stripping for Amazon, Instagram, Medium, Reddit, Zillow, Redfin, and more.
- Optional Twitter/X to Nitter rewrite.
- Android share-overlay for one-step cleaning from other apps.
- Per-domain and per-vendor policy controls in Settings.
- Android Studio (latest stable)
- JDK 17
- Android SDK Platform 36 + Build-Tools
java -version
./gradlew -v
adb versionOpen this project in Android Studio and let Gradle sync.
If needed, set SDK path in local.properties:
sdk.dir=/absolute/path/to/Android/Sdk./gradlew :app:assembleDebug
./gradlew :app:installDebug./gradlew lintAll testDebugUnitTest :shared:testapp/- Android app (Jetpack Compose UI and platform adapters)shared/- Kotlin Multiplatform cleaner core + testsiosApp/- iOS bridge/adapters and setup notesconfig/detekt/- detekt rules.github/workflows/ci.yml- CI pipeline
UrlCleanerCoreinshared/owns clean-link business logic.- Android and iOS call the same shared core and supply platform-specific redirect/policy adapters.
- UI screens (
MainActivity,ShareOverlayActivity) are thin layers over ViewModels + shared cleaner behavior.
Contributions are welcome and appreciated.
- add/expand cleaner test cases for real-world URL patterns
- improve settings UX copy and help text
- improve iOS integration ergonomics and docs
- performance and battery optimizations in redirect handling
- Fork and create a branch (
feat/...orfix/...). - Make focused changes with tests when practical.
- Run:
./gradlew lintAll testDebugUnitTest :shared:test- Open a PR with problem, solution, and verification notes.
- iOS integration guide
- CI workflow
- F-Droid metadata
- F-Droid submission notes
- Kotlin Multiplatform docs
- Android Emulator setup
Licensed under Apache License 2.0. See LICENSE.