Environment Variables
The SignalWire Agents SDK reads environment variables for server configuration, authentication, SSL, logging, RELAY/REST client credentials, and serverless platform detection. Environment variables are overridden by constructor parameters but take precedence over config file values.
Use dotenv to load variables from a .env file during development:
Server
PORT
Server port. Used when no port argument is passed to the constructor.
Authentication
SWML_BASIC_AUTH_USER
Username for HTTP Basic Authentication on all agent webhook endpoints.
SWML_BASIC_AUTH_PASSWORD
Password for HTTP Basic Authentication. If not set, a random password is auto-generated on each startup and printed to the console.
In production, always set SWML_BASIC_AUTH_PASSWORD explicitly. Auto-generated
passwords change on every restart, which will break SignalWire webhook callbacks
until you update the credentials in your SignalWire dashboard.
SSL / TLS
SWML_SSL_ENABLED
Enable HTTPS. Only the string "true" is accepted (strict equality check).
SWML_SSL_CERT_PATH
Path to the SSL certificate file (.pem or .crt). Required when
SWML_SSL_ENABLED is set.
SWML_SSL_KEY_PATH
Path to the SSL private key file (.key). Required when
SWML_SSL_ENABLED is set.
SWML_SSL_DOMAIN
Domain name for HSTS headers and URL generation.
Proxy
SWML_PROXY_URL_BASE
Base URL when running behind a reverse proxy (e.g., https://my-agent.example.com).
The agent uses this URL to generate correct webhook URLs in SWML documents.
APP_URL
Fallback for SWML_PROXY_URL_BASE when that variable is not set.
SWML_PROXY_DEBUG
Enable proxy request debug logging.
Setting SWML_PROXY_URL_BASE (or APP_URL) overrides SSL configuration and port
settings for webhook URL generation.
Schema Validation
SWML_SKIP_SCHEMA_VALIDATION
Disable SWML document schema validation. Only the string "true" is accepted (strict equality check).
Useful for performance in production when you trust your SWML output.
Security
SWML_ALLOWED_HOSTS
Comma-separated list of allowed hosts. Set to specific domain(s) in production
(e.g., "agent.example.com,api.example.com").
SWML_CORS_ORIGINS
Comma-separated list of allowed CORS origins. Restrict to trusted origins in production.
SWML_MAX_REQUEST_SIZE
Maximum request body size in bytes. Default is 10 MB.
SWML_RATE_LIMIT
Rate limit in requests per minute.
SWML_REQUEST_TIMEOUT
Request timeout in seconds.
Logging
SIGNALWIRE_LOG_MODE
Logging mode.
"auto"— automatic detection based on environment"off"— disable all logging"stderr"— log to stderr"default"— standard logging output
SIGNALWIRE_LOG_LEVEL
Log level.
"debug"— verbose output for development and troubleshooting"info"— standard operational messages"warn"— potential issues that do not prevent operation"error"— failures that affect a specific operation
SIGNALWIRE_LOG_FORMAT
Log output format.
"text"— colored human-readable output (default)"json"— structured JSON log lines for log aggregation systems
Skills
SIGNALWIRE_SKILL_PATHS
Colon-separated paths to directories containing custom skills. The skill registry scans these paths in addition to the built-in skills directory.
RELAY and REST Client
These variables are shared between the RELAY WebSocket client and the REST HTTP client.
SIGNALWIRE_PROJECT_ID
SignalWire project ID for authentication.
SIGNALWIRE_API_TOKEN
API token for authentication.
SIGNALWIRE_JWT_TOKEN
JWT token for RELAY authentication. Alternative to project ID + API token.
SIGNALWIRE_SPACE
Space hostname used for RELAY WebSocket connections and as the REST API base URL.
RELAY_MAX_ACTIVE_CALLS
Maximum concurrent calls per RelayClient instance.
RELAY_MAX_CONNECTIONS
Maximum concurrent RelayClient connections per process.
Serverless Platforms
The SDK auto-detects the execution environment from platform-specific variables. You typically do not set these manually — they are provided by the platform runtime.
AWS Lambda
AWS_LAMBDA_FUNCTION_NAME
Lambda function name. Used for URL construction and logging.
AWS_LAMBDA_FUNCTION_URL
Lambda function URL. If not set, constructed from region and function name.
AWS_REGION
AWS region for Lambda execution.
_HANDLER
Lambda environment detection variable. Set automatically by the Lambda runtime.
Google Cloud Functions
GCLOUD_PROJECT
Google Cloud project ID.
FUNCTION_REGION
Google Cloud region.
FUNCTION_TARGET
Cloud Function entry point name.
K_SERVICE
Knative/Cloud Run service name.
Azure Functions
FUNCTIONS_WORKER_RUNTIME
Azure Functions environment detection variable.
AZURE_FUNCTIONS_ENVIRONMENT
Azure Functions environment name.
CGI
GATEWAY_INTERFACE
CGI environment detection variable.