.env file works with
node --env-file=.env). Numeric variables fail loudly at startup if set to a non-number, so a typo
stops the process with a clear message rather than silently misbehaving - the same goes for a
non-cartesia.ai host or a zero HMAC_FRESHNESS_MS.
The agent itself (LLM, tools, conversation logic) is configured where it lives: in your Line
deployment on Cartesia. The variables here configure the transport and optional per-call
overrides.
Required
Per-call overrides
Your Line agent’s own deployment config is the default:Call governor
Cartesia knows nothing about your budget - enforce time limits here:The Line wire has no “say this exact text” message. Without a TTS model + voice, the governor
goodbye is a
goodbye_request custom event your Line agent code may speak - silent otherwise.
Arming MAX_CALL_MINUTES without TTS logs a startup warning for exactly this reason.Server and transport
The bridge exposes
GET /healthz (liveness) and GET /metrics (Prometheus text format: calls,
duration histogram, rejects, relay/drop counters, agent errors) on the same port - keep it private
to your network or scrape through your ingress.
Audio formats are not configurable: the wire is PCM 16 kHz by contract and the Line stream is
pinned to
pcm_16000 - the bridge relays base64 payloads verbatim. The full environment
reference, wire protocol, and library API live on the
project site.