Concepts
You can use MeowX without knowing any of this. But when something does not behave the way you expect, these few ideas explain almost everything.
Subscriptions and profiles
Section titled “Subscriptions and profiles”A subscription is a URL that returns a configuration file in the mihomo / Clash Meta YAML format. The file lists your nodes, how they are organized into proxy groups, the rules that decide where each connection goes, and DNS settings.
Each subscription you import becomes a profile in MeowX. You can keep several and switch between them; exactly one is current at any time. The current profile is what MeowX uses when it connects.
- Refreshing a subscription downloads the file again, picking up new nodes or rule changes. MeowX also refreshes the current subscription automatically when it is older than the sync interval (daily by default). See Account and subscriptions.
- Usage and expiry: many providers report how much traffic you have used, your quota and when the plan expires. MeowX shows this on the subscription card when the provider sends it.
- Direct (no proxy) is a built-in profile that sends everything directly. It is always there and cannot be deleted.
Your own changes (custom rules, bypass list, DNS hijacking and similar) are stored separately from the subscription, so a refresh never wipes them. The configuration MeowX is running can be viewed (read-only) under Me › View config.
Nodes and proxy groups
Section titled “Nodes and proxy groups”A node (also called a proxy or server) is one remote server you can send traffic through, using a protocol such as Shadowsocks, VLESS or Hysteria 2. See Protocols.
A proxy group is a named choice between several members. Members can be nodes, other groups, or the built-ins DIRECT and REJECT. Rules point at groups, not usually at individual nodes, so you can change which node a group uses without touching any rule.
| Group type | How the member is chosen |
|---|---|
| select | You pick it manually. Your choice is remembered. |
| url-test | MeowX periodically measures every member’s latency and uses the fastest one (within the group’s tolerance). |
| fallback | MeowX uses the first member in the list that is currently reachable, and moves to the next if it fails. |
| load-balance | Not yet supported Currently behaves like a select group: the app labels it “not implemented”. |
| relay | Currently behaves like a select group. |
In url-test and fallback groups you can still pick a member by hand. That pins it: MeowX keeps using it as long as it is alive and returns to automatic selection if it is judged dead. See Nodes.
When a group’s member is itself a group, MeowX follows the chain down to the actual node. That is what the current exit on the Home screen shows: the node your traffic really leaves through, plus the group path that led to it. For the full details of group options, see Proxy groups.
In Rule mode, every new connection is checked against a list of rules, top to bottom. The first rule that matches decides where it goes: to a proxy group, DIRECT, or REJECT.
rules: - DOMAIN-SUFFIX,example.com,Proxy # example.com and all its subdomains - GEOSITE,cn,DIRECT # domains in the "cn" category - GEOIP,CN,DIRECT # destinations whose IP is in China - MATCH,Proxy # everything elseRules can match domains, IP ranges, GeoIP countries, GeoSite categories, ports, rule sets downloaded from a URL, and combinations of these. See Rules for every type.
To make domain rules work even when an app connects straight to an IP address, MeowX reads the hostname from the start of the connection (the TLS server name or HTTP Host header). This “sniffing” is on by default.
Where your own settings fit in
Section titled “Where your own settings fit in”MeowX evaluates a few things before your subscription’s rules:
- Bypass list and Apple push notifications (unless Proxy APNs is on): always direct, in every mode.
- The outbound mode. In Global or Direct mode, the decision ends here.
- In Rule mode only: your custom rules, top to bottom.
- In Rule mode only: rules from any enabled HTTPS decryption modules.
- Your subscription’s rules.
Outbound modes
Section titled “Outbound modes”| Mode | Rules used? | Where traffic goes |
|---|---|---|
| Rule | Yes | Wherever the first matching rule says |
| Global | No | Through the proxy: the subscription’s GLOBAL group if it has one, otherwise the first proxy group in the configuration |
| Direct | No | Directly to the destination |
Modes switch instantly, without reconnecting. You can change them on the Home screen, the Mac panel or the widget.
DNS modes: Fake-IP and Redir-Host
Section titled “DNS modes: Fake-IP and Redir-Host”When an app wants to open example.com, it first asks DNS for the address. While MeowX is connected, it answers those DNS queries itself. How it answers is the DNS mode.
Fake-IP
Section titled “Fake-IP”MeowX instantly answers with a placeholder address from a reserved range (198.18.0.0/16) and remembers which domain it handed out. When the app then connects to that placeholder, MeowX knows the domain, applies domain rules, and for proxied connections passes the domain on to the node, which resolves the real address itself. Connections start quickly because nothing waits for a real DNS lookup first.
The trade-offs: apps see addresses that are not real, which a few apps dislike, and IP-based entries in your bypass list cannot match because the destination is a placeholder. In Fake-IP mode MeowX also returns empty answers for IPv6 (AAAA) lookups.
Redir-Host
Section titled “Redir-Host”MeowX performs a real DNS lookup and returns the real address, while remembering which domain it belonged to. Apps see genuine IPs, which is the most compatible behavior. Connections may start slightly later because of the real lookup.
Follow subscription (the default setting)
Section titled “Follow subscription (the default setting)”Use whatever the subscription’s dns.enhanced-mode says. If the subscription does not specify a mode, MeowX uses Redir-Host.
You can change the DNS mode in Me › Proxy & Speed Test › DNS mode, on the Mac panel’s Settings, or by tapping the DNS tile on the Home screen, which cycles through Follow subscription, Redir-Host and Fake-IP. Changing the effective mode reconnects automatically. For the underlying configuration, see DNS.
On the Mac: system proxy mode and TUN mode
Section titled “On the Mac: system proxy mode and TUN mode”macOS On iPhone and iPad, MeowX always runs as a VPN that sees all traffic. On the Mac you choose:
System proxy mode. MeowX runs inside the app and opens a local HTTP / SOCKS5 proxy (port 7890 by default). A small privileged helper points macOS’s proxy settings at it. Browsers and most apps follow the system proxy; apps and tools that ignore it (many command-line tools, some games) connect directly. For terminals, use Copy terminal command or Open terminal with proxy on the panel.
TUN mode. A network system extension creates a virtual network interface and receives traffic at the IP level, the same way the iOS VPN does. Practically everything goes through MeowX, including apps that ignore proxy settings. Local network addresses are left out so your printer, NAS and router stay reachable. TUN mode also sets the system proxy to the extension’s local proxy (you can turn that off with the System proxy toggle).
Both modes use the same subscription, rules and settings. The Installation page explains the one-time approvals each mode needs, and Mac menu bar app explains the toggles.
Overrides that survive refreshes
Section titled “Overrides that survive refreshes”These are your own settings, applied on top of any subscription. They are kept when you refresh or switch subscriptions, and they apply immediately while connected:
- Custom rules: this domain or IP goes Direct, Proxy or Reject (Rule mode only).
- Bypass list: these domains or IP ranges always go direct.
- DNS hijack: resolve these domains to an IP address you choose.
- Block QUIC: drop QUIC (UDP port 443) so apps fall back to TCP.
- Proxy APNs: send Apple push notification traffic through the proxy instead of directly.
All of them are covered in Settings and Custom rules.
