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.

PlatformStatusWhat that means
AndroidReleased with open gatesv0.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.
iOSUnverifiedThe 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