Environment variables
This page is for operators who run their own OttoTester instance. On a hosted OttoTester, configuration is managed for you — you can skip this.
.env.example at the repo root is the source of truth. It lists every variable with a documented default and a comment explaining it. Copy it to .env and fill in real values. The groups below are an overview, not a replacement for that file.
LLM provider
Section titled “LLM provider”OttoTester’s agents call an LLM. You set the provider and model:
OPENAI_API_KEY/ANTHROPIC_API_KEY/GOOGLE_GENERATIVE_AI_API_KEY— the provider key. Set the one your model needs.DEFAULT_MODEL— the global model, as aprovider:modelspec (for exampleanthropic:claude-3-5-sonnet).<AGENT>_MODEL— per-agent overrides (PLANNER_MODEL,GENERATOR_MODEL,HEALER_MODEL, and so on). Wiring each agent explicitly is recommended over relying onDEFAULT_MODEL.
Database and auth
Section titled “Database and auth”MONGODB_URI— the MongoDB connection string.MASTER_KEY— encrypts stored credentials. The server won’t start without it. Back it up — if it’s lost, every encrypted credential is unrecoverable.BETTER_AUTH_SECRET/BETTER_AUTH_URL— session signing, and the URL the auth flow returns users to.
Frontend and docs
Section titled “Frontend and docs”VITE_API_URL/VITE_WS_URL— where the frontend reaches the backend.VITE_DOCS_BASE_URL— the docs origin the in-app help panel fetches from. Leave it unset to use the build-mode default.
Browser
Section titled “Browser”VITE_BROWSER_TYPE(chromium/firefox/webkit),VITE_BROWSER_HEADLESS, and theVITE_BROWSER_VIEWPORT_*size variables — the default browser configuration for Playwright runs.
Agent budgets
Section titled “Agent budgets”MAX_AGENT_ITERATIONS/MAX_PLANNER_ITERATIONS— caps on how long an agent loops before it stops. They protect a run from consuming unbounded LLM cost.
Related
Section titled “Related”- Reference → Settings, API tokens