# GOODBYEADS: one merged blocklist fed to AdGuard, Quantumult X and SmartDNS

> 8680/GOODBYEADS is a generated rule set that merges several upstream blocklists, removes duplicates and republishes them as AdGuard, DNS, Quantumult X and SmartDNS files. It is a list, not a blocker, and the whitelist it ships alongside is the part that decides whether you will keep it.

**8680/GOODBYEADS** — 适用于AdGuard、Quantumult X、SmartDNS的去广告规则，合并优质上游规则并去重整理排列。

- Repository: https://github.com/8680/GOODBYEADS
- Stars: 1,958 · Forks: 71
- Language: Python
- License: MIT
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/8680-goodbyeads

## What this repository actually contains: files under data/rules

The top level of the repository is small. There is a .github directory, a .gitignore, the LICENSE file and a data directory. Everything the project produces lives under data/rules, and the repository is written in Python, which points to a generation pipeline rather than a hand maintained list. The README describes the project in one line: rules that merge high quality upstream sources and then de-duplicate and order them.

The most recent statistics block in the README gives an update timestamp of 2026-10-15 12:01:14 Beijing time, 215267 blocking rules, 102751 DNS blocking rules and 14899 allowlist rules. Those are the project's own counters, printed at generation time, not measurements taken elsewhere.

Note what is absent. There are no GitHub releases for this repository, so there is no versioned artifact to pin. Consumption happens by pointing a client at a raw file URL on the master branch, which means the content under your resolver changes whenever the pipeline reruns.

## Six subscription URLs and which client each one targets

Each file is published twice: a raw.githubusercontent.com link and a ghfast.top mirror for users who need the accelerated path. The pairs are identical in content.

The AdGuard blocking file is adblock.txt, served from data/rules/adblock.txt. The DNS blocking file for AdGuard Home is dns.txt.

There is a domain-only file, ad-domain.txt, described in the README as a blacklist domain list. It carries no path or filter rules, which matters when the consuming client charges you for rule count or when you want something short enough to read.

Quantumult X gets its own syntax in qx.list, and SmartDNS gets two files: smartdns.conf for blocking and smartdns-whitelist.conf as its counterpart. The presence of a paired whitelist for SmartDNS rather than a single merged file is the clearest signal that this project treats false positives as the main failure mode.

The generic allow.txt carries 14899 allowlist rules in AdGuard format, for clients that support allow rules rather than a separate exclusion list.

## Upstream sources are named, which is the main reason to trust the merge

The README lists where the rules come from: the AdGuard filters repository, a SmartTV list from the PiHoleBlocklist project, EasyPrivacy, the 乘风 video filtering rules, the NoAppDownload list that removes app download interstitials, oisd, the AWAvenue ads rule from TG-Twilight, and CJX's Annoyance List. A supplementary rules entry points back at the repository itself, which is where hand-added rules land.

That list is worth reading carefully because it explains the shape of the output. The README names these sources but does not describe their individual filtering behavior. De-duplication and ordering are what keep the combined file loadable; the description states both are done.

The upstream licences are not restated in the README, only the fact that it merges them. The repository itself is MIT, but MIT on the generated file does not settle the terms of every upstream list it contains.

## Refreshing is a URL in a client, not a package manager step

There is nothing to install. This project ships no binary, no container image and no documented command line. The README contains no build or generation command, and the Python source referred to by the repository language is not documented as something a user should run.

A first real use therefore looks like this: fetch one of the published files, then hand the URL to your client. The two AdGuard Home targets are:

```bash
# AdGuard blocking rules
https://raw.githubusercontent.com/8680/GOODBYEADS/master/data/rules/adblock.txt
# AdGuard Home DNS blocking rules
https://raw.githubusercontent.com/8680/GOODBYEADS/master/data/rules/dns.txt
```

Open the AdGuard Home web interface, go to the filters section, paste the dns.txt raw URL as a DNS blocklist subscription and click update. For Quantumult X, add the qx.list URL as a remote resource. The README publishes SmartDNS blocking and whitelist files, but does not document configuration steps.

If the raw GitHub host is slow on your network, substitute the ghfast.top mirror for the same path. Both URLs are published side by side in the README for every file.

## What you cannot tell from the README, and what that costs you

Several things a careful adopter would ask are simply absent. There is no documentation of update frequency beyond the timestamp printed in the statistics block, no changelog, and no releases. There is no per-rule provenance in the generated files, so when a rule breaks a site you cannot tell which upstream introduced it. There is no documentation of a rollback procedure.

The contribution model is also narrow and manual. The README asks for issues or requests covering exactly two cases, ads that are not blocked, and sites that are wrongly blocked, and says the author reviews them and adds or removes rules after review. A fast response to a false positive is therefore not something the project commits to.

There is a testing angle the README does point at, with three external tester sites linked as badges for checking blocking effect. Those tell you whether ads were stopped on a page, not whether anything legitimate broke, and they say nothing about which single rule was responsible.

## Comparison point: subscribing to the upstream lists directly

The obvious alternative is to paste the listed source URLs into your client yourself, one subscription per source. The difference is entirely in maintenance. Direct subscriptions track each upstream the moment it changes and let you see which list caused a given block, at the cost of nine entries to manage and no de-duplication, which is what pushes large combined lists past what some clients will hold.

GOODBYEADS trades that visibility for one URL per target format and a single consistent snapshot. For AdGuard Home users already running several subscriptions, the practical difference is that a false positive gets fixed once in the merge and reaches every consumer at the next generation, instead of requiring you to bisect eight sources. The cost is that the snapshot moves on a schedule you cannot see, and you have no way to pin last week's rules.

## Conclusion

GOODBYEADS fits an AdGuard Home, Quantumult X or SmartDNS user who wants one URL to refresh instead of eight upstream subscriptions, and who is willing to keep an eye on the allowlist when a login page stops loading. It does not fit anyone who needs blocking without running a resolver, and it cannot help a browser-only setup that does not point at SmartDNS. Before subscribing, load dns.txt and adblock.txt into a test resolver and confirm the sites you depend on still resolve, because the repository publishes 102751 DNS block rules and 14899 allow rules against your traffic with no per-site audit trail beyond issue reports.

## FAQ

### How do I subscribe to GOODBYEADS in AdGuard Home?

Add the dns.txt raw URL as a DNS blocklist subscription in AdGuard Home and update it. The README publishes both a githubusercontent direct link and a ghfast.top mirror of the same file.

### Does GOODBYEADS need to be installed or built?

No. The README gives no install or build steps and the repository has no releases. You point a client at a raw file URL under data/rules on the master branch.

### What does GOODBYEADS do when a rule blocks a site it should not?

The README asks for an issue or request reporting a wrongly blocked site, and says the author reviews submissions and will remove the rule. There is no stated response time or self-service unblock procedure.

### How many rules are in the GOODBYEADS list?

The statistics block in the README reports 215267 blocking rules, 102751 DNS blocking rules and 14899 allowlist rules, generated at 2026-10-15 12:01:14 Beijing time.

### Can GOODBYEADS be used with SmartDNS and Quantumult X?

Yes. The repository publishes smartdns.conf and smartdns-whitelist.conf for SmartDNS and qx.list for Quantumult X, each in the syntax that client expects.

## Sources

- [8680/GOODBYEADS on GitHub](https://github.com/8680/GOODBYEADS)
- [Issues](https://github.com/8680/GOODBYEADS/issues)
- [License: MIT](https://github.com/8680/GOODBYEADS/blob/master/LICENSE)
- [README](https://github.com/8680/GOODBYEADS/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/8680-goodbyeads
