# ---- Alpaca paper accounts — ONE PER PERSONA (paper keys) ---- # Each persona trades its own account. Fill key + secret for each. ALPACA_NOVA_KEY=your_agent1_paper_key ALPACA_NOVA_SECRET=your_agent1_paper_secret ALPACA_WARREN_LITE_KEY=your_agent2_paper_key ALPACA_WARREN_LITE_SECRET=your_agent2_paper_secret ALPACA_ATLAS_KEY=your_agent3_paper_key ALPACA_ATLAS_SECRET=your_agent3_paper_secret ALPACA_PAPER=true # (Optional single-account fallback if the per-persona keys above are blank) ALPACA_API_KEY= ALPACA_SECRET_KEY= # ---- Finnhub (https://finnhub.io) — free tier key ---- FINNHUB_API_KEY=your_finnhub_key_here # ---- oMLX local server (Apple MLX; auto-starts on login, port 8090) ---- LLM_HOST=127.0.0.1 LLM_PORT=8090 # oMLX API key. Blank = auto-read from ~/.omlx/settings.json (auth.api_key) OMLX_API_KEY= # Model toggle (see config/models.py): gpt_oss | qwen35_27b MODEL_PROFILE=gpt_oss # Optional: force an exact served model id (blank = use profile + resolve against /v1/models) LLM_MODEL= LLM_MAX_TOKENS=2048 # ---- Per-agent budgets ---- PER_AGENT_WALLCLOCK_MIN=130 PER_AGENT_MIN_MINUTES=120 # TIME FLOOR: research at least this long (~2hr). Lower to test. PER_AGENT_STEP_BUDGET=400 # high safety cap (don't cap before the time floor) PER_AGENT_MIN_STEPS=25 HARD_STOP=07:00 SANDBOX_TIMEOUT_S=90 # run_analysis script wall-clock limit # ---- Email daily report (Gmail App Password — NOT your real password; blank = skip) ---- EMAIL_TO= EMAIL_FROM= SMTP_HOST=smtp.gmail.com SMTP_PORT=587 EMAIL_APP_PASSWORD= # ---- Timezones (market clock is authoritative; local is your Mac) ---- MARKET_TZ=America/New_York LOCAL_TZ=America/Chicago