Skip to content

Environment Variables

All EDGECRAB_* variables are applied via apply_env_overrides() in config.rs. They override the corresponding config.yaml values at runtime.


VariableTypeDefaultDescription
EDGECRAB_HOMEpath~/.edgecrabOverride the EdgeCrab home directory
EDGECRAB_MODELstringanthropic/claude-sonnet-4-20250514Default LLM model
EDGECRAB_MAX_ITERATIONSinteger90Max tool call iterations per session
EDGECRAB_TIMEZONEstring(system)IANA timezone (e.g. America/New_York)
EDGECRAB_REASONING_EFFORTstring""Reasoning budget: low, medium, high, xhigh
EDGECRAB_SAVE_TRAJECTORIESboolfalseLog full trajectory to file
EDGECRAB_SKIP_CONTEXT_FILESboolfalseSkip SOUL.md and AGENTS.md loading
EDGECRAB_SKIP_MEMORYboolfalseDisable memory for this session
EDGECRAB_MANAGEDboolfalseBlock all config writes (1 to enable)

VariableTypeDescription
EDGECRAB_GATEWAY_HOSTstringGateway bind host (default: 127.0.0.1)
EDGECRAB_GATEWAY_PORTintegerGateway bind port (default: 8080)
EDGECRAB_GATEWAY_WEBHOOKboolEnable/disable webhook endpoint

VariableTypeDescription
TELEGRAM_BOT_TOKENstringRequired. Auto-enables Telegram platform
TELEGRAM_ALLOWED_USERScsvComma-separated allowed Telegram usernames
TELEGRAM_HOME_CHANNELstringChat ID for proactive messages

VariableTypeDescription
DISCORD_BOT_TOKENstringRequired. Auto-enables Discord platform
DISCORD_ALLOWED_USERScsvComma-separated Discord user IDs
DISCORD_HOME_CHANNELstringChannel ID for proactive messages

VariableTypeDescription
SLACK_BOT_TOKENstringRequired (with SLACK_APP_TOKEN). Auto-enables Slack
SLACK_APP_TOKENstringRequired (with SLACK_BOT_TOKEN). Socket Mode app token
SLACK_ALLOWED_USERScsvComma-separated Slack user IDs

VariableTypeDescription
SIGNAL_HTTP_URLstringRequired (with SIGNAL_ACCOUNT). signal-cli HTTP daemon URL
SIGNAL_ACCOUNTstringRequired (with SIGNAL_HTTP_URL). Registered phone number

VariableTypeDescription
WHATSAPP_ENABLEDboolEnable WhatsApp (1, true, or yes)
WHATSAPP_MODEstringBridge mode: self-chat or any-sender
WHATSAPP_ALLOWED_USERScsvComma-separated phone numbers
WHATSAPP_BRIDGE_PORTintegerBridge port (default: 3000)
WHATSAPP_BRIDGE_URLstringOverride bridge URL
WHATSAPP_SESSION_PATHpathBridge session storage path
WHATSAPP_REPLY_PREFIXstringText prepended to all replies

VariableTypeDescription
EDGECRAB_TTS_PROVIDERstringTTS provider: edge-tts, openai, elevenlabs
EDGECRAB_TTS_VOICEstringTTS voice name
ELEVENLABS_API_KEYstringElevenLabs API key

These are not EDGECRAB_* variables — they are standard API key env vars detected by setup.rs:

VariableProvider
OPENROUTER_API_KEYOpenRouter (default endpoint)
ANTHROPIC_API_KEYAnthropic
OPENAI_API_KEYOpenAI
GOOGLE_API_KEYGoogle Gemini
XAI_API_KEYxAI Grok
DEEPSEEK_API_KEYDeepSeek
HUGGING_FACE_HUB_TOKENHuggingFace
ZAI_API_KEYZAI
GITHUB_TOKENGitHub Copilot

Ollama and LM Studio require no API key.


VariableServiceDescription
HONCHO_API_KEYHonchoEnables cloud sync (auto-sets honcho.cloud_sync: true)
HA_URLHome AssistantBase URL (enables Home Assistant tools)
HA_TOKENHome AssistantLong-lived access token
CDP_URLBrowserChrome DevTools Protocol endpoint (instead of local Chrome)

Variables marked as bool accept: 1, true, yes, on (case-insensitive) to enable. Any other value (including empty) is treated as disabled.

Variables marked as csv accept comma-separated values with optional whitespace: "user1, user2, user3".


Set a different model for one session without editing config.yaml:

Terminal window
EDGECRAB_MODEL=anthropic/claude-opus-4-5 edgecrab run "big refactor task"

Debug all environment overrides at startup:

Terminal window
RUST_LOG=edgecrab_core=debug edgecrab run "test" 2>&1 | grep "env override"

Disable all file-writing (read-only managed mode):

Terminal window
EDGECRAB_MANAGED=1 edgecrab run "read and summarize src/"

Run the gateway on a public interface:

Terminal window
EDGECRAB_GATEWAY_HOST=0.0.0.0 EDGECRAB_GATEWAY_PORT=8443 edgecrab gateway start

Combine multiple platforms at once:

Terminal window
export TELEGRAM_BOT_TOKEN=...
export DISCORD_BOT_TOKEN=...
edgecrab gateway start # both platforms start automatically

What order do settings merge in? Config resolution: defaults → ~/.edgecrab/config.yaml → EDGECRAB_* env vars → CLI flags. Environment variables always win over the config file, but CLI flags win over everything.