111 lines
5.9 KiB
Plaintext
111 lines
5.9 KiB
Plaintext
# ===== EJClaw Environment Configuration =====
|
|
# Copy this file to .env and fill in the values.
|
|
# Single unified service manages all three Discord bots in one process.
|
|
|
|
# --- Discord bots (canonical role-fixed names) ---
|
|
DISCORD_OWNER_BOT_TOKEN= # Owner bot
|
|
DISCORD_REVIEWER_BOT_TOKEN= # Reviewer bot
|
|
DISCORD_ARBITER_BOT_TOKEN= # Arbiter bot
|
|
|
|
# Old service-based token names are no longer accepted.
|
|
# Rename any existing values to the three canonical role-based keys above.
|
|
|
|
# --- Agent type configuration ---
|
|
OWNER_AGENT_TYPE=codex # codex | claude-code
|
|
REVIEWER_AGENT_TYPE=claude-code # claude-code | codex
|
|
# ARBITER_AGENT_TYPE=codex # optional: codex | claude-code
|
|
|
|
# --- API keys ---
|
|
CLAUDE_CODE_OAUTH_TOKENS= # Canonical comma-separated Claude Code OAuth tokens (use one value for single-account too)
|
|
CLAUDE_CODE_OAUTH_TOKEN= # Legacy single-token fallback
|
|
GROQ_API_KEY= # Voice transcription (Groq Whisper, free: console.groq.com)
|
|
|
|
# --- Bot identity ---
|
|
ASSISTANT_NAME=claude # Trigger name (@claude)
|
|
|
|
# --- Claude model ---
|
|
CLAUDE_MODEL=claude-opus-4-8 # Claude model
|
|
CLAUDE_EFFORT=high # Claude effort level
|
|
CLAUDE_THINKING=adaptive # Claude thinking mode
|
|
|
|
# --- Codex model ---
|
|
CODEX_MODEL=gpt-5.5 # Codex model
|
|
CODEX_EFFORT=xhigh # Codex reasoning effort
|
|
# Codex fast mode / goals: dashboard Settings → Codex, or ~/.codex/config.toml:
|
|
# [features]
|
|
# fast_mode = true
|
|
# goals = true # /goal — opt-in, default OFF on Codex 0.133+
|
|
|
|
# --- Usage dashboard ---
|
|
STATUS_CHANNEL_ID= # Discord channel ID for live status updates
|
|
# STATUS_SHOW_ROOMS=true # Show room status in dashboard
|
|
# STATUS_SHOW_ROOM_DETAILS=false # Show detailed room info
|
|
# WEB_DASHBOARD_ENABLED=false # Local dashboard server
|
|
# WEB_DASHBOARD_HOST=127.0.0.1 # Keep localhost unless using VPN/tunnel
|
|
# WEB_DASHBOARD_PORT=8734
|
|
# WEB_DASHBOARD_TOKEN= # Optional bearer token for /api/* when exposing to phone clients
|
|
|
|
# --- Discord image attachments ---
|
|
# Extra local directories that agents may attach from. Keep this narrow:
|
|
# prefer screenshot/output folders over /home. Comma or path-delimiter separated.
|
|
# EJCLAW_ATTACHMENT_ALLOWED_DIRS=~/Pictures/Screenshots,~/Downloads/ejclaw-images
|
|
|
|
# --- Codex warm-up (optional, disabled by default) ---
|
|
# Sends a tiny real Codex prompt only when both 5h and 7d usage are 0%, so
|
|
# reset countdown starts once after a fresh quota window. Keep disabled if
|
|
# OpenAI changes policy or starts blocking automated warm-up prompts.
|
|
# Normally only set this one line; the other knobs have conservative defaults.
|
|
# CODEX_WARMUP_ENABLED=false
|
|
# CODEX_WARMUP_PROMPT=Reply exactly OK. Do not run tools.
|
|
# CODEX_WARMUP_MODEL= # Defaults to CODEX_MODEL
|
|
# CODEX_WARMUP_INTERVAL_MS=300000 # Check every 5min
|
|
# CODEX_WARMUP_MIN_INTERVAL_MS=18300000 # Per-account minimum gap: 5h5m
|
|
# CODEX_WARMUP_STAGGER_MS=1800000 # Global gap between accounts: 30min
|
|
# CODEX_WARMUP_MAX_USAGE_PCT=0 # Only warm accounts at/below this 5h usage
|
|
# CODEX_WARMUP_MAX_D7_USAGE_PCT=0 # Only warm accounts at/below this 7d usage
|
|
# CODEX_WARMUP_MAX_CONSECUTIVE_FAILURES=2
|
|
# CODEX_WARMUP_FAILURE_COOLDOWN_MS=21600000 # Back off 6h after repeated failure
|
|
|
|
# --- Fallback provider (when Claude/Codex both unavailable) ---
|
|
# FALLBACK_ENABLED=true # Enable fallback provider
|
|
# FALLBACK_PROVIDER_NAME=kimi # Provider name for logging
|
|
# FALLBACK_BASE_URL= # OpenAI-compatible API base URL
|
|
# FALLBACK_AUTH_TOKEN= # API token for fallback provider
|
|
# FALLBACK_MODEL=kimi-k2.5 # Fallback model
|
|
# FALLBACK_SMALL_MODEL=kimi-k2.5 # Fallback small model
|
|
# FALLBACK_COOLDOWN_MS=600000 # Cooldown between fallback attempts (10min)
|
|
|
|
# --- Per-role model overrides (paired rooms) ---
|
|
# Override global CLAUDE_MODEL/CODEX_MODEL per role.
|
|
# Model is injected based on each role's agent type (claude-code → CLAUDE_MODEL, codex → CODEX_MODEL).
|
|
# OWNER_MODEL=gpt-5.5 # Owner model override
|
|
# OWNER_EFFORT=xhigh # Owner effort override
|
|
# OWNER_FALLBACK_ENABLED=true # Fall back to codex on Claude failure (default: true)
|
|
#
|
|
# REVIEWER_MODEL=claude-opus-4-8 # Reviewer model override
|
|
# REVIEWER_EFFORT=high # Reviewer effort override
|
|
# REVIEWER_FALLBACK_ENABLED=true # Fall back to codex on Claude failure (default: true)
|
|
#
|
|
# ARBITER_MODEL=gpt-5.5 # Arbiter model override when ARBITER_AGENT_TYPE=codex
|
|
# ARBITER_EFFORT=xhigh # Arbiter effort override
|
|
# ARBITER_FALLBACK_ENABLED=true # Fall back to codex on Claude failure (default: true)
|
|
|
|
# --- Mixture of Agents (MoA) ---
|
|
# Queries external API models in parallel before arbiter runs.
|
|
# Their opinions are injected into the arbiter's prompt for better judgment.
|
|
# The SDK arbiter (subscription-based, no extra cost) aggregates all perspectives.
|
|
# MOA_ENABLED=true
|
|
# MOA_REF_MODELS=kimi,glm # Comma-separated reference model names
|
|
# MOA_KIMI_MODEL=kimi-k2.6 # Kimi model
|
|
# MOA_KIMI_BASE_URL=https://api.kimi.com/coding # Kimi API endpoint
|
|
# MOA_KIMI_API_FORMAT=anthropic # Kimi Code API format
|
|
# MOA_KIMI_API_KEY=sk-kimi-xxx # Kimi API key
|
|
# MOA_GLM_MODEL=glm-5.1 # GLM model
|
|
# MOA_GLM_BASE_URL=https://open.bigmodel.cn/api/anthropic # GLM API endpoint
|
|
# MOA_GLM_API_FORMAT=anthropic # GLM Anthropic-compatible API
|
|
# MOA_GLM_API_KEY=xxx # GLM API key
|
|
|
|
# --- Advanced ---
|
|
# MAX_CONCURRENT_AGENTS=5 # Max parallel agent processes
|
|
# SESSION_COMMAND_ALLOWED_SENDERS= # Comma-separated Discord user IDs for session commands
|