Skip to content
Choose a tag to compare

Bugs fixed:
Fix typo in default configuration.
Fix example preference file.
Fix error when template include path is not set.
Fix crash when adding SSID group to Loon configurations.
Fix error in parsing ShadowsocksR configurations.
Fix cache system not working properly.
Don't add tls-verification to Quantumult X nodes if not over-tls (#413).
Fix max_allowed_download_size option has no effect (#409).
Fix some client does not recognize integer port or alter id (#371)
Fix skip-cert-verify option not correctly added to Surge subscriptions.
Fix matching not-range does not work (#428).
Fix parsing and generating of HTTPS nodes (#450).
Fix incorrect order of tolerance and timeout field in custom group config.
Fix Content-Disposition header for better support on browsers.
Fix parsing of some Shadowrocket links.
Fix parsing of some Trojan share links.

Newly added:
Use url-latency-benchmark type for Quantumult X URL-Test group.
Add support for Trojan-WebSocket protocol.
Add support for new format of Clash VMess WebSocket options.
Add support for version field of Snell nodes.
Add servername field for Clash VMess nodes (#449 #451).
Add VMess AEAD option for Surge and Quantumult X configs.
Support HEAD request that only return Subscription-UserInfo (#434).
Add more detail info to crash report.
Add support for latest Surfboard config.

Other changes:
Update local rulesets and configs.
Update Emoji.
Optimize codes.

Choose a tag to compare

ARM releases has been restored. ARMHF build is replaced by ARMv7.

Bugs fixed:
Fix failed to load external TOML config when surge_rule_base is set.
Fix typo in default profile.
Fix some generated VMess nodes have incomplete config
Revert to legacy Clash VMess-WS node format for backward compatibility.

Other changes:
Update local rulesets.

Choose a tag to compare

The CI environment for building releases has been moved from Travis CI to GitHub Actions. For now ARM releases will be available only via Docker images.

Bugs fixed:
Fix not correctly handle SOCKS5 nodes in Clash subscriptions.
Fix some global preferences has no effect.
Fix detection of loop request (#284).
Fix incorrect handing of default node parameters in SSD subscription.
Fix unable to parse some Clash rule-providers (#289).
Fix not filtering inline comments in some Surge rulesets (#285).
Fix broken generation of Clash subscription.
Fix wrong type of alterId in Clash VMess nodes (#325).
Fix broken parsing of ShadowsocksR subscription.
Fix possible crash when running scripts.
Fix server_port fields become 0 in SIP008 and ShadowsocksD subscriptions.
Fix parsed target not being passed to template argument.
Fix missing TLS setting in VMess nodes.
Fix subscription info not being passed to the response.
Fix inconsistence Shadowsocks plugin name.
Fix parser may not recognize some SIP008 format (#367).
Fix Gist upload and other web operation may fail to post data.

Newly added:
Add force refresh rulesets after /readconf call.
Add specifying filter script from URL arguments.
Add support for using matchers in include/exclude options.
Add dummy cipher for ShadowsocksR nodes in Clash (#312).
Add Cron task options.
Add clean context option for persisting a JS context across the whole request.
Add basic support for VMess h2 & grpc protocols.
Add support for using TOML as configuration file format.
Add basic support for trojan-grpc nodes.

Other changes:
Print error when failed to load rule base.
Rename default configuration files for easier upgrade.
Complete refactor of project file structure.
Replace JS engine with QuickJS.
Use stable sort for sorting nodes.
Refactor codes.

Choose a tag to compare

Bugs fixed:
Fix target auto not working properly.
Fix crash when trying to convert SSR subscriptions to SSD subscriptions.
Fix conversion of some logical rules in Surge configurations.
Fix incorrect order of options in Quantumult nodes.

Newly added:
Add support for parsing standard VMess links.
Add support for simple web server.
Add PROCESS-NAME rule type to Clash subscriptions.
Add POST support to fetch() in scripts.
Add /flushcache for cleaning up all caches.
Add type fallback for exported v2rayN subscription.
Add skipping loading groups, rulesets and unrelated rule_base for simple subscriptions.

Other changes:
Optimize codes.
Use a higher performance implementation of cache read/write locks.
Update User-Agent match pattern for Loon.
Update local rulesets and configs.
Remove ConnersHua rules repository and replace all examples with DivineEngine repository.

Choose a tag to compare

Bugs fixed:
Fix compatibility with some non-standard subscriptions.
Fix group option not detected in Trojan links.
Fix compatibility when parsing Clash ShadowsocksR nodes.
Fix potential crash when using nullnode as URL.
Fix compatibility with Electron-SSR configurations.
Fix failed to download subscriptions, configs and rulesets due to bad implementation of download size checker.
Fix /updateconf replacing configuration file with an empty file.
Fix /render throws Not found while the template exists.

Newly added:
Forward request User-Agent for download instead of using internal one.
Add support for specifying max allowed download size.
Add support for converting some groups to proxies in Surge subscriptions.
Add option to change style of proxies section in Clash subscriptions.
Add support for setting profile-update-interval for Clash subscriptions.
Add UrlEncode as template function.

Other changes:
Optimize codes.
Update local rulesets and configs.
Add DivineEngine local ruleset repository.
Remove base pre-generation function.
Remove Clash rule-providers from ACL4SSR repository.
inja: Using a better implementation for stripping blanks for expressions.
inja: Update library to latest.
Optimize memory usage.

Choose a tag to compare

Bugs fixed:
Fix implementation of using Clash rule-providers as rule sources.
Fix implementation of scripts in renaming/adding Emoji.
Fix compatibility problem with some non-standard v2rayN subscription.
Fix running program from directory other than program folder may cause not using pref.yml as default.
Fix logic error in generating Clash Script.

Newly added:
Add option for whether to try to resolve hostnames when generating ShadowsocksR nodes in Surge configurations.
Add fallback support for different names of Shadowsocks plugins.
Add case for when no net type is set for VMess nodes.
Add support for more types of nodes to exported Mellow subscriptions.
Add "auto" target to automatically determine target and other options by User-Agent.
Add option to allow continue when failed to parse an subscription link.
Add update-interval option to exported Surge RULE-SET.
Add support for ShadowsocksR nodes in Clash subscriptions.

Other changes:
Change behavior of using proxy-providers in Clash proxy groups to allow both providers and proxies to exist.
Update local rulesets.
Optimize codes.
inja: Update to latest version.

Choose a tag to compare

Bugs fixed:
Fix VMess HTTP nodes missing in exported Clash configurations.
Fix implementation of processing escape character in INIReader.
Fix some keys might be missing when parsing some Clash subscriptions.
Fix bad implementation of regex library for include/exclude.
Fix bad implementation of request header forwarding.
Fix implementation of v2ray-plugin in Quantumult X subscriptions.
INIReader: Fix key value trimming error.
INIReader: Fix not processing escape character when dumping.

Newly added:
Add support for parsing VMess HTTP nodes in Clash configurations.
Add support for adding update interval to Clash rule-providers.
Add support for using \uhhhh to match characters with regex.
Add basic support for tls13 flag.

Other changes:
Add example for using Clash proxy-provider.
Clean up codes.
Optimize performance.
Update local rulesets.

Choose a tag to compare

Add experimental JavaScript support for providing subscriptions, filtering nodes, sorting nodes, generating groups, renaming nodes, adding Emojis.
Change section and key names in configuration files.

Bugs fixed:
Fix Emoji settings not working in external configs in YAML format.
Fix broken SSID group exported to Quantumult X configurations. (#167)
Fix compatibility with some V2Ray-Core configurations.
Fix GROUP/GROUPID/INSERT matcher not correctly handle empty rules.
Fix support for parsing Surge HTTP / SOCKS5 nodes.
Fix not correctly handle nodes with only Emojis as remarks.
Fix not correctly handle nodes with port 0.
Fix not correctly handle rename patterns that may make remarks empty.
Fix data URIs not correctly parsed.
Fix downloading files may be caught in infinite redirect loops.
Fix support for some non-standard Shadowsocks subscriptions.
Fix exporting useless info in Clash HTTP/SOCKS 5 nodes.
Fix keeping UDP/TFO/Skip Cert Verify flags from original subscriptions not working.
Fix support for parsing keyword type in Clash domain rule-provider.
Fix potential error on reading configuration files.
Fix not processing remarks with comma when exporting some subscriptions.
Fix rename/emoji scripts not working with INI.
Fix examples in pref.ini
Fix ruleset types other than Surge Ruleset not correctly expanded to rules.
Fix trying to limit upload file size.
Fix when no GEOIP rule is added, the Clash Script will not be able to generate.
Fix download fail when cache is disabled.
Fix support for converting Quantumult X rulesets to Surge format.
Fix not adding local rulesets as Clash rule-providers.
Fix potential crash when parsing broken Surge subscription。
Fix crash when providing a folder name to fileGet.
Fix error in generated Clash scripts.
Fix missing classical providers when exporting Clash rule-providers.
Fix not correctly process some rulesets when generating Clash scripts.
Fix typo in pref.ini.

Newly added:
Add support for using CORS proxy in downloading.
Add max rulesets/rules limit option.
Add tag support for adding group name to a specific link.
Add complete matcher support for Emoji and rename match rule.
Add support for tolerance option in Clash proxy groups.
Add options for specifying maximum allowed rulesets in external configs and generated rules.
Add support for suffix tag in Clash rule provider.
Add request._args variable to templates to read all arguments passed from URL.
Add reporting HTTP status code when failed to upload to Gist.
Add support for parsing Clash subscriptions in JSON format.
Add retry for downloading files.
Add support for exporting Clash classical rule-provider.
Add support for adding proxy provider to custom group in Clash configurations.
Add getLink, and, or, bool, string, startsWith, endsWith as template functions.
Add support for any amount of argument for template function join.
Add independent option for adding/removing Emojis in URL argument.
Add support for reading API_MODE/API_TOKEN/MANAGED_PREFIX from environment variables.
Add support for using Quantumult X rulesets/Clash rule-providers as rule sources.
Add geoip as script function.
Add support for using script to rename nodes and add Emojis to remarks.
Add "mixed" target to generate subscriptions with all types of standard subscriptions.
Add passing X-User-Agent and X-Client-IP header to subscription downloader.
Add support for exporting Trojan nodes to Loon configurations.
Add "nullnode" as node placeholder to export configurations without adding any real node.
Add support for using !!import in source subscription URLs.
Add support for allowInsecure and tfo argument in Trojan links.

Other changes:
Raise download file size limit to 1MB.
Move node renaming after removing Emojis.
Use internal MD5 calculation.
Update local rulesets and configs.
inja: Implement a better white space control system.
inja: Add variadic function callback support.

Choose a tag to compare

Bug fixed:
Fix /render not correctly render UTF-8 content.
Fix not correctly loading configuration file when api_mode is false.
Fix program crash when processing broken template variables passed.
Fix trying to load other arguments when no supported target is provided.
Fix support for parsing some subscriptions with complex passwords.
Fix parse error with some Surge/Quantumult X subscriptions.
Fix incorrect flag for expanding rulesets to rules.
Rework logic for insert_url.

Newly added:
Add append to template function.
Add URL aliasing support to shorten request URL.
Add support for parsing and exporting Snell server in configurations.
Add numbering system to process duplicated node names.
Add detailed description for some settings in pref configuration.
Add skip_cert_verify support in Quantumult X (#144).
Add 512KB file download size limit to prevent feeding a large file to the processor.
Add file scope limit to rule_base options in external config to prevent loading sensitive files as rule base.
Add support for generating Clash DOMAIN/IP-CIDR rule-providers.
Add experimental Clash script generator.
Add support for exporting Surge DOMAIN-SET.
Add INSERT group match flag to match insert_url only.
Add keeping UDP/TFO/Skip Cert Verify settings in subscriptions.
Add support for combining multiple profile.
Add replacing all match when using rename_node.
Add support for generating Clash rule-providers in Rule mode.
Add "prepend" option to control where to add insert_url.
Add default switch for enabling insert_url.
Add support for Quantumult X IP6-CIDR rules.
Add SNI host settings to Surge VMess nodes.
Add support for specifying node rename pattern in URL argument.
Add support for exporting SSID group to Quantumult configurations.

Other changes:
Remove support for std::regex for now.
Change global UDP/TFO/Skip Cert Verify settings in pref configuration to comments.
Update (#156).
Optimize codes.

Choose a tag to compare

Bug fixed:
Fix not filtering USER-AGENT and URL-REGEX rules for Surfboard configurations. (Issue #127).
Fix not filtering load-balance group in Surfboard configurations. (Issue #128).
Fix inconsistent argument name in HTTP and Socks 5 single link.
Fix support for some non-standard ShadowsocksD subscription.
Fix include/exclude option in URL argument not overriding former settings.
Fix template system interpreting some comments in YAML files as line statement.
Fix incorrect argument count for find in template.
Fix error in processing URL arguments.
Fix trying to fetch a ruleset when adding it as a RULE-SET rule to configuration files.
Fix support for parsing some Surge configurations.
Fix adding extra blank line to section end when exporting some configurations.
Fix adding real internal link as MANAGED-CONFIG URL when using profile.
Fix rule type filter not working properly.
Fix exporting broken configuration file in some occasions.
Fix directly treating not-exist ruleset file as URL.
Fix group fallback not working on Quantumult X configurations.
Fix typo in example profile.
Fix logical error causing local rulesets are missing in configurations.
Fix not filtering IP-CIDR6 / PROCESS-NAME rules in Quantumult X rules.
Fix /getruleset not filtering PROCESS-NAME / IP-CIDR6 for Quantumult X.

Newly added:
Add support for using template in external configurations.
Add relay group support for Clash configurations.
Add specifying default external configuration file to use when none is provided.
Add URL Decode to username and password field in Telegram-link-style HTTP/Socks 5 links.
Add more function callbacks to template renderer.
Add basic Jinja2Cpp template library support.
Add support for specifying tolerance and timeout for some proxy groups. (Issue #121).
Add keeping comments and blank lines for more sections in Quantumult X configurations.
Add rule type match to filter rules.
Add /render interface to directly render a template as output content.
Add find as a template function.
Add filtering out token as a template variable.
Add split as a template function。
Add SNI host parsing support for Trojan subscriptions.
Add detailed log report.
Add managed_config_prefix to global variables in template.

Other changes:
Optimize codes.
Update build scripts.
Update inja library to latest version.
Update local rulesets and configs.
inja: re-implement variable accessing to catch exceptions on using not-exist variable and return an empty value.
INIReader: Add keeping comments and blank lines in direct-save sections.