Skip to content

Unsupported protocols

MeowX reads mihomo / Clash Meta subscriptions as they are. A subscription can contain node types that MeowX does not implement; those nodes are left out, and the rest of the subscription keeps working. This page lists what is not supported and how such nodes behave.

For reference, these are the proxy types MeowX recognizes (case-insensitive):

ss, vmess, vless, trojan, anytls, hysteria2, wireguard, mieru, snell, miu, socks5, http — plus tuic, which is recognized but not implemented (below).

See the protocol overview for details on each.

Type Status
tuic Recognized but not implemented. See TUIC.
hysteria (Hysteria v1) Not supported. Only Hysteria 2 (type: hysteria2) is available.
ssr (ShadowsocksR) Not supported.
ssh Not supported.
direct, dns (mihomo proxy types) Not supported as proxy entries. Use the built-in DIRECT outbound instead. Such entries usually have no server / port; since every proxy entry needs both, they make the whole configuration fail to load — remove them.
Any other value Not supported.

When MeowX loads a configuration containing a node with an unknown type:

  1. The node is removed from the configuration and a warning naming the node and its type is written to the app’s logs.
  2. The configuration still loads. Proxy groups and rules that mention the node by name do not cause an error.
  3. A proxy group that lists the node:
    • url-test and fallback groups never pick it, because it can never pass a health check.
    • In a select group, connections fail while the removed node is the selected member. This includes the case where it is the group’s first member and you have not chosen another one yet — select a different member.
  4. A rule that targets the removed node directly (for example DOMAIN-SUFFIX,example.com,my-ssr-node) falls back to DIRECT.

The same applies to nodes of a supported type that MeowX cannot create — for example a Shadowsocks node with an unsupported cipher or plugin, a Snell node without a supported version, or a Hysteria 2 node with dialer-proxy. Each protocol page lists these cases under Validation.

When the whole configuration fails instead

Section titled “When the whole configuration fails instead”

Some problems are treated as a broken configuration rather than an unsupported node, and the import or update fails with an error. These include:

  • A node missing name, type, server or (for most types) port.
  • A node missing a field its protocol requires — for example password on a Hysteria 2 or TUIC node, psk on a Snell or Miu node, private-key / public-key / ip on a WireGuard node, username / password on a Mieru node.
  • Two nodes or groups with the same name, or a node or group named after a built-in outbound such as DIRECT.
  • A dialer-proxy that names something that does not exist, or chains that form a loop.
  • A field with the wrong YAML type (for example a WireGuard reserved written as a string).

TUIC nodes (type: tuic) pass the configuration check — they still need a non-empty password, otherwise the whole configuration fails to load — but MeowX cannot create a TUIC connection yet. A warning appears in the logs and the node behaves like an unsupported node: it may still be listed, but connections through it fail, and rules pointing straight at it fall back to DIRECT as described above.

TUIC v5 support needs a capability from the QUIC library MeowX uses that is not available yet. There is currently no timeline for it.

Unsupported features of supported protocols

Section titled “Unsupported features of supported protocols”

Some options of protocols that MeowX does support are not implemented. The most common ones:

  • Hysteria 2: Brutal congestion control (up / down are ignored).
  • WireGuard: IPv6 inside the tunnel, multiple peers (peers:), the base64 string form of reserved.
  • Mieru: multiplexing, HANDSHAKE_NO_WAIT, traffic-pattern.
  • Snell: versions 1–3, and v5’s QUIC Proxy mode.
  • SOCKS5: SOCKS5 over TLS.
  • HTTP: custom headers on the CONNECT request.

Shadowsocks, VMess, VLESS, Trojan, AnyTLS and the transports list their own limitations on their pages.

proxy-providers are not read, and the use: field of proxy groups is ignored. Nodes must be listed directly under proxies:.

Group type Status
select, url-test, fallback Supported.
load-balance Accepted, but behaves like select.
relay Accepted, but behaves like select. For chains, use dialer-proxy.
Any other value The whole configuration fails to load.