Last updated: October 11, 2026
Meow ("the App", Android package io.github.madeye.meow) is an open-source VPN client provided by Max Lv. We respect your privacy and are committed to protecting it. This policy explains what data the App handles and how.
No account or registration is required. The App has no advertising SDKs. It processes network traffic on your device to provide the VPN features you request. The developer does not operate the proxy servers you configure. Diagnostic data and other external requests are described below.
The App requests Android's VPN permission to create a local VPN tunnel and route traffic according to your configuration. Traffic may go directly to its destination or through proxy servers you choose. Those providers and destination services can receive your IP address and connection information; what they can see also depends on the protocol and encryption you configure. Use providers you trust and consult their privacy policies.
DNS requests follow the App's tunnel and configured resolver behavior. DNS is not guaranteed to use DNS-over-HTTPS. Subscription, proxy-provider and rule-set URLs are fetched to import or refresh your configuration, including scheduled subscription refreshes when enabled. Those servers receive your IP address, request headers and any credentials or tokens included in the URLs. Meow does not send these configurations to a developer-operated server.
You can delete profiles in the App, clear recent connections, or clear app storage in Android settings. Clearing app storage or uninstalling removes the local app data, but does not delete exported files, system backups, or information already received by an external service. Files or QR codes you explicitly export/share are passed to the destination you choose.
The Google Play build disables Firebase Analytics collection. GitHub release builds enable Firebase Analytics, which sends usage events (such as connect/disconnect, subscription actions, route-mode and proxy selection), including profile or proxy names on some events, and SDK-generated app/device and installation information to Google to understand feature use.
Firebase Crashlytics is included and automatic crash reporting is enabled in the current Google Play and GitHub builds. It can send crash stack traces, app/device information, installation identifiers, and session timing/app quality metrics to Google so the developer can diagnose failures and measure stability. Disabling Analytics does not disable Crashlytics. There is currently no in-app switch for crash reporting. Crash reports are separate from the local engine log viewer; the App does not explicitly attach that viewer's log buffer or traffic payloads to reports.
Google processes these diagnostics under its applicable terms. Firebase documents that Crashlytics retains crash traces and associated identifiers for 90 days before beginning deletion. See Firebase's privacy and retention information and Google's Privacy Policy. Contact us for requests about diagnostic data; uninstalling does not retroactively delete reports already sent.
Exit IP lookup. While "Show exit IP" is on (Settings > Network; off by default), the Home screen asks a public geo-IP service which address your traffic leaves from: api.ip.sb, falling back to ipwho.is and then ipinfo.io. The request carries no identifiers or app data, but like any request it reveals your public IP address (the proxy's exit address when the lookup is routed through the VPN, or your own address when disconnected or when Meow bypasses the VPN) to that service, which returns the IP, country and network operator shown on Home. The result is kept in memory for display, not saved to disk. Turn the setting off to stop these requests.
Update check. In the version downloaded from GitHub, tapping "Check for updates" (Settings > General) asks api.github.com for the App's latest release; the App never checks on its own. The request includes an app/version user agent, but like any request it reveals your public IP address to GitHub. If there is a newer version, "Download" opens it in your browser. The Google Play version never contacts GitHub for this: it opens the App's Play Store listing instead.
The App asks for camera access only when you open the QR code scanner on the Subscriptions page (the button at the top right of the Home tab), to read a subscription QR code, and you can decline and pick an image of the code instead. Camera frames and picked images are decoded on your device; they are not uploaded by the scanner. Shared QR images are temporarily written to the App's cache for sharing. A subscription QR code you share is generated on your device and leaves it only through the app you choose in the share sheet.
The App is not directed to children under 13. If you believe a child has provided personal information, contact us using the address below.
We may update this privacy policy from time to time. Changes will be posted on this page with an updated date.
For privacy questions or data requests, contact Max Lv at m0d8ye@gmail.com. For public technical questions, use our GitHub issue tracker. Do not post credentials or private configurations in public issues.
Meow is open source. You can review the complete source code at github.com/meow-rs/meow-android to verify these privacy claims.