Skip to main content
Avocado’s configuration is spread over three places — the site, the orchestrator, and the editor — and until now it was documented wherever it happened to come up. This is the consolidated list.
Which process reads what. In library mode the site and the orchestrator are the same process, so both columns land in one .env.local. In a standalone deployment they are separate environments and the variables go where the table says.

Model providers

At least one key is required for chat. Everything else in the editor — the preview, the property panel, click-to-select — works without one. Keys are read at startup. Adding one to a running server does nothing until you restart it — which is the most common reason a key looks ignored.

Model selection, per tier

Each provider resolves four tiers. Override any of them by name: Also ANTHROPIC_PROMPT_CACHE and ANTHROPIC_PROMPT_CACHE_TTL for prompt caching, and OPENAI_VISION_MODEL / OPENAI_VISION_ALT_MODEL / ANTHROPIC_VISION_ALT_MODEL for the models that read attached images. See AI providers.

Images

Voice input

POST /audio/transcribe tries OpenAI first, then falls back to Gemini when OpenAI fails or is over quota. With neither provider available, /status/planner reports features.audioTranscription: false and the editor hides the microphone button.

Access and security

The full picture, including what is open and what is closed by default, is on security and access. The variables:
Library mode refuses every request under NODE_ENV=production when none of ACCESS_PASSWORD_HASH, ORCHESTRATOR_ACCESS_TOKEN or a code-level auth hook is configured. That is deliberate. See security and access.

The site

Read by your Next.js app through the SDK. A mismatch between the editor’s draft secret and the site’s DRAFT_MODE_SECRET degrades to “the preview shows published content” rather than an error, which is why it goes unnoticed. avocado-register warns about it.

Publishing

See publishing.

Persistence

Full detail on state and backups.

Operations

Telemetry

See telemetry events and token usage.

Chat pipeline flags

The chat pipeline reads about sixteen CHAT_* variables that tune the planner rather than configure it — the parallel planner, the router head start, deferred image resolution, streamed operation apply, auto-reasoning, adaptive schema context. Defaults are tuned for responsiveness; turn them off individually when debugging, not as a matter of course. CHAT_PARALLEL_PLANNER · CHAT_ROUTER_HEAD_START_MS · CHAT_LLM_INTENT_ROUTER · CHAT_INCREMENTAL_APPLY · CHAT_STREAM_APPLY_MIN_STEP_MS · CHAT_AUTO_REASONING · CHAT_AUTO_REASONING_BUDGET · CHAT_ADAPTIVE_SCHEMA_CONTEXT · CHAT_SCHEMA_BUDGET_BYTES · CHAT_STRICT_JSON_RESPONSE · CHAT_STRICT_PRIMARY_OP_MODE · CHAT_PLANNER_FORCE_SONNET · CHAT_COMPACT_CONTEXT_EXPERIMENT · CHAT_MINIMAL_CONTEXT_EXPERIMENT

Jira

Only read when the Jira channel is configured. JIRA_BASE_URL · JIRA_USER_EMAIL · JIRA_API_TOKEN · JIRA_WEBHOOK_SECRET · JIRA_SITE_ID · JIRA_SESSION · JIRA_AGENT_ACCOUNT_ID · JIRA_TRIGGER_STATUS · JIRA_EXECUTE_STATUS · JIRA_PREVIEW_STATUS · JIRA_REVIEW_STATUS · JIRA_DONE_STATUS · JIRA_FAILED_STATUS · JIRA_AUTO_PUBLISH · JIRA_MAX_REVIEW_PASSES · JIRA_POLL_ENABLED · JIRA_POLL_INTERVAL_MS · JIRA_POLL_JQL

MCP server

See MCP server.

The editor CLI

The CLI reads these as an alternative to its flags — see CLI and packages. AVOCADO_ORCHESTRATOR_URL · AVOCADO_SITE_ORIGIN · AVOCADO_PUBLISH_TOKEN · DRAFT_MODE_SECRET · PORT