Comma Connect (Unofficial) Privacy Policy

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.