Cordy for Mobile
A local-first, bring-your-own-key AI chat client with an Android release baseline and an unverified iOS target.
Cordy for Mobile (the app brands itself CordyAI) is a local-first AI chat client. You bring your own provider API key; conversations remain in the app's on-device database, while messages you send go directly to the selected provider. There is no Cordy account, cloud sync, or Cordy telemetry.
It is built with Kotlin Multiplatform and Compose Multiplatform, so the Android and iOS apps share one core.
What makes it different
Bring your own key, direct to the provider
Cordy is BYOK (bring-your-own-key). You paste an API key from a provider you already use, and Cordy sends your prompts straight from your device to that provider. Built-in and public custom endpoints use HTTPS; explicitly local custom endpoints may use HTTP. No Cordy server sits in the path. When you send a message, the selected provider receives it under that provider's own data policy.
Local-first storage
Your data lives on the phone:
- Conversations are stored in an on-device SQLDelight (SQLite) database.
- API keys are stored in the platform secure store — the Android Keystore (AES-256-GCM) or the iOS Keychain.
- Settings are ordinary on-device preferences.
Nothing is mirrored to a server, and there is no account to create.
Private by default
No Cordy account. No cloud sync. No analytics, telemetry, or payload capture by Cordy. In release builds, logging is capped so that verbose logs which could carry prompt or request detail do not reach the device console. When you want a clean slate, one action erases every local storage boundary the app owns; provider-side records and OS backups remain outside that action.
Who it's for
Cordy for Mobile is for people who want a calm, dependable daily AI chat on their phone without handing their whole workflow to a managed cloud product:
- The privacy-minded daily user — you want conversations and keys to stay on your own device, and you want to see plainly where your prompts go.
- The cost-conscious tinkerer — you want to switch models freely and know what each request costs before and after you send it.
- The developer — the bring-your-own-key setup gives you direct, provider-neutral access to OpenRouter, OpenAI, Anthropic, and any OpenAI-compatible endpoint, including a self-hosted model server on your own machine or LAN.
You don't have to be a developer to use it, but there's enough control here to satisfy one.
Feature highlights
- Streaming chat with live Markdown rendering (headings, lists, tables, code).
- Extended thinking / reasoning shown as a distinct block on capable models.
- Conversation library — create, resume, rename, delete, and search your local history.
- Message actions — copy, stop, regenerate, edit-last-and-regenerate, and retry.
- Image input (Android implementation) — from the gallery, the camera, or shared in from another app, gated to vision-capable models. Camera and share-in manual smoke remain open.
- Voice input (Android implementation) — dictate a prompt into editable text. Real microphone smoke remains open.
- Markdown export through the system share sheet.
- Usage & cost analytics — token counts and cost, per model / provider / day.
- A live model catalog with pricing, fetched per provider and cached on device.
- One-tap erase of every local boundary (database, preferences, keys, attachments, caches).
See Features for the full walkthrough.
Release and source status
The latest published GitHub release is v0.5.0 (July 16, 2026) and has no attached binaries. These docs also cover the current source at commit 0870b1e, including later conversation, model-picker, appearance, and streaming improvements. Those post-v0.5 changes are source behavior, not a newer published release.
| Platform | Status | What that means |
|---|---|---|
| Android | Released with open gates | v0.5.0 has build, shared-test, real-device launch, chat, composer, and gallery image evidence. Manual camera, share-in, voice, and TalkBack passes were accepted as open at release. |
| iOS | Unverified | The repository records no completed iOS binary link, execution, or simulator/device smoke. The old Windows-host klib compile predates later iOS edits and is stale. Image picking, camera, and voice remain unwired in current source. |
The Privacy & security page carries the full, honest platform note, and the FAQ answers "is iOS available yet?" directly.
Where to go next
- Getting started — bring a key, pick a provider and model, and chat within seconds.
- Providers & BYOK — the five built-in providers, custom endpoints, and how keys are stored.
- Features — everything the app can do today.
- Chat & conversation workflows — library, message actions, export, interruption, and recovery.
- Images & voice — Android capture paths, concrete image limits, and platform gates.
- Generation controls — temperature, output length, reasoning level, and context handling.
- Settings & local data — every settings category, usage, export, and erase behavior.
- Privacy & security — where your keys and conversations live, and how to erase them.
- FAQ & troubleshooting — recover from key, quota, and provider errors.