CoralBack to the site

Privacy Policy

Last updated October 21, 2026

  • Coral runs on your Mac. Your code, terminals and agent transcripts are kept there.
  • Messages between your Mac and your iPhone are end-to-end encrypted. Our relay only ever holds ciphertext.
  • On this website, we count visits without cookies. The apps have no analytics.
  • If you buy Coral, Polar handles the payment. We get your email and what you bought, never your card.
  • We don’t sell your data. If you came from one of our ads on X, we tell X when you download or buy, and nothing else.

Who we are

Coral is made by Lior Pesoa, an individual based in Israel (“Coral”, “we”, “us”). We are responsible for the personal data described here. Questions or requests go to hello@usecoral.app.

This policy covers this website, buying Coral, and the Coral apps for Mac and iPhone, including their alerts on Apple Watch. We update it whenever how we handle data changes.

This website

Your companion

If you pick a companion on the page, your choice is saved in your own browser’s local storage so it’s still there next time. It never reaches us.

Visit counts

This website uses Vercel Web Analytics and PostHog to count visits: which pages are visited and what is clicked on them, the referring site, page speed, and the visitor’s country, browser and device type. Neither sets cookies or saves anything in your browser, and neither records your screen, reads what you type or follows you across sites. PostHog gets visits through our own domain and keeps them in the US. This is only on the website; the Coral apps have no analytics.

Download link by email

If you ask us to email you the download link, we pass your address to Resend to send that one email at the time you pick. We don’t keep it, unless you tick the box for news about new features. Then we keep your address in our database on Supabase until you ask us to remove it, by replying “stop” or writing to hello@usecoral.app.

Ads on X

If you reach this website by clicking one of our ads on X, the link carries a click id. We keep it in a cookie for 30 days, and if you download Coral or buy it in that time, our server tells X which ad led to it, with that click id and nothing else. No X code runs on this website, and nothing is sent for visitors who didn’t click an ad.

Server logs

Our hosting provider keeps standard server logs (such as IP address, browser type and the page requested) for security and reliability, for a short time.

Buying Coral

Purchases are handled by Polar Software, Inc. (“Polar”), our merchant of record. Polar collects what it needs to take the payment, prevent fraud and handle tax, such as your name, email, billing address and payment details, under Polar’s privacy policy. We never see your card number.

Polar shares with us:

  • your name and email address,
  • your country, for tax,
  • what you bought, when, and whether your subscription is active,
  • your license key and the Macs it’s active on.

We use this to deliver and support your license, send receipts and notices about your plan (for example before a renewal or a price change), handle refunds, and keep the records tax law requires. After you pay, your thank-you page uses the checkout number in its address to look up your purchase and show your license key, so keep that link to yourself. We keep purchase records for as long as tax and accounting law requires (in Israel, generally seven years), even if you ask us to delete other data.

The Coral app for Mac

Coral watches the coding agents you run (such as Claude Code, Codex and OpenCode) so it can show you when one needs you. To do that it reads their session files, hook events and terminal state on your Mac. All of this, along with the Briefs, history and rules Coral keeps, is stored on your Mac and is not sent to us.

Time saved. To show how much time Coral saved you, the Mac app keeps a small record in ~/Library/Application Support/Coral/time-saved.json. It holds only dates, durations and counts: no session ids, tools, paths, commands or text. Events are kept for 30 days, and two usual-wait numbers stay after that. It is computed on your Mac and never sent to us, to the relay or to your iPhone.

Hand off. When you move an agent to a fresh session, the Mac app keeps a small file, ~/Library/Application Support/Coral/handoffs.json, that links the old session to the new one with its handoff note (the newest 200, kept 30 days). The note goes to the new session on your Mac through a private temporary file. If you hand off from your iPhone, the note is shown there too, end-to-end encrypted.

