Privacy policy
Short version. Meterkat has no accounts, ads, analytics or tracking. Your usage numbers are encrypted on your computer and can only be decrypted by your paired phones. The relay in between stores the latest encrypted update and the technical data needed to deliver it (described below), and deletes it automatically. Like every internet service, it sees your IP address while it handles a request; we do not store IP addresses in the relay's database. You can delete everything yourself at any time.
1. Who is responsible
The controller under the EU General Data Protection Regulation (GDPR) is:
Fabian Rainer DürkopVor dem Berge 40, 38524 Sassenburg
Email: meterkat@fabian-duerkop.de
Meterkat is a free private project with no data protection officer (none is required). Questions about privacy go to the email address above.
2. How Meterkat works
Meterkat has three parts:
- The desktop companion runs on your computer. It asks the official Claude Code and Codex command-line tools for their usage report, keeps only the quota percentages and reset times, encrypts them and uploads them.
- The relay at
meterkat-relay.fabian-duerkop.deholds the latest encrypted update until your phone fetches it. It runs on Cloudflare. - The Android app downloads the update, decrypts it on the phone and shows it in the app, a widget and a notification.
The encryption key is created on your computer and passed to the phone inside the pairing QR code or link. The relay never receives it (AES-256-GCM, key derived with HKDF-SHA256). Pairing links have the form https://meterkat.fabian-duerkop.de/pair#…: the key is in the part after #, which browsers never send to a server. If the app is not installed and the link opens in a browser, the website receives the address up to the #: the source ID and the single-use pairing code, but never the key. The code expires after 5 minutes and is useless without the key; the page runs no scripts and we do not log these requests.
3. Desktop companion
The companion runs the Claude Code and Codex tools that are already installed and signed in on your computer, and reads their usage report. From that report it keeps only: the provider (for example "claude"), whether data is available, the percentage used and reset time of each limit window, the names of individual limits (for example a model name) and when the sample was taken. It does not read or upload passwords, sign-in tokens, email addresses, prompts, conversations or files. Those tools talk to Anthropic and OpenAI under your own agreement with them; Meterkat adds no requests of its own to those companies.
The companion stores its relay credentials, the encryption key and the last snapshot in a private folder for your user account on your computer. That data never reaches us in readable form.
Update check. Once a day the companion asks GitHub (api.github.com) for the newest release and downloads it if there is one. GitHub sees your IP address and the request; it does not receive any usage data. You can turn this off with meterkat update disable. See GitHub's privacy statement.
4. The relay
What the relay stores
For each companion installation (a "source"), the relay stores:
| Data | Purpose |
|---|---|
| A random source ID | Addressing the source |
| Hashes (SHA-256) of the companion's and each phone's access token | Checking access without storing the tokens themselves |
| A random device ID per paired phone, with the pairing time (at most 10 phones) | Showing and revoking paired phones |
| The hash of at most one pending pairing code (valid for 5 minutes, single use) | Pairing a new phone |
| The latest encrypted update (ciphertext) only, padded to hide its exact size | Delivering it to your phones |
| Key number, sequence number, the time the update was created, its size, when the source was created and last uploaded | Rejecting old or replayed updates, rate limits and automatic deletion |
The relay cannot see which providers you use, your quota values, your name, email address or any other personal details. Older updates are overwritten, not kept.
What the relay can observe
From the visible data above, whoever operates the relay could infer when your companion is running (upload times), roughly how much data an update contains (in steps of 256 bytes), how many phones are paired and when phones fetch updates.
IP addresses and Cloudflare
The relay runs on Cloudflare Workers. To deliver any request, Cloudflare processes your IP address and technical request data (time, address requested, response code, device and network data such as the approximate location Cloudflare derives from the IP). The relay uses your IP address briefly to limit the number of registrations, pairing attempts and similar requests per network (abuse protection); those counters are kept by Cloudflare for about a minute and are not written to the relay's database. Per-request logging is switched off on the relay. If an unexpected error occurs, Cloudflare keeps that error entry, which can include technical request data, for up to 7 days. Access tokens are sent in a request header and never appear in addresses.
Cloudflare, Inc. (101 Townsend St, San Francisco, CA 94107, USA) processes this data on our behalf under a data processing agreement. Data may be processed in the USA; Cloudflare is certified under the EU-U.S. Data Privacy Framework and the agreement includes the EU Standard Contractual Clauses. See Cloudflare's privacy policy.
5. Android app
The app sends to the relay only what it needs to pair and fetch updates: the source ID and pairing code when you pair, then its access token with each request. It does not send any usage data, contacts, location, device identifiers such as the advertising ID, or any content from your phone.
On the phone the app stores its access token (additionally encrypted with a key in the Android Keystore), the encryption key, the latest snapshot and your display settings. This data is excluded from Android cloud backup and device-to-device transfer.
Permissions: Internet (relay), notifications (only if you turn on the notification) and run at startup (to restore the notification after a restart). If you scan the pairing QR code inside the app, the camera image is processed on the phone only. The app contains no advertising, analytics or crash-reporting libraries.
Google Play. If you install Meterkat from Google Play, Google processes data about the download and your device under its own privacy policy. If you have allowed Android to share usage and diagnostics data, Google gives us aggregated statistics and anonymous crash reports in the Play Console; they contain no usage data from Meterkat.
6. This website
This website is hosted on Cloudflare Pages. It uses no cookies, no analytics and loads nothing from other servers. To deliver pages, Cloudflare processes your IP address and request data as described in section 4. Downloads of the companion come from GitHub (github.com), which applies its own privacy statement.
7. Legal bases
- Delivering your usage data to your phones, pairing and the update check you asked for: Art. 6(1)(b) GDPR (providing the service you use).
- Abuse protection, rate limits, error logs and delivering this website: Art. 6(1)(f) GDPR (our legitimate interest in a secure, working service).
There is no automated decision-making or profiling.
8. How long data is kept
| Data | Deleted |
|---|---|
| Pending pairing code | After use, 5 wrong attempts or 5 minutes |
| Encrypted update on the relay | Replaced by every new update; removed after 72 hours without a new upload |
| Source, its devices and all related relay data | Immediately when you delete it, or automatically after 90 days without an upload |
| A source that was never used (no upload, no paired phone) | 72 hours after registration |
| A phone's access entry | Immediately when you disconnect the phone, revoke it from the companion, or the source is deleted |
| Rate-limit counters (IP) | About one minute |
| Relay error entries at Cloudflare (no per-request logs) | Up to 7 days |
| Data on your phone and computer | When you disconnect, delete the source or uninstall |
9. Deleting your data
- On the phone: Disconnect in the app removes this phone's access on the relay and deletes its local data. Uninstalling the app deletes the local data; the phone's access entry on the relay then stays until the source is deleted.
- On the computer:
meterkat deletedeletes the source with all its phones and the stored update on the relay, and removes the local key and credentials.meterkat revokeremoves access for all phones. - Automatically: a source that has not uploaded for 90 days is deleted.
Step-by-step instructions are on the support page.
10. Your rights
You have the right to access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18), data portability (Art. 20) and to object to processing based on legitimate interests (Art. 21). Write to the email address in section 1.
The relay holds no names or contact details, so we usually cannot tell which data belongs to you (Art. 11 GDPR). If you send us your source ID, we can find and delete it; deleting it yourself as described above is quicker.
You may also complain to a data protection supervisory authority, for example the one responsible for us: Der Landesbeauftragte für den Datenschutz Niedersachsen, Prinzenstraße 5, 30159 Hannover, poststelle@lfd.niedersachsen.de.
11. Children
Meterkat is a tool for adult users of paid AI subscriptions and is not directed at children.
12. Your own relay
The app lets you enter another relay address. If you use a relay that someone else operates, that operator is responsible for the data it processes, and this policy does not apply to it.
13. Changes
We update this policy when Meterkat changes. The date at the top shows the current version. Material changes are also mentioned in the release notes.