# fmz200/wool_scripts: a multi-client rule and ad-blocking collection for Loon, Surge, QuantumultX, Shadowrocket and Egern

> wool_scripts gathers proxy-client configuration files, ad-blocking rules and cookie-capture scripts into one repository. It is aimed at iOS users of Loon, Surge, QuantumultX, Shadowrocket and Egern who want to import rules rather than write them.

**fmz200/wool_scripts** — 收集一些Loon、Surge、QuantumultX、ShadowRocket、Egern的配置与去广告规则。

- Repository: https://github.com/fmz200/wool_scripts
- Stars: 5,724 · Forks: 317
- Language: Vim Snippet
- License: GPL-3.0
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/fmz200-wool-scripts

## What wool_scripts actually collects

The repository is a distribution point, not a program. Its top-level directories map to client names: Loon/, Surge/, QuantumultX/, Shadowrocket/, Egern/, Stash/, plus shared folders for icons, BoxJS subscriptions, scripts and a tools directory. Each client folder holds configuration files, plugins, rewrite snippets and rule lists. The README states the goal as collecting configurations and ad-blocking rules for those clients, and it credits other open source projects as the origin of some content while objecting to re-labeling that content as original work.

The audience is narrow and specific: people running one of these iOS proxy clients who want rule sets and plugins without maintaining them. That is why the README's usage note is blunt about one file in particular. The Loon lazy configuration, Loon.conf, is described as overwriting all existing configuration, with a warning aimed at inexperienced users. Anyone with a tuned setup should treat that file as destructive.

## How a rule reaches your client: files, raw URLs and MITM

There is no runtime engine here. The mechanism is file hosting. Rules, plugins and scripts live in the repository as text, and clients subscribe to their raw URLs. The README's Douyin example shows the pattern directly: a rule list is referenced by its raw GitHub URL, and the comment notes that QuantumultX needs its parser enabled while Loon, Surge and Egern can reference it as-is.

What the rules can and cannot do is explained in the FAQ. If an entire domain serves ads, it can be rejected outright. Most ads, however, arrive mixed into the same response as non-ad content, so removing them requires parsing the response body. That in turn requires the domain to allow MITM. The README states plainly that some domains block MITM, which makes response-body filtering impossible for them. This is the structural ceiling of the whole approach, and the project is honest about it rather than promising universal blocking.

The repository also carries a Node.js toolchain. package.json lists dependencies including axios, cheerio, crypto-js, jimp, sharp, sqlite3, terser and xlsx, with no test script defined. That suggests the maintainer runs conversion and generation jobs over the rule data, but the README does not document a build pipeline for end users, so treat that directory as internal tooling.

## Installing it: importing the Loon ad-blocking plugin

There is nothing to install in the software sense. You add a URL to a client that is already running. The README lists the Loon plugin for ad blocking as blockAds.plugin, described as covering roughly 538 apps and mini-programs.

In Loon, plugins are added from the plugin section by URL. The raw link from the README is:

```bash
https://github.com/fmz200/wool_scripts/raw/main/Loon/plugin/blockAds.plugin
```

After adding it, Loon downloads the plugin and shows its entries in the plugin list. The plugin needs MITM enabled for the hostnames it declares, so check the certificate is installed and trusted before expecting any effect.

For a rule list rather than a plugin, the pattern is the same. The AI routing list is referenced as:

```bash
https://github.com/fmz200/wool_scripts/raw/main/Loon/rule/AI.list
```

Add it as a remote rule resource, then confirm the entries appear in the rule list with the policy you assigned. If you are on QuantumultX, the README notes that the parser must be enabled for these references to work. The README also points QuantumultX users to a step-by-step guide at QuantumultX/How-To-Use.md and to a video tutorial before configuring.

## The apps it cannot fix, and the MITM wall behind them

The README keeps a list of apps that cannot be blocked, or cannot be blocked completely: Douyin, Jinri Toutiao, Fengchao, Dida Qingdan and Taio, Mi Fitness, Youdiao Download, Fileball, Wannianli, Douban's feed, Huya Live, Huolala, Tomato Novel, Kaishu Jiang Gushi, and the majority of banking apps. That list is the most useful page in the repository, because it prevents wasted debugging time.

