OpenClicky reads all secrets locally — there is no cloud key sync, no Google login requirement, and no hosted credential service. You supply your API keys through the in-app Settings panel, environment variables, or a local secrets file.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/jasonkneen/openclicky/llms.txt
Use this file to discover all available pages before exploring further.
Supported API Keys
| Key | Provider | Purpose |
|---|---|---|
ANTHROPIC_API_KEY | Anthropic | Claude voice responses (required) |
ELEVENLABS_API_KEY | ElevenLabs | Natural text-to-speech (optional) |
ELEVENLABS_VOICE_ID | ElevenLabs | Specific voice for TTS (optional) |
OPENAI_API_KEY | OpenAI | Codex/Agent Mode (optional) |
CARTESIA_API_KEY | Cartesia | Alternative TTS provider (optional) |
CARTESIA_VOICE_ID | Cartesia | Specific Cartesia voice (optional) |
ASSEMBLYAI_API_KEY | AssemblyAI | Real-time speech transcription (optional) |
DEEPGRAM_API_KEY | Deepgram | Real-time speech transcription and TTS (optional) |
GOG_KEYRING_PASSWORD | gogcli | Google Workspace keyring decryption (optional) |
Secrets File (Recommended)
The recommended approach is a local secrets file at~/.config/openclicky/secrets.env:
~/.config/openclicky/secrets.env
Alternative: Custom File Path
If you store secrets elsewhere, point OpenClicky to the file using theOPENCLICKY_SECRETS_FILE environment variable:
Alternative: Launch Environment
You can also pass keys as launch environment variables. Set them in your shell before launching OpenClicky from Xcode, or configure them in Xcode’s scheme editor (Product → Scheme → Edit Scheme → Arguments → Environment Variables).In-App Settings
All keys can also be entered directly in the OpenClicky Settings panel:- Click the OpenClicky menu-bar icon
- Open Settings (gear icon or keyboard shortcut
Cmd+,) - Enter your keys in the API Keys section
com.jkneen.openclicky.secrets.
Secret Resolution Order
OpenClicky checks each source in order and uses the first value it finds:- In-app Settings fields (macOS Keychain-backed)
- Launch environment variables
~/.config/openclicky/secrets.env- The path set in
OPENCLICKY_SECRETS_FILE
Transcription Providers
OpenClicky supports multiple speech-to-text backends. Select your preferred provider in Settings:| Provider | Key Required | Notes |
|---|---|---|
| Apple Speech | None | On-device, private, no key needed |
| OpenAI Whisper | OPENAI_API_KEY | High accuracy, cloud-based |
| AssemblyAI | ASSEMBLYAI_API_KEY | Real-time streaming |
| Deepgram | DEEPGRAM_API_KEY | Real-time streaming |
TTS Providers
OpenClicky supports multiple text-to-speech backends:| Provider | Key Required | Notes |
|---|---|---|
| OpenAI Realtime | OPENAI_API_KEY | Default provider; low-latency streaming |
| ElevenLabs | ELEVENLABS_API_KEY + ELEVENLABS_VOICE_ID | Natural, expressive voices |
| Cartesia | CARTESIA_API_KEY | Fast, low-latency TTS |
| Deepgram | DEEPGRAM_API_KEY | Aura 2 voices; reuses the STT key |
| Microsoft Edge | None | Free Edge online voices; no API key required |
| macOS AVSpeechSynthesizer | None | System TTS fallback |
Security Notes
API keys entered through in-app Settings are stored in the macOS Keychain, isolated to thecom.jkneen.openclicky.secrets service, and accessible only after the device is first unlocked (kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly). Keys are never written back to UserDefaults in plaintext once they have been migrated to the Keychain.