# Environment variables (/reference/environment)

Cuelo loads `.env` from the current directory (or `cuelo-serve --env-file`).
Real environment variables take precedence.

## Provider credentials [#provider-credentials]

| Variable             | Used by                                    |
| -------------------- | ------------------------------------------ |
| `SMALLEST_API_KEY`   | Smallest STT and TTS                       |
| `DEEPGRAM_API_KEY`   | Deepgram STT and TTS                       |
| `ELEVENLABS_API_KEY` | ElevenLabs STT and TTS                     |
| `CARTESIA_API_KEY`   | Cartesia STT and TTS                       |
| `INWORLD_API_KEY`    | Inworld STT and TTS                        |
| `ASSEMBLYAI_API_KEY` | AssemblyAI STT                             |
| `SONIOX_API_KEY`     | Soniox STT                                 |
| `ANTHROPIC_API_KEY`  | Anthropic                                  |
| `OPENAI_API_KEY`     | OpenAI, and `openai-compatible` by default |
| `CEREBRAS_API_KEY`   | Cerebras                                   |
| `OPENROUTER_API_KEY` | OpenRouter                                 |

Any provider can read a different variable with `api_key_env` in
`config.cuelo`, for example two Anthropic keys for the talker and the thinker.

## Server [#server]

| Variable        | Default     |                                                         |
| --------------- | ----------- | ------------------------------------------------------- |
| `CUELO_HOST`    | `127.0.0.1` | `cuelo-serve` listen address                            |
| `CUELO_PORT`    | `4141`      | `cuelo-serve` port                                      |
| `CUELO_WORKERS` | `1`         | `cuelo-serve` processes                                 |
| `CUELO_API_KEY` | —           | default agent: required API key(s), comma-separated     |
| `CUELO_CORS`    | —           | default agent: allowed browser origins, comma-separated |

Projects set keys and CORS in `config.cuelo` (`serve.api_keys`, `serve.cors`) instead.

## Default endpoint [#default-endpoint]

`CUELO_STT`, `CUELO_TTS`, `CUELO_VOICE`, `CUELO_LLM`, `CUELO_MODEL`,
`CUELO_TURNS`, `CUELO_BARGE_IN`, `CUELO_AGENT_BC`, `CUELO_BC_HOLD` and
`CUELO_DB` pick the default agent's stack. See
[Default endpoint](/default-agent#changing-it).

## Models and performance [#models-and-performance]

| Variable              | Default                 |                                                                           |
| --------------------- | ----------------------- | ------------------------------------------------------------------------- |
| `CUELO_MODELS`        | `~/.cache/cuelo/models` | where turn-taking weights are cached                                      |
| `CUELO_TORCH_THREADS` | `1`                     | PyTorch threads per process (MaAI). More threads help one call, not many. |

## Development [#development]

| Variable            |                                                                                    |
| ------------------- | ---------------------------------------------------------------------------------- |
| `CUELO_ENGINE_PATH` | generated projects use this local engine checkout (editable), like `--engine-path` |
| `CUELO_ENGINE_GIT`  | override the engine's git source in generated projects                             |
| `CUELO_ENGINE_URL`  | the engine the dashboard dev server proxies to (default `http://localhost:4141`)   |