Privacy Policy

Last updated: 27 May 2026

Oneshot is an iOS companion app for Meta Ray-Ban smart glasses (and iPhone-only test mode) that streams what the camera sees and what the microphone hears into an AI voice assistant, so the user can have a hands-free conversation about whatever they're looking at.

This document describes what data the app handles, where it goes, and what we do — and don't do — with it. We've tried to be specific rather than write a generic boilerplate policy.

TL;DR

What the app accesses on your device

Permission Why
Camera To stream video from your glasses (or from the iPhone camera in test mode) into the AI voice session, and to scan QR codes that load an asset's context.
Microphone To capture your voice so the AI can hear you during a session.
Bluetooth To connect to Meta Ray-Ban smart glasses.
Local network To discover and connect to Meta smart glasses over Wi-Fi.
Photo Library (add only) If you choose to save a captured photo from your glasses, the app writes it to your Photos library. The app does not read your library.

If you decline a permission, the corresponding feature is disabled. You can revoke any permission at any time in iOS Settings.

What data leaves your device, and where it goes

The app makes outbound network calls only in the following situations:

1. Voice / video sessions → Google Gemini Live

When you start a session, the app opens a secure WebSocket (WSS) connection to Google's Gemini Live API at generativelanguage.googleapis.com. While the session is active:

This connection is authenticated with the Gemini API key you provide in Settings. Sessions only happen when you start one; closing the session closes the connection.

We don't proxy or log this traffic. It goes directly from your device to Google. Google's privacy policy and terms govern what happens to it on their end: policies.google.com/privacy.

2. Context cards → the ShipEdge backend you point the app at

When you scan a QR code or short code, the app fetches a "ContextCard" (the system prompt that tells the AI which asset it's helping with) from a ShipEdge backend, by default shipedge-production.up.railway.app. You can change this URL in Settings.

The ContextCard is read-only data; no personal information about you is sent in this request. The request is HTTPS-authenticated with the ShipEdge API key in Settings.

If the active context defines tool calls (used during a session to look things up in the asset's wiki), those tool calls are also HTTPS requests to the same ShipEdge backend. They include the tool's arguments — typically the asset id and a query string — and never the raw audio or video.

3. Optional WebRTC signaling (off by default)

If you configure a WebRTC signaling URL in Settings, the app will connect to that server (WSS) to negotiate a peer-to-peer video stream. This is an opt-in developer feature and is empty by default.

4. Universal Links / App Links

The app handles https://oneshot.glass/... URLs (e.g. https://oneshot.glass/c/<code>) so that tapping an Oneshot link opens the app. No data is sent to oneshot.glass as part of this — it's a local URL-routing mechanism.

What we do not do

API keys you enter in the app

The Gemini API key and ShipEdge API key you enter in Settings are stored locally on your device (in iOS UserDefaults / DataStore). They are not transmitted anywhere except to the corresponding service when making a request that needs them. Uninstalling the app removes them.

Children

Oneshot is not directed at children under 13 and we do not knowingly collect data from children.

Changes to this policy

If we change this policy in a way that meaningfully changes what data the app handles, we'll update the "Last updated" date at the top, and (for material changes) flag it on oneshot.glass.

Contact

Questions about privacy: mika@oneshot.glass.