What can leave your Mac

  • Briefs and routing. To write each agent’s Brief and route a voice or typed request to the right agent, Coral sends short excerpts of agent transcripts to an AI model. It does this through your own Claude Code login, so these requests go to Anthropic under your account and Anthropic’s terms, not through our servers.
  • Voice. Speech is turned into text on your Mac with Apple’s on-device recognition. Audio is not sent anywhere.
  • Your answers and images. When you answer an agent, or paste or drop an image for it, Coral passes that to the agent you chose. What the agent does with it is governed by that agent’s provider.
  • Buttons and scripts. Custom buttons run the scripts and Shortcuts you set up, on your Mac.
  • Your license. When you activate a license, Coral sends Polar your license key, your Mac’s model (such as “MacBook Pro”, never its name) and Coral’s version, and checks the key with Polar about once a day. Polar sees your IP address when it does. The free version of Coral doesn’t contact Polar.
  • Updates. Once a day, Coral asks usecoral.app whether a new version exists and downloads it from there. The request shows your IP address and Coral’s version. When Coral first shows you the Pro offer, it asks usecoral.app for the offer’s end time. We don’t store either request.
  • Usage meters. To show how much of your plan your agents have used, Coral asks each provider directly, as you: it reads your Claude Code sign-in on your Mac and asks Anthropic for your usage, and it asks GitHub’s and OpenAI’s own command-line tools for Copilot and Codex. Your sign-in stays between your Mac and that provider; it never reaches us.
  • Agent version checks. To tell you when an agent has an update, Coral asks the public npm registry for the latest version number.
  • Ask can look things up. Off by default, and you turn it on after a screen that explains it. When it’s on and you Ask about a Claude Code agent from your iPhone, Coral opens a read-only copy of that session that can read files in the agent’s project folder and that project’s Claude memory. What it reads goes to Anthropic through your own Claude Code login, as your agent’s own reads do, and not through our servers. Anyone holding your unlocked, paired iPhone could read what’s in those folders by asking.
  • Your Mac, from your iPhone. When you ask Coral on your iPhone to do something on your Mac, Coral takes screenshots of your screen and sends them, with your request, to Anthropic through your own Claude Code login, so the model can see and use your Mac. The screenshots and replies also go to your iPhone, end-to-end encrypted. Coral is set to avoid password managers, System Settings and account pages, but anything on screen at the time can be captured. If you turn on Work while locked, Coral installs a macOS login plugin (with your admin password) that lets it unlock your Mac after you approve with Face ID on your iPhone. It doesn’t store or send your Mac’s password.
  • Crash reports, only if you say so. After a crash, Coral shows you the exact report and sends it only if you press Send. It holds versions, your Mac’s model, the crash time and where in Coral’s code it happened, with paths, names and other apps removed. It goes to our server on Supabase with no identity attached, and we delete it after 90 days. You can turn the question off in Crash Reports.

Permissions

Coral asks macOS for Accessibility, Microphone, Speech Recognition, Screen Recording, Notifications and Automation access, each for the feature named when it asks. You can turn any of them off in System Settings. On iPhone, Coral asks for the camera (to scan the pairing code), Face ID and Live Activities.

Settings Coral changes on your Mac

To see and answer your agents, Coral adds its hooks to the settings files of the agents you use (such as Claude Code, Codex, Copilot and OpenCode), and keeps them up to date when it updates. If you ask, it adds an extension to your code editor. It saves a backup of each file it changes, next to the file. These changes stay on your Mac.

Remote servers

If you add a server or dev container, Coral opens its own SSH connection to it, using your SSH setup and keys. It doesn’t store your SSH keys or passwords. After you agree, it copies a small helper to ~/.coral on the server and adds its hooks to the agents’ settings there, with backups. Agent events travel to your Mac inside your SSH connection, never through our servers, and Coral keeps a copy of those sessions on your Mac so you can read them. Images you send an agent are saved in the project’s .coral folder on the server.

If you turn on reaching your iPhone while your Mac sleeps, the server connects to our relay itself. It keeps its own encryption keys, the public keys of your paired devices, and your Mac’s and server’s names on the server. Its messages are end-to-end encrypted, like your Mac’s, and go through the same relay as your Mac’s.

The Coral app for iPhone

When you pair an iPhone, your Mac sends it summaries of what your agents are doing and what’s waiting on you, and the iPhone sends back your answers. When you open an agent on your iPhone, your Mac sends that conversation too. Your iPhone shows it but doesn’t save it.

  • End-to-end encryption. Every message is encrypted on one device for the other device’s key. Our relay (run on Supabase) passes messages along but cannot read them.
  • Photos you send. Photos are scaled on your iPhone and encrypted like every message, so the relay holds only ciphertext until your Mac takes it, and 24 hours at most. Your Mac saves each in the agent’s project under .coral/attachments, which git ignores.
  • Talking on your iPhone. Speech is turned into text with Apple’s on-device recognition. Audio never leaves your iPhone and is never saved. Only the text you send goes to your Mac.
  • Short-lived storage. If a device is offline, the relay holds its encrypted messages until they’re delivered, and deletes them after 24 hours at most.
  • Anonymous device identity. Each device signs in to the relay with an anonymous identity. We don’t ask for your name or email in the app. The relay can see which anonymous devices are paired, when and how much they send, and whether your Mac is online, asleep or quit, but not what they say. An identity that hasn’t been used for 30 days is deleted.
  • Mac status and companion. Your Mac sends an end-to-end encrypted online, asleep or quit signal every couple of minutes, so your iPhone can say “Mac asleep since 10:42”. It also sends the companion animal you picked, encrypted, so your iPhone shows the same one.
  • Notifications. To send notifications and Live Activities, we store your iPhone’s Apple push token, linked to its anonymous identity. Pushes carry encrypted content that your iPhone decrypts; Apple and we see only a generic line like “An agent needs you”. Your Apple Watch can show the same alerts. We keep a record that a push was sent, for rate limiting, for one hour.
  • Live Activities on your Lock Screen show counts only, like “2 agents need you”, the oldest wait time and your Mac’s name. To update them, these few details pass through our relay and Apple without end-to-end encryption. Nothing else about your agents does.
  • On your iPhone, Coral saves the latest summaries from each Mac, so the app opens quickly, and your Your Mac chats, including their screenshots. Unpairing that Mac deletes them.

