# ── Copy this file to `.env` and fill it in ──────────────────────────────── # # cp .env.example .env # # Everything is read from the environment; a local `.env` is loaded automatically. # Your AlphAI API key — required. Create one at https://alphai.io/account/api-keys ALPHAI_API_KEY=ak_live_your_key_here # ── What to watch ────────────────────────────────────────────────────────── # Comma-separated tickers. Use "trending" (or run with --trending) for # whole-market mode. Default when unset: NVDA,AAPL,MSFT,TSLA # WATCHLIST=NVDA,AAPL,MSFT,TSLA # MIN_RELEVANCE=7 # only alert on score >= this (1–10, default 7) # CATEGORIES=earnings,insider # restrict to these categories (optional) # EXCLUDE_CATEGORIES=crypto # drop these categories (optional) # PER_TICKER_LIMIT=5 # max articles per ticker per poll (default 5) # POLL_INTERVAL_SECONDS=300 # cadence in --watch mode (default 300) # STATE_FILE=.alerts-state.json # FIRST_RUN_BACKFILL=0 # deliver N newest on first run, else seed silently # ── Where to email it ────────────────────────────────────────────────────── # Required unless you run with --dry-run (which writes ./out/*.eml instead). # SMTP_HOST=smtp.gmail.com # SMTP_PORT=587 # SMTP_SECURITY=starttls # starttls (587) | ssl (465) | none # SMTP_USERNAME=you@gmail.com # SMTP_PASSWORD=your_app_password # Gmail: create an App Password, not your login # SMTP_TIMEOUT=30 # EMAIL_FROM=you@gmail.com # EMAIL_TO=you@gmail.com,teammate@example.com # comma-separated # EMAIL_SUBJECT_PREFIX=[AlphAI] # optional subject tag # EMAIL_OUT_DIR=out # where --dry-run writes .eml previews # Force dry-run via env (same as the --dry-run flag): # DRY_RUN=true # Four tickers at 300s cost ~1,152 requests/day before retries. # Free (100/day): use POLL_INTERVAL_SECONDS=3600 (~96/day), fewer tickers, # or a slower schedule; other calls and retries share the daily budget. # PER_TICKER_LIMIT supports 1-20 on every tier. # Dry runs use STATE_FILE + .dry-run; keep that file separate from delivery state.