# Copy this file to `.env` and fill in real credentials: # cp .env.example .env # Provider API keys (set the keys for models you plan to run). # The CLI routes each model to its native SDK based on the model name substring # (see README Configuration). # OpenAI (models containing "gpt"; default --reasoning-model is gpt-5.5) OPENAI_API_KEY= # Google Gemini (models containing "gemini", e.g. gemini-3.1-pro-preview) GEMINI_API_KEY= # Anthropic Claude (models containing "claude", e.g. claude-sonnet-4.6) ANTHROPIC_API_KEY= # Optional: Alibaba DashScope / 百炼 for Qwen models (model name contains "qwen"). # Uses OpenAI-compatible Chat Completions API — region must match your API key. DASHSCOPE_API_KEY= # China (Beijing), default: DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # International (Singapore), uncomment if your key is from that region: # DASHSCOPE_BASE_URL=https://dashscope-intl.aliyuncs.com/compatible-mode/v1 # Required for web search (https://serper.dev). SERPER_KEY= # Optional: solve YouTube age gates or bot checks. # Export a Netscape-format cookies.txt file and use an absolute path. # YT_DLP_COOKIES_FILE=/absolute/path/to/cookies.txt # Optional alternatives for cookie rotation / browser cookies. # YT_DLP_COOKIES_FILES=/absolute/path/to/cookies1.txt,/absolute/path/to/cookies2.txt # YT_DLP_COOKIES_DIR=/absolute/path/to/cookie_dir # YT_DLP_COOKIES_FROM_BROWSER=chrome # Optional JavaScript runtimes for yt-dlp YouTube challenges. # Multiple values are comma-separated; absolute paths are allowed. # YT_DLP_JS_RUNTIMES=node,deno,bun # Optional runtime tuning. # FRAME_RESIZE_WORKERS=16 # PIPELINE_LOG_DIR=/absolute/path/to/logs