This is a privacy policy for the Comma Connect (Unofficial) mobile app.
Comma Connect (Unofficial) – Apps on Google Play
# Privacy Policy
Last updated: 2026-10-20
Comma Connect (Unofficial) is an independent client for comma.ai’s connect
service. It is not made, endorsed, or supported by comma.ai.
The short version: this app collects nothing about you, keeps no account or
record of you anywhere, and adds no tracking. Everything it shows you comes from
your own comma account, fetched with your own credentials, and it travels
between your phone, comma.ai, and your comma device. The one exception is a
small public file, the same for every user, that tells the app which map server
to use; it is described below.
## What the developer collects
Nothing.
No analytics SDK, crash reporting, advertising or telemetry is added by this
app, and the developer operates no service that receives anything from it. The
single developer-hosted thing the app ever reads is one small public file
naming which map server to use, described under Map tiles below; it is a
download, it sends nothing, and it is the same file for every user. No account
is created with the developer, and there is nothing for the developer to retain,
sell, or disclose. One bundled library carries its own vendor reporting — to
Google, not to the developer — described under Camera in the Permissions
section. The Dart and Flutter components the app is built from are listed under
Settings → About → Open source licenses; the platform-native libraries those
components bundle internally do not appear in that list.
## What stays on your device
– **Your comma session token.** Signing in produces a token issued by comma.ai.
On iOS it is written to the system Keychain. On Android it is encrypted with
a key kept in the Android Keystore and the encrypted value is written to the
app’s private storage. It is used only to authenticate your requests, and it
is sent only to comma.ai and, when playing back a recorded drive, to the
comma-operated media server that stores your video. It never goes anywhere
else.
– **Your app settings.** Theme, language, distance units, mute state, the
wallpaper-color preference, and which of your devices you last had selected
are saved in ordinary app storage. The app never transmits them.
– **Saved places.** When you name a place — Home, Work, or a name of your own —
its name and coordinates are saved in ordinary app storage on this phone and
are never transmitted. They belong to the comma account you were signed in
with: they are stored separately for each account, so anyone signing in on
this phone with a different account sees none of yours, and yours are there
again when you sign back in. You can rename or remove each one under
Settings → Saved places. Like your other settings, they are included in the
phone’s own backup.
– **Clips.** When you save or share a clip made on your device, it is first
downloaded to the app’s own cache on this phone, so saving and sharing the
same clip don’t download it twice. Those copies are deleted when you remove
the clip, when you sign out, or when the phone clears its cache. A clip goes
into your photo library, or to another app, only when you ask.
– **Saved snapshots.** If you tap save on a camera snapshot from your device,
the image is written to your photo library. This happens only when you ask
for it.
– **The map-server configuration.** The small public file described under Map
tiles is cached in ordinary app storage, along with when it was last
checked. It is identical for every user and contains nothing about you.
Signing out deletes the session token. On Android, the session token is
excluded from the phone’s own backup and from phone-to-phone transfer, so no
copy of it lands in a Google backup or moves to a new phone; your settings are
ordinary app data and restore from a backup the way any app’s do. Uninstalling
the app removes all of the above, with one platform caveat: iOS can keep
Keychain entries through an uninstall, so sign out first if you want the token
gone before deleting the app.
## What the app sends, and to whom
The app makes network requests only to carry out something you asked it to do.
### comma.ai
Signing in, listing your devices, loading drives, playing back recorded video,
showing routes on a map, reading device logs, checking your comma prime
subscription, and pairing a new device are all requests to comma.ai’s public API
— the same API the official comma connect web app uses. Recorded video, drive
thumbnails and route tracks are served from comma’s cloud media storage, a
content-delivery host comma operates as part of the same service. Your account data lives
with comma.ai, under comma.ai’s own terms and privacy policy, not this app’s:
https://comma.ai/terms
Data handled this way includes your account email, your paired devices, your
drive history, GPS coordinates, dashcam video, device logs, and subscription and
billing status. The app displays this data; apart from the rounded locations
described under Place names, it does not copy it anywhere else. Nothing is
cached for offline use.
### Your sign-in provider
Signing in with Google, Apple, or GitHub opens that provider’s real sign-in page
in an in-app browser window. Your password is entered on the provider’s site and
is never visible to this app. The provider returns an authorization code, which
comma.ai exchanges for your session token.
### Map tiles
The map is drawn from map tiles fetched as you pan and zoom. Builds distributed
without a configured tile provider use OpenStreetMap’s public tile servers. That
server sees your IP address and which tiles you requested, which approximates
the area you are looking at. It does not see your comma account or your drives.
If the tile server stops answering, or once a month at most, the app downloads a
small configuration file naming which tile server to use. This is what lets a
blocked or discontinued map source be replaced without waiting for an app
update. It is a plain download of one fixed file, the same for every user: it
carries no identifier, nothing about your account, and nothing about where you
were looking. In official builds that file is hosted at jackstromberg.com, which
therefore sees your IP address, as any web server does, and nothing else. Builds
not given a location for this file never make the request at all.
### Place names
To show where each drive started and ended, and where your car is now, in words
rather than coordinates, the app asks your phone’s built-in geocoding service to
name those points. On Android that service is Google’s (part of Google Play
services); on iOS it is Apple’s. The points are rounded to three decimal places
— about 100 metres — before they are sent, which is enough to name a
neighbourhood or street but not a house. Only the coordinates are sent: the app
does not send your comma account, your device, or the times of your drives, and
it does not ask for your phone’s own location. Google or Apple will see your IP
address and whatever their service associates with your phone, under their own
privacy policies.
Drive ends within about 200 metres of a place you have saved (see Saved places
above) are named on the phone from your own list, and those points are not sent
at all. The names are kept in memory while the app is open and forgotten when
you sign out or close it; nothing is written to storage. Place names are on by
default,
and you can turn them off under Settings → Place names, after which no points
are sent at all.
### Live streaming
Watching your device’s live stream opens a direct WebRTC connection between your
phone and your comma device. Because both are usually behind carrier NAT, the
video is typically relayed through a TURN server issued to you by comma.ai. If
comma.ai’s server list is unreachable, the app falls back to a public Google
STUN server (stun.l.google.com), which would see your IP address and nothing
else.
### Nowhere else
Apart from the destinations named above, the app itself contacts nothing. Some
actions hand a link to another app instead, and what happens next is governed by
that app’s own policy:
– Opening the comma connect website or comma’s account admin, or sharing a
drive link, hands a URL to your browser or to the app you pick from the share
sheet.
– Managing a comma prime subscription opens comma’s payment processor, Stripe,
in your browser.
– Tapping your car’s location opens your maps app. If no maps app is installed,
it opens Google Maps in your browser instead; the link contains the car’s
coordinates, as any map link must.
## Permissions
– **Camera** — used only to scan the pairing QR code shown on your comma device.
Frames are processed on your phone and are never stored or transmitted. Only
the pairing token decoded from the QR code is sent, to comma.ai, to pair the
device to your account. On Android the scanning itself is done by Google’s
ML Kit barcode library, which is bundled with the app and sends its own
diagnostic and usage reporting to Google under
[Google’s ML Kit terms](https://developers.google.com/ml-kit/terms); that
reporting is about the library, not the camera frames or what the code said.
On iOS scanning uses Apple’s on-device framework, which reports nothing.
– **Photos** — used only to save a snapshot you chose to save.
– **Internet** — used for the requests described above.
– **View network connections** — used to tell whether your phone has any network
connection at all, so that a request which fails can say you are offline
rather than blame comma.ai. It reports whether you are online and over what
sort of connection; it cannot see what travels over it, and nothing about it
is sent anywhere. The video player uses it too, to notice when a connection
drops or changes so playback retries instead of stalling. It is classed as a
normal permission, so you are never asked to approve it and it cannot be
declined on its own.
Android also grants the app three further permissions that you are never asked
to approve. They are classed as normal in the same way, and every one of them
comes from a library this app is built on rather than from its own code. They
can show up in a permission list on the store or in your device settings, so
they are named here rather than left to be discovered:
– **Prevent device from sleeping** — declared by the video player library.
Nothing in this app ever asks to hold your screen or processor awake, so it is
never actually taken.
– **Bluetooth**, on Android 11 and older only, and **change your audio
settings** — both come from the audio-routing component inside the video-call
library used for the live camera stream. That stream carries picture and no
sound. This app never opens a microphone and never changes how your audio is
routed, so neither permission does anything here.
The last two are left in place rather than stripped out, deliberately. Removing
a permission that a dependency declares for its own use is a dependable way to
break that dependency later, on someone else’s phone, in a way that testing here
would not catch. None of the three give the app access to your files, your
location, your microphone, your messages, or anything beyond what is described
above.
The app does not request access to your location. Location shown on the map is
your comma device’s, reported by the device to comma.ai and read back from your
account.
## Your choices
– Sign out at any time from Settings → Sign out. This deletes the stored session
token from your device.
– Uninstall the app to remove everything it keeps locally. On iOS, sign out
first — the system can keep Keychain entries through an uninstall.
– To correct or delete the underlying account data — your drives, your device
records, your account itself — use comma’s own tools at
[useradmin.comma.ai](https://useradmin.comma.ai), or contact comma.ai. That
data belongs to your comma account and this app cannot delete it on comma’s
behalf.
## Children
This app is not directed to children under 13 and does not knowingly collect
information from them.
## Changes to this policy
Any change is published in this file, with a new date at the top, and ships in
the next release of the app. Material changes will be noted in the release
notes.
## Contact
Questions about this policy: https://jackstromberg.com/contact/
For questions about the data in your comma account, contact comma.ai.