The reason is the same MITM constraint described in the FAQ. A rule set can only rewrite what it can see, and it can only see what the client can decrypt. Where a domain refuses MITM, or where ads and content share one response, the rule has no leverage. Banking apps add certificate pinning on top, which is why they appear in the list.

There is a second limitation that has nothing to do with technology. The README warns against sharing the project's content on platforms in mainland China, in Chinese and in English. Whatever a reader thinks of that request, it is a real constraint on how the project can be distributed and discussed, and it means support channels are Telegram groups rather than issue threads alone.

## Compared with a single-purpose rule list

The closest alternative in practice is a focused rule list such as a standalone ad-blocking list maintained for one client, or a script collection like NobyDa's, which the README names as one of the sources folded into its cookie plugin. The difference is scope and coupling. A single-purpose list does one job and you can read it end to end. wool_scripts bundles configurations, plugins, rewrite snippets, task scripts, icon JSON and a BoxJS subscription in one repository, which means one subscription URL can pull in many unrelated behaviors.

That convenience has a cost. The lazy configuration files overwrite existing settings, the plugin collection spans hundreds of apps, and the README itself marks the supported list as partly stale, telling users to check for failures themselves. A narrower list fails in a narrower way. If you only want Douyin IP handling, the README offers that as a single list, and taking just that file is a reasonable middle path.

## Licence, maintenance and what an upgrade costs you

The repository is GPL-3.0. For a collection of configuration text and rule lists this matters less than it would for linked code, but if you redistribute modified files, the licence terms travel with them. Nothing here is legal advice; read the LICENSE file in the repository root if redistribution is part of your plan. Note that package.json declares ISC for the Node tooling, which does not match the repository-level GPL-3.0, so the licensing of the tools directory is ambiguous from the files alone.

The last push was on 2026-09-10, which is recent, and the repository is not archived. There are no retrieved releases, so there is no versioned artifact to pin. Upgrades happen by the client re-fetching a raw URL, which means your rules can change without any action on your part. That is the real upgrade cost: not migration work, but silent drift. The README's own QuantumultX section records a stop on 2025-03-19 and a resumption on 2025-05-15, which shows the update cadence is not guaranteed for every client.

Because the README says each configuration file begins with its own usage notes, the practical check before any upgrade is to open the file header and read it. That is also the only rollback mechanism described: keeping your own copy of the previous file.

## Conclusion

Adopt wool_scripts if you already run one of the five supported iOS clients and want ready-made ad-blocking rules, cookie-capture plugins and icon lists rather than authoring them. Do not adopt it if you need documented rollback, a stable release channel or coverage for the apps the README itself lists as not fully blockable, such as Douyin, Toutiao and most banking apps. Before importing anything, open the header comment of the specific file, confirm which client it targets, and check that the plugin's MITM hostnames do not conflict with your existing certificate setup.

## FAQ

### Which proxy clients does fmz200/wool_scripts support?

The repository description names Loon, Surge, QuantumultX, Shadowrocket and Egern, and the top-level directories add Stash alongside them. Each client has its own folder holding configurations, plugins, rules and scripts.

### Is fmz200/wool_scripts free to use?

Yes. The repository is licensed GPL-3.0, and the README states that users bear all consequences of using its content. Note that package.json declares ISC for the Node tooling, which differs from the repository licence.

### Why do some apps still show ads after importing wool_scripts rules?

The README explains that most ads are returned together with non-ad content, so removing them requires parsing the response body, which requires the domain to allow MITM. Domains that block MITM cannot be filtered this way, and the README lists apps such as Douyin, Toutiao and most banking apps as not fully blockable.

## Sources

- [fmz200/wool_scripts on GitHub](https://github.com/fmz200/wool_scripts)
- [Issues](https://github.com/fmz200/wool_scripts/issues)
- [License: GPL-3.0](https://github.com/fmz200/wool_scripts/blob/main/LICENSE)
- [README](https://github.com/fmz200/wool_scripts/blob/main/README.md)

---

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