Untrack is a Rust library and CLI that strips tracking parameters from URLs using the same $removeparam rules as uBlock Origin and AdGuard filter lists.
Most URL cleaners rely on a hardcoded list of parameter names like utm_source or fbclid. Untrack implements the filter syntax those lists actually use, including domain restrictions, exceptions, regular expressions, $important, $badfilter, and !#if directives. Because the rules come from maintained lists rather than the app itself, it keeps up as tracking patterns change.
It's also conservative about what it touches. Kept parameters stay byte-for-byte identical to the input, with the same encoding, order, casing, and fragment. Nothing is parsed and rebuilt. Every removal records the rule that caused it, so you can see exactly why a URL changed.
The project is split into three crates. The core engine does no I/O and can be embedded in any Rust application. untrack-lists fetches, caches, and updates remote filter lists, including their includes. The CLI ties the two together.