Privacy policy
Last updated: October 13, 2026
moa is an open-source coding agent that you run on your own computer or server. The iOS app, “moa — coding agent”, is a client that connects to your moa server. It is paired once with a code. The developer (moa’s maintainer) operates no account system and no server that receives your conversations.
What the app collects
Nothing, for the developer. The app has no analytics, no ads, no tracking, and no third-party SDKs that collect data.
Your conversations, code, files, settings and model API keys live on your own moa server. The app shows them by connecting directly to that server over HTTPS. The credentials created when you pair are stored in the iOS Keychain on your device.
Camera
The camera is used only to scan the pairing QR code. The code is decoded on your device, and no image is sent anywhere.
Microphone
The microphone is used to dictate messages. When you dictate, the audio is recorded in the app and sent to your own moa server, which sends it to OpenAI for transcription using the key you configured on that server. The maintainer does not receive it.
If you use “Talk live” (available only when your server has an OpenAI API key), audio travels directly between your device and OpenAI, using a short-lived credential issued by your server. The maintainer does not receive it either.
AI providers
Your moa server sends prompts and content to the AI providers you configure on that server, with your own keys or subscriptions. The app does not contact AI providers directly for conversations. Those providers’ own privacy policies apply.
Push notifications (optional)
Notifications are off until you turn them on. When enabled, they are delivered through a small open-source relay operated by moa’s maintainer on Cloudflare Workers (source in the moa repository, relay/), which forwards them to Apple Push Notification service.
The notification content is end-to-end encrypted between your server and your device; the relay cannot read it. The relay sees:
- your device’s push token,
- the IP address of your server,
- the time and the number of notifications, and
- an opaque grouping identifier.
The relay’s code keeps no record of requests: there is no database and request logs are disabled. Cloudflare, as the platform provider, keeps its own operational metadata (for example aggregated metrics for up to 3 months and analytics for up to 30 days) under Cloudflare’s privacy policy. Apple receives the notification for delivery under Apple’s privacy policy.
Without push notifications, nothing reaches the relay.
Deleting data and staying in control
- Turning notifications off, or unpairing the app, removes the push registration.
- You can revoke the device from moa’s Settings on your server.
- Uninstalling the app removes its local data.
Because the maintainer holds no user data beyond what is described above, there is nothing else to request deleted from the maintainer.
Children
moa is not directed at children.
Contact
Questions: ealeixandredev@gmail.com. Source and issues: github.com/e-aleixandre/moa.