# ===== EJClaw Environment Configuration ===== # Copy this file to .env and fill in the values. # For dual-service (Codex), also create .env.codex with DISCORD_BOT_TOKEN for the Codex bot. # For review failover, create .env.codex-review with a third Discord bot token. # --- Required --- DISCORD_BOT_TOKEN= # Discord bot token (Claude bot) CLAUDE_CODE_OAUTH_TOKEN= # Claude Code OAuth token (primary account) # --- Multi-account rotation (recommended) --- CLAUDE_CODE_OAUTH_TOKENS= # Comma-separated tokens for auto-rotation on 429 # e.g. token1,token2 # --- Codex support (optional — needed for ejclaw-codex service) --- OPENAI_API_KEY= # OpenAI API key for Codex # CODEX_OPENAI_API_KEY= # Override OPENAI_API_KEY for Codex only # CODEX_MODEL=gpt-5.4 # Codex model # CODEX_EFFORT=xhigh # Codex reasoning effort # --- Bot identity --- ASSISTANT_NAME=claude # Trigger name (@claude) # SERVICE_ID=claude # Service identifier (defaults to ASSISTANT_NAME slug) # SERVICE_AGENT_TYPE=claude-code # Agent type: claude-code or codex # --- Voice transcription --- GROQ_API_KEY= # Groq Whisper (primary, free: console.groq.com) # OPENAI_API_KEY also used as Whisper fallback # --- Usage dashboard (optional) --- # STATUS_CHANNEL_ID= # Discord channel for live status updates # USAGE_DASHBOARD=true # Enable usage dashboard # STATUS_SHOW_ROOMS=true # Show room status in dashboard # STATUS_SHOW_ROOM_DETAILS=false # Show detailed room info # --- Advanced --- # MAX_CONCURRENT_AGENTS=5 # Max parallel agent processes # AGENT_TIMEOUT=1800000 # Agent timeout in ms (default: 30min) # SESSION_COMMAND_ALLOWED_SENDERS= # Comma-separated Discord user IDs for session commands