Unpairing a device on your Mac or iPhone deletes its keys and tells the relay to drop the link.

Who we share data with

We use a few providers to run Coral. They process data only on our behalf:

  • Supabase, for the encrypted relay and for crash reports you choose to send.
  • Vercel, to host this site and count visits to it.
  • PostHog, to count visits to this site and see which pages and buttons are used.
  • Apple, to deliver push notifications.
  • X, to learn which of our ads led to a download or purchase, only if you came from one.
  • Resend, to send emails you ask for, like the download link for your Mac, and when we email customers.
  • Polar, our merchant of record, for payments, tax, receipts and license keys. Polar is responsible for the payment data it collects.

Agent providers aren’t on this list. What Coral sends to Anthropic, OpenAI or GitHub goes through your own accounts with them, under their terms, not through us.

We don’t sell or rent personal data, and we don’t share it for advertising. We may disclose data if the law requires it, or to protect our rights, our users or the public from fraud or abuse. If Coral is sold or transferred to another company, the data we hold may move with it, and this policy will keep applying to it.

Our providers may process data outside your country, including in the United States and the European Union. Where required, we rely on appropriate safeguards such as standard contractual clauses.

Why we’re allowed to use it

Where the law asks for a legal basis (for example under the GDPR), ours are:

  • Contract: to sell you Coral, deliver and check your license, run the relay you pair your devices with, send notifications you turned on, and answer your requests.
  • Legal obligation: to keep purchase, tax and accounting records.
  • Legitimate interests: to keep Coral and this website secure and working, prevent fraud and abuse, count website visits without cookies, and learn which of our ads on X work. You can object to these.
  • Consent: to send a crash report, and for each macOS and iOS permission you grant. You can withdraw it any time, without affecting what happened before.

We don’t make decisions about you based solely on automated processing that have legal or similarly significant effects.

How long we keep it

  • Relay messages: until delivered, and 24 hours at most.
  • Push records for rate limiting: one hour.
  • Push and Live Activity tokens: until you unpair the device.
  • Anonymous device identities: deleted after 30 days without use.
  • Live Activity records: one day.
  • Crash reports: 90 days.
  • Emails you send us: as long as needed to answer you, then up to two years.
  • Purchase records: as long as tax and accounting law requires (in Israel, generally seven years).
  • Server logs: kept by our hosting providers for a short time, under their own retention.

Your rights

You can ask us for a copy of the personal data we hold about you, to correct it, or to delete it, and you can object to how we use it. Write to hello@usecoral.app and we’ll answer within 30 days. Depending on where you live (for example under Israel’s Privacy Protection Law or the EU and UK GDPR), you may also complain to your local data protection authority.

Most of what Coral keeps is on your own devices, and you can delete it yourself: in Coral’s Settings, by unpairing devices, or by uninstalling the app.

US state privacy laws

If you live in a US state with a privacy law (such as California), you have the rights above, and you won’t be treated differently for using them. We don’t sell or share personal information for cross-context behavioral advertising, and we don’t use sensitive personal information to infer things about you.

Security

We protect data in transit with encryption, keep relay content end-to-end encrypted, and restrict access to our databases. No system is perfectly secure, but we’ll tell you promptly if a breach affects your data.

Children

Coral is not meant for children under 16, and we don’t knowingly collect their data.

Changes

If we change this policy, we’ll update the date at the top. If a change is significant, we’ll tell you by email or in the app before it takes effect.

Contact

Lior Pesoa, Israel · hello@usecoral.app