AdRules' default branch is script and its links say main
List for blocking ads in the Chinese region. Block Ads, Trackers, Malware, HTTPDNS, PCDN.
At a glance
- What is it?
- A filter list project for the Chinese region published in about a dozen formats across five hosts, where the default branch is script while every raw download link names main, the GitHub Pages mirror renames two of the Surge files, and one of the five hosts is a copy maintained by a different account.
- Who is it for?
- AdRules is worth using if you want a maintained Chinese-region filter set rather than assembling one from upstream lists yourself, and the DNS side is the more interesting half since it covers HTTPDNS and PCDN rather than only advertising. Two things to check before pointing a client at it.
- Can I use it commercially?
- Yes. 0BSD 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 received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 5, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The default branch is script and every raw link names main
The repository's default branch is `script`. Every GitHub Raw link in the tables points somewhere else.
https://raw.githubusercontent.com/Cats-Team/AdRules/main/adblock.txtThat `main` appears in all fifteen raw links, one per rule file per host family, with no exception in the visible portion. The repository also has no GitHub releases, so there are no tags to point at either. What that leaves is a project whose published URLs all reference a branch name that is not the branch a clone gets, and whose only versioned handle would have to be a commit hash nobody has written down. A clone of the default branch and a fetch of the raw file are therefore two different pieces of the project, and nothing on the page says whether they are meant to be the same one.
Five hosts serve the same files and one of them is someone else's
Each rule file is offered from five origins: raw.githubusercontent.com, a GitHub Pages domain at `gp.adrules.top`, gitlab.com, Cloudflare Pages at `adrules.top`, and bitbucket.org. Four of them trace to the same project, three under the owner name as it appears on GitHub and one under a lower-cased `cats-team/adrules` path on GitLab. The fifth does not. Every Bitbucket link points at `bitbucket.org/hacamer/adrules`, a different account with a different repository name. So one of the five download columns is a third party's copy of the rules, maintained and served by someone who is not this project, and the page presents it in the same table row as the maintainer's own four without distinguishing them.
The GitHub Pages mirror renames two files and disagrees with itself
The two Surge rows are where the mirrors stop agreeing on filenames. For the Surge Rule-Set, the GitHub raw, GitLab, Cloudflare Pages and Bitbucket links all serve `adrules-surge.conf`, while the GitHub Pages link serves `adrules_surge.conf`, a one character difference. For the Surge Domain-Set the divergence runs the other way: four of the five serve `adrules_surge_domainset.txt` and the GitHub Pages link serves `adrules-surge_domainset.txt`, the same swap in the opposite direction. So the same host differs from the other four on two rows, and the Clash, Loon, Mihomo, ABP, SmartDNS and MosDNS rows are spelled identically everywhere. A script that builds URLs from the pattern rather than from the table will be wrong on one mirror and right on the other four.
Three content-blocker lists with no stated difference
The Content Rules table offers three files and nothing else about them: `adblock.txt`, `adblock_lite.txt` and `adblock_plus.txt`. No line counts, no entry counts, no date on any of them, and no sentence explaining what makes Lite lighter or Plus larger. The only guidance on the entire page is a single caution line telling you to use the right filter on the right platform or suffer the consequences, which is a statement of the risk without any of the information needed to avoid it. Three plausible shapes are available and the reader is expected to download all three and compare, which is exactly the manual work the project exists to remove.
Eight DNS formats are named and a ninth row is cut off
The DNS table lists one file per client, and the Syntax column is the only documentation of what each is for. The visible rows are ABP, SmartDNS, MosDNS, Clash Domain-set, Loon Rule-Set, Surge Rule-Set, Surge Domain-Set and Mihomo srs, with a ninth row beginning with two letters before the visible text stops. Eight named formats for one list is the widest part of the project and the least explained: a Loon Rule-Set and a Surge Rule-Set are both consumed by proxy clients with different syntax, and nothing on the page says which one you need for a given device. One of the eight, the Mihomo entry ending in `.mrs`, is a compiled binary rule set rather than a text file, so the table mixes artefact types as well as client names.
Two of the five categories are not advertising
The description names five things: block Ads, Trackers, Malware, HTTPDNS, PCDN. Three are ordinary filter-list categories. The other two are not. HTTPDNS is the HTTP-based DNS resolution that Chinese carriers inject so that domain-based filtering cannot see the lookup, so a list that blocks those endpoints is deliberately breaking a carrier feature. PCDN is peer content delivery, so blocking those domains is blocking video and file delivery that happens to be served from user hardware. Both are legitimate things to want and both go beyond what an ad blocker normally does, which matters because the caution line on the page does not tell you which of the five you are turning on.
The licence is 0BSD and the third-party mirror ships its own copy
The repository is licensed 0BSD, with a `LICENSE` file at the root, which is a permissive licence with no copyleft obligation and no wording about who may sublicense. Nothing on the page restates it, and the footer of the visible text stops before a licence section. The practical point sits next to the Bitbucket column rather than in the licence line: a permissive licence on the list does not extend to the list as served by `hacamer`, who picked it up and republished it. Anyone auditing where their filter came from is looking at five URLs, four of which trace back to one repository and one of which does not, and the page does not mark which is which.
The generator lives in script/ with no declared dependencies
The top level is small: `.github/`, `.gitignore`, `LICENSE`, `README.md`, `Source.md`, `index.html`, `mod/` and `script/`. The primary language is recorded as Python, so the generator lives in `script/` and the merge inputs in `mod/`, and `index.html` is the source for the site at adrules.top. What is absent is as informative: there is no `requirements.txt`, no `pyproject.toml`, no `setup.py`, no `Makefile` and no named workflow file, so neither the generator's dependencies nor the command that runs it appears anywhere in the visible tree. `Source.md` is linked as the place to see the upstream rules, which is the only provenance information the page gives. The page header also carries two malformed tags, a `</br>` closing a void element and a `<centre>` that is not an HTML element, which is the sort of thing that survives in a readme for years because nobody renders it.
Editorial conclusion
AdRules is worth using if you want a maintained Chinese-region filter set rather than assembling one from upstream lists yourself, and the DNS side is the more interesting half since it covers HTTPDNS and PCDN rather than only advertising. Two things to check before pointing a client at it. The repository's default branch is script while every raw download link names main, so confirm which branch your copy actually serves before you start debugging an empty list. And one of the five hosts is a copy under a different account, so the Bitbucket URL is somebody else's file rather than the maintainer's.
Frequently asked questions
Are ad blockers legal?
The repository does not address legality. What it publishes are filter lists: a content-blocker list in three sizes and a set of DNS rule files in about eight client formats, distributed as plain text files from five hosts, one of which is maintained by a different account.
How do you use AdRules?
Take the file for your platform. On the DNS side the table names ABP, SmartDNS, MosDNS, Clash Domain-set, Loon Rule-Set, Surge Rule-Set, Surge Domain-Set and Mihomo srs, each with a link on five hosts. On the content-blocker side there are three files, adblock.txt, adblock_lite.txt and adblock_plus.txt. The page gives no counts and no statement of how the three differ.
What does AdRules block besides ads?
The description names five categories: ads, trackers, malware, HTTPDNS and PCDN. HTTPDNS and PCDN are not advertising categories, so the list is broader than an ad filter and will break carrier HTTP-based DNS resolution and peer content delivery domains by design.
Where can I download AdRules from?
Five hosts: raw.githubusercontent.com, a GitHub Pages domain at gp.adrules.top, gitlab.com under a lower-cased cats-team/adrules path, Cloudflare Pages at adrules.top, and bitbucket.org under the account hacamer. The Bitbucket copy belongs to a different owner, while the other four trace back to the same project.
How often is the AdRules list updated?
There are no GitHub releases, so there are no tags to track. The last commit to the default branch, which is named script, is dated 2026-10-04. The raw file links throughout the page point at a branch called main rather than at that default branch.
What is in the AdRules repository itself?
A small tree: .github/, .gitignore, LICENSE, README.md, Source.md, index.html, a mod directory and a script directory, with Python as the primary language. There is no requirements file, no pyproject.toml and no Makefile, so the generator's dependencies and its invocation are not declared in the visible tree. Source.md is linked as the place to see the upstream rules.
Official sources
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.
[](https://hysenlabs.com/projects/cats-team-adrules)