Manta UI is a thin client. The interesting data lives on your Linux box; the push gateway only sees the parts that have to cross our infrastructure to deliver a native APNs push.
Manta UI is three surfaces:
tmux sessions, your opencode chat sessions, your file uploads, your schedules, your secrets, your webhooks, and your notifications. Everything lives under ~/.manta/ on that box.gateway.mantaui.com) is the ONLY thing we still operate. It holds the Apple APNs key (which structurally cannot live on your box) and fans out native pushes on your box's behalf. Devices connect directly to your box at https://<box_id>.boxes.mantaui.com — there is no relay in the path for chat, terminal, or file traffic.box_id (32 hex chars), a box_token (HMAC key), and a gateway_token (bearer credential for the push gateway) under ~/.manta/auth.json (0600). The token never leaves the box.npm run pair or hit GET /auth/pair from the box itself.config.json; the box keeps no per-device record beyond "is this token currently valid."tmux session, every opencode chat, every uploaded file (~/.manta-uploads/, hourly auto-clean), every scheduled prompt, every webhook, every secret, every published page.Delete any of this by deleting the file. The installer's only hard rule is: never regenerate ~/.manta/auth.json — that would unpair every device.
The push gateway holds the minimum it needs to deliver native APNs notifications. It does not see your chat, terminal, or file traffic at all — that flows directly between device and box over HTTPS.
box_id, gateway_token (HMAC-bearer), first-seen IP, last-seen IP, registered public hostname (<box_id>.boxes.mantaui.com), first/last-registered timestamps..p8) — the single piece of state that structurally cannot live on your box. Stays in /etc/manta-gateway/ on the prod box.Retention: the box row stays until your box unregisters (it can't — the gateway doesn't expose unregister). To wipe: SSH into the prod gateway host and remove the row from /var/lib/manta-gateway/boxes.json. We never store anything about you beyond what's needed to fan out APNs deliveries.
https://<box_id>.boxes.mantaui.com. Authenticated with your device token; the box checks HMAC + expiry on every request.https://gateway.mantaui.com/push with a Bearer <gateway_token> header. The gateway signs the APNs JWT and forwards; the payload body (title, body, deep link) is opaque to the gateway.api.push.apple.com, signed with the gateway's APNs key. Apple sees the push envelope.When you have the phone client open in the background (or installed as a native app later), Manta may send a push when an agent needs you — a permission prompt, a question, an error, or a long-running task finishing. The push body carries the session name and a short snippet of the question. We do not include the full transcript in the push body.
This website (the one you're reading right now) does not set cookies, does not run analytics, does not embed trackers, and does not fingerprint your browser. The only outbound requests are to Google Fonts for typography.
fonts.googleapis.com. Google sees your IP. If you want to avoid that, the page degrades gracefully to system fonts.boxes.mantaui.com A records. OVH sees the box's public IP at registration time.Manta UI is open source. The server, push gateway, mobile web client, and desktop app are all on GitHub. The only closed-source piece is the published iOS app (which exists only because the stores require it).
gateway.mantaui.com. Web Push (VAPID, for browser installs) stays box-local and does NOT touch the gateway.~/.manta/ on the box removes identity + work. Asking us to forget a box drops the gateway row.Questions, deletion requests, or reports: antoine@mantaui.com.
Manta UI is open source; the canonical implementation of everything described here lives in the README and server source.