Cereyan reads cereyan.toml from the served directory, a handful of environment variables, and the CLI flags. The keys are validated in python/cereyan/config.py; unknown keys produce a warning at startup naming the key. A [store] table is an error: the home is set by --home or CEREYAN_HOME only.
[server]host="127.0.0.1"port=4200token="change-me"# optional: require Authorization: Bearer on the APIsocket="/tmp/cereyan.sock"# optional: also listen on a Unix socket (Unix only)max_engines=8engine_max_runs=100cancel_grace_secs=10open_browser=true[defaults]catchup="skip"crash_retries=5retain_days=30[resources]db=4gpu=1[email]host="smtp.example.com"port=587tls="starttls"# none, starttls, tlsusername="..."password="..."from="cereyan@example.com"
Runtime home directory. Engine children inherit it.
CEREYAN_HOST, CEREYAN_PORT
Server bind address.
CEREYAN_TOKEN
API token required by the server and sent by the CLI, the Python client, cereyan mcp, and engine children.
CEREYAN_SOCKET
Unix socket path served next to the TCP port.
CEREYAN_NO_BROWSER
Do not open the UI on serve.
Set by the server for its engine children, not for users: CEREYAN_SERVER (the server URL) and CEREYAN_ENGINE_ID. Two knobs exist for the test suite and benchmarks only: CEREYAN_RETENTION_INTERVAL (seconds between retention passes, default hourly) and CEREYAN_FAST_CRASH_RERUN.