Open-source project
zhanghai/Untracker avatar
zhanghai/Untracker

Untracker strips tracking parameters from a link before you share it

App to help you remove tracking information before sharing links

632 stars39 forksKotlinApache-2.0

At a glance

What is it?
Untracker is an Android app that removes tracking information from links before they leave your phone, reachable from the sharesheet or the text selection toolbar, with user written rules expressed in JavaScript. It is a small, Apache licensed utility from a Google engineer, and it does one job rather than blocking trackers at the source.
Who is it for?
Untracker suits someone who has already decided to use a tracker blocking VPN or a content blocker and wants the last mile handled as well, because stripping a campaign parameter from a link before you paste it into a chat closes a leak that most ad blockers never see.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 29 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The last link in the chain, cleaned before you send it

The project description is the whole scope: an app to help you remove tracking information before sharing links. That is a narrower job than it first sounds, and the distinction matters. A tracker blocking VPN or a system wide content blocker stops the request from leaving your device, whereas Untracker acts on the link itself, at the moment you are about to hand it to someone else. The link has already arrived, the tracking parameters are already in it, and the question is whether they travel further. Marketing parameters identify who sent a link and which campaign produced a signup, and they are the kind of detail that is trivial to strip and easy to forget. The app description in the README calls it an app to help you remove tracking information before sharing links, and adds that this is not an officially supported Google product, which is the sort of line that tells you the provenance without overclaiming. The copyright line in the licence is Google LLC, and the topic tags name Android, Jetpack Compose and Kotlin.

Two ways in, and one of them is the interesting one

The features section lists three capabilities, and the first two are the entry points. Untrack when sharing lets you share links to Untracker in the sharesheet to remove tracking information and copy or share again, so the app sits in the Android share menu and returns a cleaned link. Select to untrack lets you select text and click Untrack in the selection toolbar to remove tracking information and replace, which is the faster path when you are copying a link out of an article or a message. Both of those are the standard way a small utility on Android hooks into the system without asking for much. The third feature is the one that separates it from a hardcoded list of parameters, and it is manage rules. You may control or add rules to remove tracking information with JavaScript code. The mechanism is that a rule is a piece of JavaScript that runs against the URL and returns the cleaned version, so the set of parameters the app knows about is not fixed at release time but is something you extend yourself. That is a design decision with consequences on both sides, and it cuts both ways.

Rules in JavaScript, which is the trade you accept

Being able to write the rules is what makes the app useful against trackers you have never seen, and it is also the thing to think about before you install it. A rule that runs JavaScript over a URL is code you wrote, which means the app is not a fixed list of known marketing parameters such as a campaign name or a session identifier that someone curated for you. It means you can handle a site specific parameter nobody else has documented, and it means you are responsible for what your rules do. For most people the rules they need are a handful of well known parameter names, and those could have been a static list. For anyone whose problem is a tracker nobody has written down yet, the scripting is the reason the app exists. The repository listing shows a docs/ directory, a PRIVACY.md file, an app/ directory, an art/ directory for the store artwork, a fastlane/ directory for release metadata with the phone screenshots the README embeds, a build.gradle.kts and settings.gradle.kts for the Gradle build with the wrapper, and a separate README_zh-CN.md for a Chinese translation. The README links to the Chinese version, and the primary language for the repository is Kotlin with Compose among the topic tags, so the interface is a Jetpack Compose app rather than a web view.

Installing it without a store account

There is no install command, because this is an Android application distributed as a package rather than a library. The README offers three routes. There is a Google Play badge linking to the store listing under the package id me.zhanghai.android.untracker, and an F-Droid badge for the same package id, so the F-Droid route is the one for anyone who wants the build rather than the store's copy. For everything else, the README points at a direct APK download, with a link to the latest release asset named app-release-universal.apk. The universal name in the asset is the useful detail, since a single universal APK avoids having to pick an architecture specific build. The repository has an Android CI workflow badge, so the build is exercised automatically on each change, and the GitHub release badge shows the published versions. The recent release list gives the shape of the maintenance, with v1.0.8 on 2025-07-04, v1.0.7 on 2025-05-26 and v1.0.6 on 2024-12-31, so patch level releases arrive every few months, while the repository itself was pushed on 2026-09-24, which suggests work continues on the source even though the newest tagged build on record is from 2025.

Why this is a companion tool rather than a replacement

The honest comparison is with the tools that do the same job at a different point in the chain, and the difference is where they act. A tracker blocking VPN intercepts the traffic and never lets the request happen, which is stronger, and it also requires a VPN slot, a rootless firewall, or a system wide DNS filter, and it can break applications that expect their own connections. A content blocker filters requests inside the browser and covers ads and trackers on pages you visit, which is broader than Untracker but still does not clean a link you are about to send to a colleague. Untracker acts on the artefact, not on the transport, and its effect is on the recipient rather than on you, which is the one case no other tool in the chain covers. The trade is coverage. A link that never passes through your phone, or one you copy from a source that strips parameters already, gains nothing from the app. So the sensible position is that it is additive, sitting next to a blocker rather than competing with one, and the case for it is strongest where you regularly paste links into chat applications and forums, which is exactly the case the author appears to have had in mind.

Editorial conclusion

Untracker suits someone who has already decided to use a tracker blocking VPN or a content blocker and wants the last mile handled as well, because stripping a campaign parameter from a link before you paste it into a chat closes a leak that most ad blockers never see. It is the wrong tool if you expect it to stop tracking at the source, because it only cleans links that pass through it, and the wrong tool for anyone who will not read a rule before enabling it, since the rules are JavaScript the user writes and controls. Before you install it, read the rules documentation in the docs/ directory and the PRIVACY.md file in the repository, and note that the last published release on record is v1.0.8 from 2025-07-04 while the repository itself was pushed on 2026-09-24.

Frequently asked questions

What does Untracker actually remove from a link?

Tracking information, in two ways. You can share links to Untracker in the sharesheet to remove tracking information and copy or share again, or you can select text and click Untrack in the selection toolbar to remove it and replace. Which parameters are removed is controlled by rules you write in JavaScript.

Where can I get the Untracker app?

From Google Play, from F-Droid under the package id me.zhanghai.android.untracker, or as a direct APK from the GitHub releases, where the asset is named app-release-universal.apk. The repository is licensed under Apache License 2.0 and the copyright is Google LLC.

Does Untracker block trackers on the pages I visit?

No. It is an app to help you remove tracking information before sharing links, so it acts on the link at the moment you are about to send it, not on the requests your device makes while browsing. A tracker blocking VPN or a content blocker covers that side of the problem.

Official sources

  1. License: Apache-2.0
  2. Project website
  3. README
  4. Releases
  5. zhanghai/Untracker on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/zhanghai-untracker.svg)](https://hysenlabs.com/projects/zhanghai-untracker)

Was this useful?