My "private" Android AI app sends your first message somewhere you might not expect. Here's why I wrote that in the README
When I rewrote the README for Kryzz AI this week, the hardest section to write wasn't the feature list. It was one paragraph in the privacy section about chat titles. Kryzz AI is an MIT-licensed Android app (Kotlin + Jetpack Compose) for chat, voice and agent tasks. Chats, memory, files and API key

When I rewrote the README for Kryzz AI this week, the hardest section to write wasn't the feature list. It was one paragraph in the privacy section about chat titles.
Kryzz AI is an MIT-licensed Android app (Kotlin + Jetpack Compose) for chat, voice and agent tasks. Chats, memory, files and API keys stay on the phone. Keys are encrypted with AES-GCM under a non-exportable Android Keystore key, and there's no analytics, no telemetry and no bundled keys. The models themselves are hosted, not on-device: you bring your own OpenRouter key and your prompts go to whichever provider you pick.
So far, so normal for a "bring your own key" app. But there's one extra request that's easy to miss.
When you start a new chat, the app names it for you. To do that it sends the first part of your first message (up to 1,500 characters) to a small model, Gemini 2.5 Flash Lite, through your OpenRouter key. It runs in parallel with the real answer, and if it fails the app falls back to a local title.
It's the same key and the same route as the rest of the chat, so it's not a hidden server of mine. But it is a second request to a model you may not have picked, and if you chose a specific provider for privacy reasons you deserve to know that.
I could have left it out. Nobody would have noticed for a while. But "no telemetry" only means something if the list of what does leave the phone is complete. A privacy section that's 95% honest is basically marketing.
If you've built a BYOK app: did you hit this kind of "small side request" problem, and how did you handle it?
Honest caveats: you need your own OpenRouter key, it's not on the Play Store or F-Droid yet, and the new signed release build has only been checked for a clean launch on an Android 15 emulator so far. Bug reports welcome.