Policy Group
A policy group may contain multiple policies. It can be a proxy policy, another policy group or a built-in policy (DIRECT and REJECT).
There are five group types: select, url-test, fallback, load-balance and ssid. Section [Proxy Group] declares policy group.
Manual Select Group
Select which policy will be used on the user interface.
SelectGroup = select, ProxyHTTP, ProxyHTTPS, DIRECT, REJECT
In iOS version. You may use Today Widget to quickly switch policy for the first 'select' group. In macOS version. You may switch the policy in the menubar menu.
Auto URL Test Group
Automatically select which policy will be used by benchmarking the latency to an URL.
AutoTestGroup = url-test, ProxySOCKS5, ProxySOCKS5TLS, url = http://www.google.com/generate_204
Parameters
url: Required
Chute will send a HTTP HEAD request to the URL. The test only cares about whether receiving a response data, even if the response is a HTTP error.
interval: Optional, s (Default: 600s).
The benchmark result will be discarded after the interval time. A retest will happen if the policy group is used.
tolerance: Optional, ms (Default: 100ms).
Policy will be changed only when the new winner has a higher score than the old winner's score plus the tolerance.
timeout: Optional, s (Default: 5s).
Abandon a policy if not finished in timeout.
Fallback Group
Select an available policy by priority. The availability is tested by accessing an URL, just like an auto URL test group. The policy defined in the front has a high priority.
FallbackGroup = fallback, ProxySOCKS5, ProxySOCKS5TLS, url = http://www.google.com/generate_204
Parameters
url: Required
Specify which URL will be tested.
interval: Optional, s (Default: 600s).
Determine how long the benchmark result will be discarded.
timeout: Optional, s (Default: 5s).
Abandon a policy if it is not finished until timeout.
SSID Group
Select a policy according to the current Wi-Fi SSID.
SSIDGroup = ssid, default = ProxyHTTP, cellular = ProxyHTTP, SSIDName = ProxySOCKS5
Parameters
default: Required.
The policy when no matched SSID option has been found.
cellular: Optional.
The policy under cellular network. If not provided, the default policy will be used.
External Group
In the future version. A policy group may import policies defined in an external file or from an URL.
egroup = select, policy-path=proxies.txt
This file contains a list of policies, just like the definition lines in the main profile
Proxy-A = https, example1.com, 443
Proxy-B = https, example2.com, 443
Load Balance Group
Distribute requests across multiple proxies using a load balancing strategy.
LBGroup = load-balance, ProxySOCKS5, ProxyHTTPS, url = http://www.google.com/generate_204, strategy = round-robin
Parameters
strategy: Optional (Default: round-robin)
Specify the load balancing strategy:
| Strategy | Description |
|---|---|
round-robin |
Distribute requests evenly across all proxies in turn |
consistent-hashing |
Route the same hostname consistently to the same proxy |
sticky-sessions |
Stick sessions to the same proxy based on client affinity |
url: Optional
url = http://www.google.com/generate_204
Chute will send a HTTP HEAD request to test proxy availability. Only healthy proxies are used for load balancing.
interval: Optional, s (Default: 600s).
interval = 300
How often to re-test proxy availability.
timeout: Optional, s (Default: 5s).
timeout = 3
Timeout for the availability test request.
max-failed-times: Optional (Default: 5).
max-failed-times = 3
Number of consecutive failures before a proxy is marked as unhealthy.
lazy: Optional (true/false, Default: false).
lazy = true
When enabled, proxies are only tested on first use rather than on startup.
expected-status: Optional (Default: empty).
expected-status=204
Expected HTTP status code for the URL test. If specified, only responses with this status code are considered successful.
hidden: Optional (true/false, Default: false).
hidden = true
When enabled, the policy group is hidden from the user interface. Useful for groups that are managed programmatically or by scripts.
Note: The
interrupt-exist-connectionsparameter is now a global[General]setting. See Misc Options.
idle-timeout: Optional, s.
idle-timeout = 120
Idle timeout for connections through this policy group. Connections idle for longer than this duration will be closed.
Proxy Provider
Proxy providers allow you to import proxy lists from external sources (files or URLs). Defined in the [Proxy Provider] section:
[Proxy Provider]
MyProvider = url=https://example.com/proxies.txt, path=/local/cache/proxies.txt, interval=3600
Parameters
| Parameter | Required | Description |
|---|---|---|
url |
No | URL to fetch proxy list from |
path |
No | Local file path for proxy list |
interval |
No | Update interval in seconds |
format |
No | Payload format description |
filter |
No | Filter regex to include only matching proxy names |
exclude-filter |
No | Filter regex to exclude matching proxy names |
payload-format |
No | Hint for parser to interpret the payload correctly |
Proxy providers are referenced from policy groups by name:
[Proxy Group]
MyGroup = select, policy-path=MyProvider