AutoMergePublicNodes: An Automated Aggregator of Free Public Proxy Subscriptions
自动抓取合并互联网上的公开节点。 🚀 免费节点,🚀免费节点订阅,🚀v2ray免费节点,ssr免费节点订阅,clash免费节点订阅,免费梯子,免费翻墙,免费科学上网,免费ss/v2ray/trojan/clash节点,谷歌商店,翻墙梯子
At a glance
- What is it?
- AutoMergePublicNodes is a Python tool that crawls public sources on the internet and merges the found proxy nodes into consolidated subscription files for Clash, V2Ray, SSR, Trojan, and Sing-Box clients. The project is a fork of NoMoreWalls and runs on a scheduled GitHub Actions workflow to keep the subscriptions current.
- Who is it for?
- AutoMergePublicNodes is a practical starting point for anyone who wants a self-managed, aggregated proxy subscription without paying for a commercial service. The trade-off is reliability: free public nodes disappear or become overloaded without warning, and the aggregated list is only as current as the last fetch.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- 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 September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What AutoMergePublicNodes Does
Public proxy nodes for V2Ray, SSR, Trojan, and Clash-compatible clients are posted across GitHub repositories, Telegram channels, and personal websites. Collecting and maintaining subscriptions from these sources manually is time-consuming. AutoMergePublicNodes automates this by fetching from a list of source URLs defined in `sources.list`, merging the results, deduplicating them, and writing the output to subscription files that proxy clients can import.
The project is a fork of NoMoreWalls (peasoft/NoMoreWalls). The README notes that users should prefer contributing to and starring the upstream NoMoreWalls project. This repository diverges in configuration, source selection, and some filtering rules, but the core fetch-and-merge Python logic originates upstream.
The project targets users who want a free proxy subscription for personal use, including accessing sites blocked by network restrictions. The README includes a disclaimer stating that subscription nodes are intended for learning and reference only, and that users bear full legal responsibility for their use. A separate disclaimer on the project also states it carries an Anti-996 licence, prohibiting use by companies that enforce illegal overtime labor practices.
Subscription Output Formats
The repository produces three types of subscription output, each stored as a file in the repository root and updated on each fetch cycle:
`list.txt` contains the merged nodes encoded in Base64. This is the most widely compatible format and can be imported by most V2Ray, SSR, and Clash clients that accept a URL subscription.
`list.meta.yml` is a Clash Meta YAML file that includes routing rules and policy groups designed by the project. The README notes that users on original Clash (not Meta) should replace `.meta.yml` with `.yml` in the URL. The Clash Meta subscription includes traffic classification rules, including ones that detect and block certain domains flagged as potentially harmful, and a catch-all "漏网之鱼" (stray fish) group for unmatched traffic.
`list.yml` is the original Clash format without Meta-specific features.
A `snippets/` folder holds partial configuration fragments that users can merge into their own existing Clash configuration rather than replacing it entirely. This is useful for users who have a customized setup but want to incorporate the aggregated nodes from this project.
Running the Aggregator Locally
The recommended approach is to rely on the repository's own GitHub Actions workflow, which runs automatically on a schedule and updates the subscription files. Users add the subscription URL directly to their proxy client and receive updates without any local setup.
For local deployment, the README requires cloning with a shallow history due to the large number of commits in the repository's history:
git clone https://github.com/chengaopan/AutoMergePublicNodes.git --depth=1Install the Python dependencies:
pip install -r requirements.txtThe requirements are minimal: `PyYAML`, `requests`, and `requests-file`. The `fetch.py` script reads from `sources.list`, fetches each source, parses the nodes, and writes the output files.
The README gives specific instructions for users who need to run the fetcher through an existing proxy. If a proxy is already running locally, create a `local_proxy.conf` file containing the proxy URL in this format:
http://127.0.0.1:7890/For users without an existing proxy, the recommended sequence is to first run `fetch.py` to get some nodes, import those into a proxy client, configure the client, then add the proxy URL to `local_proxy.conf` and run `fetch.py` again for a complete, proxied fetch.
Accessing the Subscriptions and Mirror Links
The raw subscription URLs on GitHub may be unreliable depending on network conditions. The README provides mirror links through JsDelivr CDN to improve availability.
For the Base64 subscription, several CDN paths are listed:
- JsDelivr Fastly CDN: `https://fastly.jsdelivr.net/gh/chengaopan/AutoMergePublicNodes@master/list.txt` - JsDelivr Cloudflare CDN: `https://testingcf.jsdelivr.net/gh/chengaopan/AutoMergePublicNodes@master/list.txt` - JsDelivr GCore CDN: `https://gcore.jsdelivr.net/gh/chengaopan/AutoMergePublicNodes@master/list.txt`
The README notes that JsDelivr links may lag behind the latest commit since CDN caching means they might not always be the freshest version. The raw GitHub links are always current but may be less accessible depending on local network conditions.
For Sing-Box users, the README points to a third-party conversion service rather than a direct URL. The README's note on this is explicit: the Sing-Box path uses an external converter that is not part of this project and does not preserve the routing rules defined in the Clash Meta subscription.
Reliability Limitations of Free Public Nodes
The fundamental limitation of this approach is that free public proxy nodes are unpredictable. Any given node in the aggregated list may be overloaded, may have gone offline since the last fetch, or may be operated by someone whose reliability and intentions are unknown.
The README makes a pointed argument against paid proxy services, listing risks such as service operators disappearing after receiving payment, personal data collection through account registration, and the claim that free nodes are numerous enough that even with high churn, enough remain usable at any given time. This argument reflects the project's explicit design goal of providing a continuously updated pool of nodes rather than a curated, quality-verified set.
For users who need consistent performance, a commercial VPN or VPS-based proxy is more appropriate. The trade-off is cost and the registration requirements that come with paid services.
The project also bundles routing rules that block some domains. The README notes that BootCDN and Staticfile domains are blocked after a supply-chain issue was reported in the community. Users who encounter access problems with specific sites can disable the relevant rule group in the Clash configuration.
Licensing and Repository Structure
The repository uses the Anti-996 licence (as noted in the README and the `LICENSE.md` file), which prohibits use by companies that enforce working hours or work patterns in violation of Chinese labor law. This is a non-standard licence not recognized as open-source by the OSI, which limits the project's use in commercial contexts.
The top-level structure includes `fetch.py` (the main aggregation script), `sources.list` (the list of source URLs), `fetch_config.yml` (configuration for the fetcher), `config.yml` and `dynamic.py` for routing rules, and the generated output files `list.txt`, `list.yml`, and `list.meta.yml`. The `.github/` directory contains the GitHub Actions workflow that runs the scheduled fetch.
The `abpwhite.txt` file in the repository root contains a whitelist of domains that bypass the proxy rules, allowing certain sites to connect directly. This file is part of the routing configuration and can be customized by anyone running the fetcher locally.
The last push was on 2026-09-22. Users who fork the repository are advised in the README to use the "Sync fork" button regularly, since old versions of the fetcher typically stop working as sources change. A deeply stale local clone is better deleted and re-cloned with `--depth=1` than pulled incrementally, as noted explicitly in the README.
Editorial conclusion
AutoMergePublicNodes is a practical starting point for anyone who wants a self-managed, aggregated proxy subscription without paying for a commercial service. The trade-off is reliability: free public nodes disappear or become overloaded without warning, and the aggregated list is only as current as the last fetch. Those who need stable, low-latency connections for professional use should verify individual node quality separately. The project forks from NoMoreWalls and has its last push on 2026-09-22.
Frequently asked questions
How do I add AutoMergePublicNodes to my Clash client?
Add the Clash Meta subscription URL from the README to your Clash client as a subscription source. Use the JsDelivr Cloudflare CDN mirror at testingcf.jsdelivr.net for better availability, or the raw GitHub URL for the latest version.
What protocols does AutoMergePublicNodes support?
The aggregated subscription includes nodes for V2Ray (VMess), SSR (ShadowsocksR), Trojan, and Clash-compatible formats. Sing-Box support is available through a third-party conversion service linked in the README.
How often is the AutoMergePublicNodes subscription updated?
The repository's GitHub Actions workflow runs on a schedule and updates the subscription files automatically. The README does not specify the exact interval, but users can check the repository's commit history to see the update frequency.
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/chengaopan-automergepublicnodes)