setup: setup_required and names each missing setting until you supply it. Once you do, those settings live in the platform’s own database, sealed with EGMA_ENCRYPTION_KEY, so they survive a restart, an upgrade, and a move to another machine. Every simulator is handed the current settings on the work order it claims — a second simulator on another host needs nothing copied to it.
You can configure the platform in two ways: interactively with egma self-host setup, or programmatically via the PATCH /api/platform/settings endpoint.
Interactive setup
Run the setup command in the same directory as your.env file, logged in as the instance owner:
--plan to preview what it would ask without writing anything:
--apply --yes --json for unattended configuration, with answers supplied via the environment variables listed in .env.example:
egma self-host setup does not ask for the default judge. To set a deployment-wide default judge, add EGMA_JUDGE_PROVIDER, EGMA_JUDGE_MODEL, and EGMA_JUDGE_API_KEY to your .env file — see Configuration keys — Default judge below for details.API-level setup
Update settings programmatically with aPATCH request. Supply only the keys you want to change — omitted keys are left exactly as they are:
****, so you can confirm which key is stored without exposing it.
Configuration keys
The table below covers every setting the platform stores. The env var column shows the.env.example variable that seeds a setting on first boot (the API writes it into the store on startup if the store does not already hold it, and never overwrites an existing value).
Persona model
The model the simulator’s persona uses to generate responses during a simulation.Speech-to-text (STT)
What the persona uses to transcribe the agent’s audio during voice simulations.Text-to-speech (TTS)
What the persona uses to speak during voice simulations.Voice activity detection (VAD)
What tells the persona when the agent has started and stopped speaking.Default judge
The judge that a new project receives when it has not configured one of its own. Set all three or none — a partial configuration causes the API to refuse startup. These are set via.env rather than through egma self-host setup, because a judge belongs to the project that chose it rather than to the deployment.
These are not set interactively by
egma self-host setup. Add them to your .env file — see Environment Variables for the generation commands.Media backend and phone trunk
Required for phone simulations.egma self-host setup configures Twilio automatically, including creating the SIP trunk and credential list; use these variables for other carriers or to supply values without interactive prompts.
How secrets are stored
Every API key, password, and credential you store through platform settings is sealed with the deployment’sEGMA_ENCRYPTION_KEY before it is written to the database. Retrieval responses return only the last four characters of each secret — for example, ****a1b2 — so you can identify which key is stored without exposing it. The plaintext is never returned through the API after it is written.
Checking setup status
Read the current setup status at any time:setup_complete. A platform with no phone trunk configured reports phone readiness separately — text simulations work without a carrier.