Skip to content

Activity

The Activity tab shows what is going through MeowX right now: every open connection, and a log of what the client and the proxy engine are doing. It is the best tool for answering “which node did this app use, and why?”.

On the Mac, connections and logs are two separate panel tabs; see Mac menu bar app. This page describes iPhone and iPad.

Activity data is only available while connected. When MeowX is disconnected, the tab shows “Tunnel not connected”. The list refreshes every 2 seconds while the tab is open in the foreground.

At the top, the page header shows the total uploaded and downloaded bytes of all currently open connections. Below it, a segmented control switches between:

  • Connections · N: the live connection list (N is the number shown after filtering).
  • Logs: the log stream.
  • Requests: HTTP requests recorded by HTTPS decryption. This segment is only useful when HTTPS decryption is set up; see HTTPS Decryption.

Under the segment there is a search field (“Search domain / target / rule” for connections, “Search logs” for logs), a Close all (connections) or Clear (logs) button, and the type filter chips.

A row of chips filters both the connection list and the logs:

Chip Shows
All Everything
MITM Connections that went through the HTTPS decryption check
APNs Apple Push Notification service traffic
DNS DNS traffic: port 53 and 853 connections, and common DNS-over-HTTPS servers. In logs, individual DNS queries
Direct Connections that ended up going direct
Proxy Connections that ended up going through a proxy node

Direct and Proxy are decided by where the connection actually went, following the proxy group chain down to the final node, not by the name of the rule.

The classification is done by the proxy engine, so client (MeowX) log lines, which have no type, are hidden whenever a type other than All is selected.

Each connection is a card with:

  • A TCP or UDP badge and the destination host (domain when known, otherwise IP and port).
  • The outbound it used (green for direct, pink for proxied) and the rule it matched.
  • Uploaded and downloaded bytes and how long it has been open (updating live).
  • An × button to close that connection.

Close all closes every open connection, regardless of the search or filter. Closing a connection is handy after changing a rule or a node: the app reconnects, and the new connection follows the new route.

Tap a connection to open its details as a sheet (on iPad, the details appear in the right column). The header shows the host and a Close connection button, or Ended if it has already closed (the last known numbers stay visible).

The details card shows:

Field Meaning
Outbound chain The path the connection took, for example Proxy › Auto › HK 01, ending with the node actually used. Green if direct
Matched rule The rule that decided the route, such as DOMAIN-SUFFIX,example.com or MATCH. Your own custom rules appear with a “(user rule)” suffix
Network TCP or UDP, and how long the connection has been open
Traffic Bytes uploaded and downloaded

If HTTPS decryption is enabled, a section about decryption follows (see HTTPS Decryption).

At the bottom of the connection details is Route this domain (or Route this IP when the connection has no domain). It is the fastest way to create a custom rule.

  1. Open the connection’s details.
  2. For a domain, choose Include subdomains (matches example.com and everything under it) or This domain only. For an IP, the rule always matches that exact IP.
  3. Tap Direct, Proxy or Reject. The Proxy button shows which proxy group “Proxy” means for your subscription.

The rule is saved immediately, placed at the top of your custom rules, and pushed to the running engine. Below the buttons:

  • Current rule shows the custom rule that already matches this host, if any, with a Delete button.
  • If there is none, it says “No custom rule yet, following subscription rules”.
  • A note reminds you that custom rules only work in Rule mode, take priority over subscription rules, and apply to new connections. If you are in Global or Direct mode, the note says that custom rules are not in effect.

If a connection has neither a usable domain nor an IP, the section says so and offers no buttons.

The Logs segment shows recent log lines from two sources. Use the source chips above the list to filter:

  • All
  • MeowX: events from the app itself (connecting, subscription refreshes, sign-in, speed test results, engine start / stop and similar).
  • Engine: messages from the proxy engine (warnings, errors and, if enabled, per-connection details).

Each line has a time, a level (info, warn in orange, error in red) and the message. The list follows new lines automatically while you are at the bottom; scroll up to read without being pulled back down.

Clear empties both the app’s and the engine’s log buffers. Logs are kept only in memory and are limited to the most recent lines, so they disappear when the app or extension restarts.

By default the engine only records warnings and errors. For per-connection detail, turn on Record logs:

  • iPhone / iPad: in the Me tab, the Record logs switch is directly in the settings list (“Also record routing and DNS details for each connection”).
  • Mac: Settings › General › Record logs, or the info / warn level menu on the Logs tab.

With logging on, the engine logs how each connection was routed, and each DNS query as a line like DNS example.com A → 192.0.2.1 [source] 12ms. If you select a type filter and see “No matching logs”, the hint tells you to turn on Record logs first.

On iPad, Activity uses two columns:

  • Middle: the header with Close all, a search field with the count, the type chips, and the connection list.
  • Right: the selected connection’s details and rule actions at the top, and the logs card below it, with its own source chips and Clear button. Without a selection the right column says “Select a connection”.

When the Requests segment is selected, the columns show recorded requests and their details instead.