01Start
Default endpoint
cuelo start runs a ready-made speech-to-speech endpoint with the recommended stack. Clients prompt it; no project needed.
cuelo start runs the built-in endpoint (its agent name is cuelo) with the
dashboard on the same port. It has no fixed persona or tools. Clients set instructions, tools and
voice with OpenAI Realtime session.update, so one server can be any agent. See Prompts.
cuelo start # http://127.0.0.1:4141, opens the Talk page
cuelo start --no-open # don't open a browser
cuelo start --port 5000It reads .env from the current directory. cuelo-serve with no agent file
runs the same agent without the browser step.
The stack
| Part | Default |
|---|---|
| STT | Smallest, English |
| LLM | The first provider you have a key for: Cerebras qwen-3.8-27b, then Anthropic claude-sonnet-5-5, OpenAI gpt-5-mini, OpenRouter |
| TTS | Smallest, voice aarini |
| End of turn | turn-1-mini |
| Interruptions | MaAI (falls back to the backchannel detector without cuelo[maai]) |
| Backchannels | MaAI, with a 1.2 s hold after a backchannel (falls back to the VAD rule) |
| Store | sqlite://cuelo.db in the current directory |
Changing it
Every part has an environment variable. Put them in .env:
| Variable | Default | Values |
|---|---|---|
CUELO_STT | smallest | any STT provider name (see Providers) |
CUELO_TTS | smallest | any TTS provider name |
CUELO_VOICE | aarini | provider voice ID. Clients may override it per session. |
CUELO_LLM | auto | auto, cerebras, anthropic, openai, openrouter |
CUELO_MODEL | per provider | model ID |
CUELO_TURNS | turn-1-mini | vad, smart-turn, turn-1-mini, maai |
CUELO_BARGE_IN | maai | vad, detector, maai |
CUELO_AGENT_BC | maai | vad, maai |
CUELO_BC_HOLD | 1.2 | seconds to wait after a backchannel before replying. 0 turns it off. |
CUELO_DB | sqlite://cuelo.db | store URL |
CUELO_API_KEY | unset | required on every request when set. Comma-separate several. |
CUELO_CORS | unset | browser origins allowed to call the API, comma-separated |
CUELO_WORKERS | 1 | server processes (cuelo-serve) |
CUELO_TORCH_THREADS | 1 | PyTorch threads per process for the MaAI models |
For example, a light stack that fits about 60 calls in one process:
CUELO_BARGE_IN=detector
CUELO_AGENT_BC=vadPrompting it from a client
Any Realtime client works. Send the persona with session.update. To make the
agent speak first, send response.create:
{
"type": "session.update",
"session": {
"instructions": "You are Maya, a friendly receptionist at a dental clinic.",
"audio": { "output": { "voice": "aarini" } },
"tools": [
{
"type": "function",
"name": "book_slot",
"description": "Book an appointment slot.",
"parameters": { "type": "object", "properties": { "time": { "type": "string" } } }
}
]
}
}{ "type": "response.create" }Tools declared by the client run in the client. The agent sends a
function_call item and waits for your function_call_output. See
Realtime API.
The dashboard's Talk page does exactly this, with an editor for the prompt, tools and voice, and presets to start from.