Privacy policy
Last updated November 8, 2026
This policy covers the Meowdoro app for Mac and iPhone, its helper for remote machines, our relay, push service and early-user service, and this website. They’re made by HashEx US, LLC, a company in the United States (“we”). Write to meow@meowdoro.com with any question.
In short
- The app has no account and no analytics. Your settings, statistics and sessions stay on your Mac, and we never receive them.
- The app checks GitHub for updates once a day, and once registers your Mac as an early user so you keep Meowdoro Pro for free (below). If you turn on agents on other machines, their status reaches your Mac through our relay, encrypted so that we can’t read it.
- This website uses Google Analytics. In Europe it loads only if you allow it; elsewhere you can turn it off with “Analytics settings”.
- We don’t sell personal information.
The Meowdoro app
What stays on your Mac
Settings, statistics, the journal of your focus sessions and the list of agent sessions are stored in your user folder (~/Library/Application Support/Meowdoro and the app’s preferences). We never receive them.
What the app reads on your Mac
- Events from Claude Code and Codex, through the plugin you connect: the session’s id, what happened (working, waiting, finished, failed), the project’s folder name, the session’s title and, for permission requests and MCP tools, the tool’s name.
- Token counters at the end of a session’s transcript, to show how full its context is, and Codex’s plan limits from its own files. It doesn’t read or keep the conversation.
- Whether you’ve read a session, from the files Claude Desktop and ChatGPT keep about their own sessions.
- For auto-pause, only if you turn it on: how long ago the keyboard or mouse was last used, and whether a camera or microphone is in use. Not your keystrokes, and not what a camera or microphone captures. These come from public macOS APIs without Input Monitoring, Accessibility, Camera or Microphone permission.
What the app sends over the internet
- Update checks. Once a day, unless you turn it off, the app downloads a small file describing the latest version from GitHub (raw.githubusercontent.com); updates themselves download from GitHub Releases. GitHub sees your IP address and these requests, as described in GitHub’s privacy statement.
- Early-user registration. Everyone who installs Meowdoro before paid plans start (planned for December 1, 2026) gets Meowdoro Pro free for good. To remember that, from version 0.1.27 the app sends api.meowdoro.com a random install ID that the app makes itself, a one-way SHA‑256 hash of your Mac’s hardware UUID (the UUID itself never leaves your Mac) and the app’s version. It does this once, and every 6 hours until it gets an answer; later, also when you move Meowdoro to another Mac, together with your current token. The server answers with a signed token, which the app checks without the internet.
We keep the install ID, the version it started with, the date, the hashes of up to three of its Macs and the IP address each of them registered from. We use the IP addresses to count installs by region and to protect the offer from abuse. We keep these records with no time limit, so your free Pro keeps working; write to meow@meowdoro.com and we’ll delete yours. After paid plans start, a new install asks once, gets a no, and nothing is recorded; the app doesn’t ask again. Nothing about how you use the app is sent.
- The relay, only if you turn on agents on other machines (below).
- Nothing else. There’s no analytics, advertising identifier or crash reporting in the app.
Agents on other machines
If you set it up, a small helper on another machine (a VM, a server, another Mac) sends the status of Claude Code and Codex there to your Mac through a relay. The relay at relay.meowdoro.com is run by us; you can run your own instead.
What the helper sends
Status only: the agent, the session’s id, the event (working, waiting, finished, error, closed), the project’s name (the git repository’s folder name), the session’s title, a tool’s name when it asks for permission or is an MCP tool, how full the session’s context is, Codex’s plan limits, whether you’ve read a finished session there, Claude Desktop’s one-line summary of a question a turn ended on, which agents have the plugin, a fingerprint (a hash) of the ChatGPT login Codex uses there and its email masked to the first two letters and the domain, Claude Code’s version when it’s too old, the machine’s name, the helper’s version and a timestamp.
It never sends prompts, tool inputs or outputs, file contents, paths or the agent’s replies.
What we can see on the relay
- Everything above is encrypted with AES-256-GCM before it leaves the machine, with a key made on your Mac. The key travels in the setup line you paste, never through the relay, so we can’t read or forge the contents.
- We can see the IP addresses of your Mac and of your machines, when events arrive and how big they are, and the random channel id that ties them together.
- The relay keeps the last 300 events of a channel for up to 30 minutes, in memory only, so a Mac that reconnects can catch up. Nothing is written to disk. Its own logs hold counts only, without addresses, channel ids or contents.
The iPhone app
What stays on your iPhone
The current timer, the statistics of your phases, your settings and the pairing with your Mac. The pairing holds the pair’s keys, your Mac’s latest timer and the agent summaries it sent: the project, the session’s title, its status and the agent’s question. They’re kept in the app’s own container, which its widgets and Live Activity read too, and they’re part of your normal iPhone backup (iCloud or a computer).
What it asks for
- Camera, only to scan the pairing QR code. You can skip it: the iPhone’s own Camera app reads the code too.
- Notifications, for the purr at the end of a phase.
- Live Activity on the Lock Screen. Turn it off in iOS Settings or in the app (Show on Lock Screen).
It doesn’t ask for your location, contacts, photos, microphone, Health data or permission to track you.
What it sends
- Through the relay, encrypted with your pair’s key, so we can’t read it: your iPhone’s model, its id for notifications and the card you chose, commands such as pause and skip, phases you start on the phone, a note that your statistics were collected, and unpair. The relay works as described above.
- To our push service (below), only what notifications need.
There’s no analytics, crash reporting, advertising or third-party code in the app. If you test it through TestFlight, Apple shares with us the crash logs and feedback you choose to send, with screenshots, and counts of installs and sessions. On the App Store, Apple shares crash logs with us only if you turned on Share With App Developers.
Our push service
While the app on your phone is asleep, our push service at push.meowdoro.com keeps its Live Activity, widgets and notifications up to date. Apple delivers them through the Apple Push Notification service. Helpers on other machines send their encrypted session summaries through the relay to the push service whether or not you have an iPhone; if no phone is paired on that channel, the service drops them at once and keeps nothing.
What it stores
In a database on our server: a random id for your phone, its Apple push tokens and whether they’re for testing or the App Store, the sound you picked, a SHA‑256 hash of your relay channel (not the channel itself), and when your phone and your Mac were last in touch. Your Mac’s timer and agent summaries pass through it encrypted with your pair’s key: it can’t read them and sees only their size and when they arrive, and the one thing it knows is when a card is due to go out. Pending notifications are kept for up to 24 hours, agent summaries for 45 minutes.
Unpairing and deleting the app
Unpair removes the pairing, its keys and the agent summaries from your phone (statistics and settings stay) and deletes your phone and its pending notifications from the push service at once. Deleting the app erases everything it kept on your phone. If you delete it without unpairing first, the push service forgets your phone after 60 days without activity. Copies in backups are described under Backups.
Our servers’ logs
The web server in front of api.meowdoro.com, relay.meowdoro.com and push.meowdoro.com keeps an access log for 14 days: the IP address, the time, the request’s method and path and the response status, and for api and relay also the response size and the user agent. Relay channel ids, phone ids and channel hashes in paths are masked. We use these logs to fend off attacks, watch the load and fix problems, and delete them after 14 days.
Backups
A nightly copy of the database behind the push service and the early-user registration is kept on our server for 14 days, and our hosting provider keeps daily backups of the whole server for 7 days. So something we delete can remain in backups for up to three weeks, and server logs for up to 7 days after we delete them.
This website
- Server logs. Like most web servers, ours keeps an access log: the IP address, the time, the page asked for, the page you came from and the browser’s user agent. Log files are deleted after 14 days.
- Google Analytics. In the EU, the EEA, the UK and Switzerland (as your browser’s time zone tells), the site loads Google Analytics 4 only after you click Allow; elsewhere it loads on your first visit, and you can turn it off with “Analytics settings”. Google Analytics 4 sets cookies (
_gaand_ga_…) and records the pages you view, where you came from, your approximate location, and your device and browser. Google Analytics 4 doesn’t log or store IP addresses. Google LLC processes this data for us under its own terms; it’s kept for no longer than 14 months. If you click “No, thanks” (or, in Europe, do nothing), Google Analytics isn’t loaded. - Your choice is kept in your browser’s local storage. Change it with “Analytics settings” at the bottom of any page.
- Downloads come from GitHub, under GitHub’s terms.
- Videos, only when you play one. Our videos on this site show a picture served from our server, and nothing reaches YouTube until you press play. Then the page loads YouTube’s player from youtube-nocookie.com, and YouTube (Google) may store data in your browser and record that you watched, under its own privacy policy.
If you write to us, we use your address and message to answer you and keep them as long as we need to for that.
Who else is involved
- GitHub hosts the app’s downloads and update information.
- Google provides Google Analytics on this website (in Europe only if you allow it) and YouTube’s player when you play one of our videos.
- Apple delivers notifications to your iPhone through the Apple Push Notification service, if you pair one.
- Hetzner hosts the server for this website, the relay, api.meowdoro.com and the push service.
We don’t sell or rent personal information, and we don’t share it for advertising.
Your choices and rights
- Turn off update checks in Settings, and don’t turn on agents on other machines, if you’d rather nothing else leaves your Mac. The early-user registration is what keeps your free Pro, so it stays on; it sends only the three things above.
- Decline Google Analytics on this website, or change your mind later.
- Depending on where you live, for example in the EU, the UK or California, you may have the right to ask what personal information we hold about you, to correct it or to delete it, including your early-user record and the IP addresses in it. Write to meow@meowdoro.com.
Children
Meowdoro isn’t directed to children under 13, and we don’t knowingly collect their personal information.
Changes
When this policy changes, we’ll update the date at the top of this page.
Contact
HashEx US, LLC, a Delaware limited liability company, United States.
meow@meowdoro.com
The earlier Meowdoro Tracker extension for Chrome has its own privacy policy and terms.