Effective 7 October 2026
escape.fm (the website and its web player, the coding-agent plugins, the iPhone app with its Apple Watch app and widgets, the Mac app, the Apple TV app and the Apple Vision Pro app) is run by ILLUSION Tech Limited, a company registered in Hong Kong ("we"). For anything about privacy, write to hello@escape.fm.
The player keeps on your device, in the browser's local storage or the app's storage, what it needs to choose music for you: your taste, recent listening history, tracks you have heard, moments you kept, the plugin's pairing key, and a debug log if you turn one on. None of it is uploaded unless you sign in with listening history on. Clearing this site's data, or deleting the app, removes it.
When your device reaches our servers, your IP address passes through Cloudflare. We keep no access logs and use IP addresses only to limit abuse, keeping them for that at most a day.
Each track plays from an address our server signs, which stops working after a few hours. To stop the library being downloaded in bulk, we count which tracks were asked for each day: by your account, or signed out by a random id the player makes for itself and by your network address (sealed so it cannot be read back, and deleted after its day). The counts by account or id are deleted after 7 days.
If you sign in, we keep:
The plugins for Claude Code, Codex, Cursor, Gemini CLI, Copilot CLI, Qwen Code, Droid, CodeBuddy, WorkBuddy, Muse Code and OpenClaw run on your computer. When a task's state changes they send us only: an anonymous tag that tells your open tasks apart, the kind of work (such as "debugging"), the agent's state (you are typing, it is running, it is waiting for you, or idle), the time, and which plugin and version sent it. They also report whether each of the agent's actions succeeded or failed, and how many actions of each kind it took (edits, commands, test runs, searches, commits), never what the action was.
The kind of work is worked out on your computer, and what you type never leaves it; of a tool's result the plugins look only at whether it succeeded. To tell a test run or a commit, they look at a shell command on your computer; it never leaves it. They do not read file names or paths. We keep only each task's latest state, deleted when the task ends or goes quiet for 30 minutes, and when your work last stopped, so the music can follow your work.
If you link a cloud agent such as Muse, ChatGPT or Grok, it tells us only whether it is working for you, waiting for you or done, and which agent it is; never anything about the task. You can unlink it on your page at any time.
Once you sign in, listening history is on by default and synced to your account. Recorded only while music plays, it holds what played, when and for how long, how it ended, where you were (such as "evening"), how often you pressed the heart and on which kind of player (web, phone, Mac or TV), whether it was raining or snowing (in the apps, with the weather on), and the kind of work and the agent's state at the time; daily summaries made from it; the tracks you have heard, so none is played to you twice; and the moments you kept with the heart (the track, the time and the scene, such as "evening", never your mood). With it on, our server also keeps the kind of work and the agent's state through the day from your plugins' reports, even with no player open: the state names and times only, never any content. From the same reports it keeps when each agent worked, when you wrote to one (never what), and how many actions of each kind it took, and from cloud agents when they worked, for your time with AI and what your agents did. It keeps your time-zone offset, to place records on the right day, never your location.
It holds no prompts, code, file names or other device information. It is used for the daily poster, a future annual report and choosing music for you. Turned off, uploads stop at once, nothing recorded meanwhile is uploaded later, and the heart keeps nothing.
The daily poster and its link are made on your device and hold only the date, times and counts, nothing that identifies you. Sharing them is up to you; once shared, the platform you shared them on handles them.
Two counts are off until you turn them on, on your page. Lines of code: the plugins count, with git on your computer, the lines added and removed and the commits made in the agent's folder, and send only those numbers. Tokens and cost: where an agent shows them on your computer, the plugins send only those numbers. Never file names, commit messages, code or anything said. Turn either off and nothing more is sent or kept; what was kept stays with your listening history until you delete it.
The iPhone app keeps the same kinds of data as the player, and records listening behind the lock screen too. To fit the music to what you are doing, it reads these signals on the phone only, never sending them to us (those that need permission, only once allowed):
What leaves the phone is described elsewhere here: listening history, usage statistics, the push token, and whether the app is on screen or you are asleep, working out or running, so we do not notify you then.
To show the sun and moon where you are, our server uses the approximate, city-level location Cloudflare derives from your IP address. It is used only for that answer and is not stored, logged or passed on; the player never asks your browser for your location.
In the iPhone and Mac apps, if you allow location while using the app, the device's approximate location (to about 10 km) is sent to Apple's WeatherKit, and nowhere else, to show the weather. Our servers never receive it, and the app does not store it. Turn it off with "The weather outside" on "your page", or in Settings.
The player and the apps send anonymous counts of which features are used and of errors, with the browser and system family and the country Cloudflare reports. They carry no account, email, IP address, pairing key or work content; the only identifier is a random one replaced every day, so days cannot be linked. At the end of each track we add to anonymous counts of how that track was received (how it ended, roughly how much was heard, the scene, kind of work, time of day and kind of player), kept by day for about 13 months and never tied to a person. Plugins send nothing extra; we count, without an identifier, which ones were used each day. Nothing is sent with Global Privacy Control on, and "Turn off usage statistics" in the account panel or on "your page" stops it.
The website also uses Cloudflare Web Analytics, which counts visits and page speed without cookies, without identifying you and without tracking you across sites.
One cookie keeps you signed in; Google or GitHub sign-in briefly uses another, against forgery. Both are necessary; there are none for statistics or advertising.
Prompts, conversations, code, files or other work content; precise location; contacts; advertising identifiers.
We do not sell your information, use it for advertising, or use it to train models.
Sign-in providers handle your sign-in under their own privacy policies. Beyond these, we give your information to no one unless the law requires it.
Our providers run global networks, so your data may be processed outside your country or region, under the contractual safeguards they offer.
| What | How long |
|---|---|
| Task states and action outcomes from the plugins | Until the task ends, or 30 minutes without a report |
| Sign-in codes (a TV's with its name and roughly where it is) and sign-in hand-overs to the app | 10 minutes at most |
| Sign-in sessions | Until you sign out, or 7 days unused |
| What your devices are playing | Until shortly after your last device disconnects |
| Account, linked devices, when your work last stopped | Until you delete them, or your account |
| Push token | Until you sign out on that phone, turn its notifications off or delete your account |
| Letters to escape.fm and our replies | Until you delete your account |
| App Store purchases | Until you delete your account (Apple keeps its own record; a subscription is cancelled in the App Store) |
| Which tracks were asked for (by account, or by the player's random id) | 7 days; by network address, sealed, only for its day |
| Listening history and moments in your account, and your agents' work, actions and the counts you turned on | 13 months (a very large history is trimmed sooner, oldest first) |
| Daily summaries and tracks heard | Until you delete your listening history, or your account |
| Usage statistics | 3 months |
| Data on your device | Recent listening history for up to 13 months; the rest until you clear this site's data, delete your history or delete the app. Moments move to your account when you sign in with history on. |
You may access, export, correct or delete your information, withdraw consent, or object to how we use it. Most of this is in the app:
ESCAPE_FM_DISABLE=1; phone permissions in Settings.For anything else, including correction, write to hello@escape.fm. You can also complain to a data protection regulator, such as the Privacy Commissioner for Personal Data in Hong Kong, or the one where you live.
Everything is encrypted in transit. Accounts have no passwords, and plugin keys and sign-in codes are stored in a form that cannot be read back. No method is perfectly secure; if a security incident affects you, we will tell you promptly.
escape.fm is for people aged 16 and over. If you believe a child has given us personal information, contact us and we will delete it.
When this policy changes we update this page and its effective date. If a change widens what we collect, we will announce it prominently on the website before it takes effect.
ILLUSION Tech Limited, Hong Kong, hello@escape.fm.
This policy is written in English and translated into other languages. If a translation differs from the English, the English version prevails.