Privacy Policy · Waycar
Privacy Policy
Last updated: October 14, 2026.
Waycar is an iPhone and iPad app for herdr and tmux. Waycar is made by OTREVA, LLC (“we” or “us”), which is responsible for the personal data described in this policy. Our contact details are at the end. Waycar connects your device straight to computers you control, called Hosts, over SSH or mosh.
The short version:
- The Waycar app has no accounts, no ads, and no tracking across other apps or sites, and it never shares your data with advertisers. Our website, waycar.dev, uses Reddit and X ad-conversion pixels to measure our own ads. They load only where the law allows: after you choose Allow in the EU, the EEA, the UK, and Switzerland, never under Global Privacy Control, and not after you choose Decline (see “Advertising pixels” under “This website”).
- If you allow it, Waycar sends usage analytics, such as which features are used. They are pseudonymous: tied to a random ID, not to your name or Apple Account. They never include Host names, commands, prompts, or terminal content. Waycar asks before sending any, and you can change your choice in Settings.
- Your SSH keys, passwords, terminal output, and prompts go only between your device and your Hosts, unless you turn on AI Summaries, which have your Host send recent screen text to an AI provider (see AI Summaries). They never pass through a server we run, except the end-to-end encrypted notification details described below, which can include a Chat Mode Agent’s final reply.
- If you use iCloud Sync, your Hosts and keys sync through your own iCloud Keychain, which is end-to-end encrypted.
- Apple handles every purchase. We never see your payment details.
- The only server we run is a push relay for notifications. It forwards encrypted messages and keeps no records of them.
- On Apple Watch, Waycar gets everything from your iPhone over Apple’s encrypted watch link. Voice messages you record on the watch are turned into text on your iPhone and then deleted (see Apple Watch).
What stays on your device
- SSH credentials. Waycar makes your Device Key on your device. Its private half stays in the iOS Keychain. Saved Host passwords and trusted Host fingerprints are kept in the Keychain too. If iCloud Sync is on, they also sync as described in the next section.
- Hosts and settings. Your list of Hosts and your Waycar settings are stored on your device.
- Last-known Agent list. So Waycar can show your Agents right away when it opens, it keeps a copy of each Host’s latest list of herdr or tmux sessions on your device, and which of herdr and tmux each Host runs. This copy holds what herdr or tmux reports about each Workspace, tab, pane, and Agent: names and labels, IDs, Agent kinds, working folders, terminal titles, statuses, Git repository and worktree paths, references to Agent sessions on the Host, sidebar values from the herdr plugin, and the herdr or tmux version. It also holds the Host’s sidebar layout file and the Host’s address, port, username, herdr session, and Jump Host details, so Waycar can tell the copy still belongs to that Host. To connect faster, it also keeps the path of your home folder on the Host and the herdr protocol version the Host last reported. It never holds terminal output. The copy is left out of backups, never synced, and cannot be read while your device is locked. Waycar deletes it when you remove the Host or change its connection details.
- Terminal screens. So an Agent or Shell you open again shows its last screen while it reconnects, Waycar keeps a picture of the latest screen of the eight terminals you used most recently. A picture can show anything the screen did, including secrets a command printed. Each picture is kept for at most 24 hours, in the app’s cache, which is not backed up and cannot be read while your device is locked. Waycar never stores the screen as text. Next to each picture it keeps the pane’s ID, when the picture was taken, and the Host’s connection details, so a picture is never shown for a different Host. It deletes a picture when that terminal’s session ends, when its pane closes, and when you remove the Host or change its connection details.
- Mosh reachability. So Waycar knows whether mosh works on the network you are on, it keeps a short record for each Host and network: whether mosh got through, when, the Host’s connection details, and the kind and name of the network interface with the first part of your device’s local address on it. Records expire after a day. They are left out of backups, never synced, and cannot be read while your device is locked. Waycar deletes a Host’s records when you remove the Host or change its connection details.
- Terminal output and prompts. What you type and what your Agents print travel only over the direct connection between your device and your Host. The only exceptions are the limited notification data described below and, if you turn them on, AI Summaries. Messages and prompts you send to an Agent go over SSH or mosh to that Agent on your Host, which sends them to the AI provider it is set up to use, under that account. Apart from AI Summaries, Waycar never sends them to an AI provider.
- Chat Mode conversations. So a chat opens right away, Waycar keeps a copy of each Chat Mode Agent’s latest messages on your device: your prompts and the Agent’s replies, up to 300 messages. Images and videos that cannot change once written (images inside the transcript, omp and pi image blobs, and web images and videos) are kept in the app’s cache too, up to 300 MB, the least recently viewed removed first; an image, video, or other file a reply names or attaches by its path on the Host is read again from the Host each time it is shown and kept only in temporary storage while the app runs. These copies are left out of backups, never synced, and cannot be read while your device is locked. Waycar deletes a chat’s messages after the Agent closes, when you remove the Host or change its connection details, and after 30 days without use; cached images and videos are deleted after 30 days without use. Videos load only when you tap them. When a reply links an image or video on the web, Waycar loads it only when you tap it, straight from that address, which then sees your device’s IP address, the same as opening the link. Waycar does not load web addresses that name a local or private host, such as
localhost,.localnames or bare IP addresses. - Closed Sessions. When an Agent closes, Waycar keeps a record of it for 30 days so you can resume it: the Host, the Agent’s kind and name, its title, working folder, Workspace and tab labels, and a reference to its session on the Host. It never holds terminal output. The records are left out of backups and cannot be read until you first unlock your device after a restart. With iCloud Sync on, they sync through your iCloud Keychain, and forgetting one forgets it on all your devices.
- AI Usage. If a Host has CodexBar installed, Waycar reads its usage numbers over SSH to show how much of each AI plan is left. Waycar does not save these numbers.
- Dictation. When you tap Dictate, Waycar uses the microphone and turns your speech into text on your device with Apple’s built-in speech model. Audio is never saved or sent anywhere, not even to your Host. Nothing you dictate reaches your Host until you tap Send. The first time you dictate in a language, iOS may download that language’s speech model from Apple.
- CarPlay. In the car, speech is also turned into text on your device. In CarPlay, a question to an Agent is sent as soon as you pause, without being read back or a tap, and Waycar keeps listening for your next one until you go back or stay quiet for two minutes. A Blocked prompt can be answered by saying “Allow” or “Deny”, without a tap. Agent replies, Agent names and the command you are asked to approve are read aloud, so passengers can hear them. No audio or transcripts leave your device; only the text you send reaches your own Host. The optional Natural Voice (Settings › CarPlay Voice) offers several optional voice models. Each is downloaded once, only when you tap its Download button in Settings (never in the car), from Hugging Face (
huggingface.co), which sees your device’s IP address like any website.
Apple Watch
The Waycar watch app never connects to your Hosts. It gets everything from Waycar on your paired iPhone over Apple’s WatchConnectivity link, which is encrypted between your two devices.
- What the watch keeps. Your iPhone sends the watch your Agent titles, their statuses and how long they have had them, a rough progress estimate (plan steps done of total, or a phase word such as Verifying), and your Host names. The watch keeps the latest copy so it can show the list right away.
- Fetched when you look. An Agent’s last reply when your iPhone can read its transcript, otherwise its Summary, and a Blocked Agent’s command, are read by your iPhone only when you open that Agent on the watch. The watch holds them in memory while you look and never stores them.
- Voice messages. When you record a voice message, the watch uses the microphone and sends the recording to your iPhone over the same encrypted link. Your iPhone turns it into text on the device with Apple’s built-in speech model and sends the text to your Host. The recording is deleted on both devices once the message is sent or abandoned. The text you sent comes back to the watch so it can show it as sent. The audio never goes to Apple’s servers or to your Host. If your iPhone runs a version of iOS older than iOS 26, the watch uses Apple’s own dictation instead, which may send your speech to Apple to turn it into text, under Apple’s privacy policy.
iCloud Sync
iCloud Sync is on by default. It stores your Hosts, saved Host passwords, SSH keys, trusted Host fingerprints, and app settings in your iCloud Keychain. That way they show up on your other devices signed in to the same Apple Account. With iCloud Sync on, your Closed Sessions sync the same way. iCloud Keychain is end-to-end encrypted, so neither we nor Apple can read these items.
You can turn iCloud Sync off in Settings › iCloud Sync. This device then stops syncing and keeps its current Hosts, passwords, and keys. Copies already in your iCloud Keychain stay there for your other devices. Waycar never deletes a synced SSH key or fingerprint. If you replace your key in Settings › iCloud Sync, every device switches to the new one. Notification Keys never sync.
Waycar Pro and purchases
Waycar is free to use with 10 Launches every 30 days. A Launch is starting a new agent or shell from Waycar, resuming a closed agent, or starting an agent by typing its command in a Waycar shell. Opening and reading sessions that are already running never counts. Waycar Pro is a subscription, monthly or yearly, that removes this limit.
- Apple handles purchases. You buy, renew, and cancel Waycar Pro through Apple. Waycar checks whether you have Pro using Apple’s StoreKit on your device. We never see your name, your Apple Account, or your payment details, and no server of ours takes part. Apple’s privacy policy covers your purchase. You can manage or cancel your subscription in your Apple Account settings.
- Launch count. To count Launches, Waycar saves a small record each time you make one: a random ID, the time, a random ID for the device that made it, and the kind of Launch (such as a new Agent or a resume). It does not save Host names, commands, screen content, or anything else about the Launch.
- Where the count lives. These records are stored in your own iCloud Keychain, so all your devices share one count and it survives deleting and reinstalling the app. They sync even when Waycar’s iCloud Sync setting is off, because the count has to match across your devices. If iCloud Keychain is off on a device, its records stay on that device. We cannot read these records. The random device ID travels with them in your iCloud Keychain, so your devices can tell their records apart; we never receive it.
- How long it is kept. A Launch stops counting after 30 days. Waycar deletes old records the next time it saves a new one. Launches you make while you have Pro are not recorded at all.
AI Summaries
AI Summaries are off until you turn them on. If you have not chosen yet, Waycar asks when you turn on notifications for a Host in Settings. Not Now keeps them off, and the AI Summaries switch in Waycar’s Settings asks the same way, and you can turn them on or off there at any time. Before they start, Waycar shows what will be sent and to which AI providers (Anthropic, OpenAI, OpenRouter and Google) and asks for your permission; nothing is turned on for you. Waycar saves that setting ("summary_enabled") in the herdr plugin’s notify.json file on each of your Hosts, whether or not you use notifications. A Host that is offline gets the change the next time it connects. Turning the setting off writes false the same way.
While AI Summaries are on, the herdr plugin on each Host sends up to the last 60 lines of an Agent’s screen to an AI model. It asks for one sentence about what the Agent is doing, where it ended up, or what it needs from you. It does this when an Agent turns Blocked or Done, and, while Waycar is open on your device, about once a minute and when an Agent changes status, but only for Agents whose screen changed since their last summary. The model is whichever one the Host can already reach: Claude from Anthropic (through Claude Code or omp, or an Anthropic API key), ChatGPT from OpenAI (through Codex or omp, or an OpenAI API key), or OpenRouter (an OpenRouter API key; OpenRouter passes the request to a Google Gemini or OpenAI model), cheapest first, or a command you choose. These providers are not our service providers: they receive the text under your Host’s own account and their own terms and privacy policies.
Screens can contain secrets such as tokens or file contents. The request goes from your Host straight to that model’s provider, under your account there and the provider’s terms. It never passes through Waycar, the push relay, or us. When the plugin uses an AI command-line tool, it runs it from an empty private folder with its tools, MCP servers, and project settings turned off, so the model sees only the screen text and a fixed instruction.
The summary is saved on your Host, in the plugin’s settings folder, with one entry per pane. The next summary replaces it. Entries not touched for 7 days are deleted, and turning AI Summaries off deletes all of them on the next status change. Waycar reads summaries over SSH to show them on the Agent cards and keeps them only in memory. A summary travels inside the encrypted notification, just like task titles.
Waycar’s tools on your Host
If you use tmux, the install command also puts Waycar’s tools on your Host: a waycar command and small Status Hooks in your coding agents (Claude Code, Codex, omp, pi and opencode) that tell Waycar whether each Agent is working, blocked, done or idle. They run on your own computer and write that status, the agent’s session ID and its transcript path into tmux on the same computer, where Waycar reads it over SSH. They send nothing off your computer except the end-to-end encrypted notifications described below, through the push relay, and, only if you turn them on, the AI Summaries requests above. waycar hooks uninstall removes the hooks.
Notifications and the Push Relay
Agent Notifications can tell you when an Agent is blocked or done while Waycar is in the background or closed. Apple’s push service (APNs) only accepts pushes signed with a credential for this app. So App Store builds send notifications through a push relay we run at https://waycar-apns.otreva.com.
Waycar asks once, after you have used an Agent, whether to turn on notifications and Live Activities. If iOS has not asked yet, Continue shows Apple’s permission prompt, and allowing notifications there turns them on. If you already allow notifications, Turn On does. Waycar then registers this device on every Host, including Hosts you add later, and turns on their Live Activities. Not Now or Don’t Allow turns nothing on.
When a Chat Mode Agent finishes, its Done notification can carry the Agent’s final reply, up to 1,000 bytes, inside the encrypted notification.
The relay has no accounts, database, message queue, or message history. Your Host encrypts the notification details with a Notification Key. The relay then signs the push and forwards it to Apple. It never gets the key, so it cannot read the details.
Notification Keys
Waycar makes a separate Notification Key on your device for each Host. It is kept in the Keychain and in the app’s shared storage so Live Activities can be decrypted while your device is locked. That shared copy is protected until you first unlock your device after a restart, and it is left out of backups. Waycar copies the key over SSH to its Host so the herdr plugin can encrypt notifications. The push relay never receives it.
What the relay sees
For every notification, the relay handles:
- the Apple push token that tells Apple which device to notify;
- the encrypted notification;
- your Host’s IP address;
- when, how often, and how large the requests are; and
- which APNs environment to use and a few routing values.
For a Live Activity update, Apple needs a few values it can read, so iOS can update or end the activity without opening Waycar:
- how many Agents are working, blocked, done, or idle;
- whether the update starts, changes, or ends the activity, its priority, and its time; and
- when present, the times the activity goes stale or is removed.
When your Host starts a Live Activity while Waycar is closed, the request also carries:
- a random ID Waycar made for that Host when you added it. It is not based on the Host’s name, address, or account. It lets Waycar open the right Host when you tap the activity, and it lets the relay tell that the requests came from the same Host; and
- a fixed alert, “Agents active”, which Apple requires to start an activity. It is the same for every Host and never names an Agent or task.
For this, Waycar stores its start token and that Host ID in the Host’s notification settings while the Host’s Live Activity is on. It removes them when you turn it off.
None of these values identify a single Agent. Project names, task titles, AI Summaries, a Chat Mode Agent’s final reply, Agent types and names, Host names, pane IDs, and per-Agent details stay inside the encrypted notification. If a notification cannot be decrypted, Waycar shows a generic message instead of anything it cannot verify.
How the relay uses and keeps data
The relay uses this data only to check requests, prevent abuse, and deliver notifications to Apple. It never uses it for ads, analytics, tracking, profiling, or sale.
The relay does not save push tokens, notifications, or request history. It holds IP addresses and push tokens in temporary memory for one minute to enforce rate limits. That memory is not a lasting record and is cleared whenever the relay restarts.
The relay runs on Cloudflare Workers, and Apple delivers the notifications.
Your choices and deleting data
Agent Notifications, Live Activities, AI Summaries, and usage analytics are all optional.
- You can turn off usage analytics in Waycar’s Settings. See “Usage analytics” below.
- You can turn off notification and Live Activity permissions at any time in iOS Settings.
- Removing a Host’s notification registration deletes this device’s push token and Notification Key from that Host, then removes the Notification Key from your device.
- Removing a Host from Waycar deletes it and any saved password from your device. With iCloud Sync on, it also removes them from your other devices. Devices that were offline or had sync off drop the Host the next time they sync. A small marker noting the deletion stays in your iCloud Keychain.
- Deleting Waycar removes its files from your device. Keychain items, such as your keys, passwords, and Launch count, can stay after the app is gone.
We have no accounts and no database of your content, so there is usually nothing on our side to look up or delete. For a privacy or deletion request, email privacy@waycar.dev. Please do not include passwords, keys, tokens, Host details, or other sensitive information.
Service providers
We use these companies to run Waycar and waycar.dev.
- PostHog, Inc. (United States): app and website usage analytics, and choosing which home page version a website visitor sees, under PostHog’s terms and privacy policy.
- Cloudflare, Inc. (United States): hosts waycar.dev and runs the push relay. Cloudflare’s data processing addendum is part of its terms and requires it to protect this data. Privacy policy
- Google LLC (United States): Google Workspace hosts the mailbox for email sent to our waycar.dev addresses. Google processes this email under its Cloud Data Processing Addendum, which requires it to protect it. Privacy policy
Usage analytics
Waycar uses PostHog, Inc. (US cloud, us.i.posthog.com) for usage analytics, so we can learn which features are used. The analytics are pseudonymous: they are tied to a random ID, not to your name, email address, or Apple Account. We do not use them for tracking or advertising, and we do not sell them.
The app sends these events: app_opened, host_added, pairing_succeeded, agent_launched, and notification_opened. agent_launched includes kind, the type of Agent launched (for example claude or codex). Every event includes env, which says whether it came from a debug or release build. Events are tied to a random ID the app makes. When iCloud Sync is on, that ID is stored in your iCloud Keychain so your iPhone and iPad share it; otherwise it stays on the device.
Children
Waycar is a tool for software developers and is not directed to children. We do not knowingly collect personal data from children under 13, or under 16 where local law sets a higher age. If you believe a child has sent us personal data, email privacy@waycar.dev and we will delete it.
Your rights
If you are in the EU, the EEA, the UK, or Switzerland, we use app analytics on the basis of your consent, which you give by choosing Allow and can withdraw at any time in Waycar’s Settings. Withdrawing does not affect analytics sent before. The legal bases for the website are described under “This website”. Wherever you live, you can ask us for access to or deletion of personal data we hold about you, and you can object to our processing, by emailing privacy@waycar.dev. You may also complain to your data protection authority. Data is processed in the United States by the service providers above.
To opt out of the sale or sharing of your personal information (for example under California law), use Global Privacy Control, choose “Decline” in “Cookie settings” on the website, or email privacy@waycar.dev. We treat a Global Privacy Control signal as a valid opt-out of sale and sharing for that browser. We do not use or disclose sensitive personal information beyond what the law allows, and we do not knowingly sell or share the personal information of anyone under 16.
Changes to this policy
If this policy changes, we will update it here and change the date at the top.
Contact
Questions about this policy? Email privacy@waycar.dev. Please do not include sensitive information. You can also write to OTREVA, LLC, 9169 W State St #1395, Garden City, ID 83714, USA. For help with the app, see waycar.dev/support.