Bring your own model (BYOK)

What BYOK means in Cordy, why it matters, and where your keys are stored in each product.

"Bring your own key" (BYOK) means you supply the model-provider credentials, and Cordy uses them to talk directly to that provider. Cordy does not resell tokens, does not proxy your requests through its own servers, and does not require a Cordy account.

Why BYOK

  • No markup, no middleman. You pay the provider directly, at their rates.
  • No lock-in. Switch providers or models whenever you like; your history stays put.
  • Privacy. Your prompts go only to the provider you chose. See the privacy model.
  • Access to everything. Any model your provider offers — including brand-new ones — is usable the moment it ships.

What "OpenAI-compatible" means

Most providers expose an OpenAI-compatible HTTP API: the same /v1/chat/completions request shape the OpenAI SDK uses. Because of this, a single "custom endpoint" field lets Cordy talk to almost anything — official clouds, aggregators like OpenRouter, or a model server you run yourself (vLLM, Ollama, LM Studio, LocalAI). You provide a base URL and an API key, and Cordy speaks the standard protocol.

Where your keys are stored

Cordy never writes your keys to a shared server. Storage is on-device and product-specific:

ProductKey storage
Cordy for ChromeEncrypted IndexedDB inside the extension (never synced)
Cordy DesktopNot stored by Cordy — each CLI agent holds its own provider config
Cordy for MobileAndroid Keystore (AES-256-GCM) / iOS Keychain, device-bound
Cordy GatewayUpstream keys are Fernet-encrypted per channel in your own database

The gateway option

If you run several Cordy clients — or several apps of your own — you can point them all at your own Cordy Gateway instead of configuring provider keys in each app. The gateway holds the upstream keys once, and each client authenticates with a Cordy gateway key (wnx_…). You get one metered, cost-controlled endpoint, and the upstream credentials never leave your server. This is optional — every client also works standalone.