Skip to Content
cuelo.

04Connect

Connect clients

Everything that talks to a Cuelo agent — browsers, SDKs, phones, your backend — and the one port they share.

A Cuelo server exposes the agent, your own routes and the dashboard on one port (4141 by default). Pick the entry point that fits your client:

Browser appWebSocket · keyOpenAI SDKbase_url → :4141/v1Phone / SIPvia your endpointYour backendwebhooks, say()cuelo serve · :4141/v1/realtimeOpenAI Realtime API/v1/pcmraw PCM WebSocketyour routessrc/api.py/api/*calls, events, audio/dashboardHarnessone session per callpipelines, events
one port serves the agent, your routes and the dashboard. API keys guard all of it.
You're building…UsePage
A web or mobile app with a mic/v1/realtime, the OpenAI Realtime protocolRealtime API
Something already on OpenAI Realtimethe same: change the base URLRealtime API
A phone line (Twilio, SIP, Plivo)a WebSocket route in src/api.py bridging mediaCustom endpoints
A simple device or test client/v1/pcm: raw PCM in and out, events as JSONCustom endpoints
Server-side control of live callsyour own HTTP routes using harness.sessionsCustom endpoints

What every client gets

  • Audio both ways as PCM16 mono at 24 kHz. The engine resamples for each provider.
  • Cuelo's turn-taking. Clients stream audio continuously and the server decides when to speak, stop and backchannel. No client-side VAD is needed.
  • Events. Transcripts, turn decisions, tool calls and latency marks stream to the client as they happen.
  • One rule: when the agent is interrupted, drop any audio you haven't played yet.

Securing it

On anything but localhost, set API keys. The server refuses to start on a public host without one. Browsers pass the key as a WebSocket subprotocol. See Security.

On this page