# Citelens configuration — copy to `.env` and fill in. # Everything is optional for a first run: with no key set, Citelens uses a # deterministic mock engine so the full loop works offline. Add a real key to # switch to live answers automatically. # --- GEO engines --- # A run hits every engine. Each one runs live if its key is set, otherwise it # falls back to the mock — so you can enable as many or as few as you like. # Sentiment classification also uses the Gemini key when present. # Gemini (default, free tier): https://aistudio.google.com/apikey GEMINI_API_KEY= GEMINI_MODEL=gemini-2.5-flash # Claude (Anthropic web search): https://console.anthropic.com ANTHROPIC_API_KEY= ANTHROPIC_MODEL=claude-haiku-4-5 # ChatGPT (OpenAI Responses + web search): https://platform.openai.com OPENAI_API_KEY= OPENAI_MODEL=gpt-4o-mini # Perplexity (sonar, native citations): https://www.perplexity.ai/settings/api PERPLEXITY_API_KEY= PERPLEXITY_MODEL=sonar # --- Free browser mode (no API keys, no spend) --- # Set CITELENS_BROWSER=1 to drive the real logged-in web UIs instead of the APIs. # A run then hits Perplexity + Google AI Overview (no login) and ChatGPT + Gemini # (log in once via the Connections page — the session is saved on disk). # Experimental + opt-in: it automates your own browser, so it's slower and more # fragile than the API path, and may be subject to each site's terms of use. # CITELENS_BROWSER=1 # Run the browser without a visible window. Leave OFF for first-time logins. # CITELENS_HEADLESS=1 # --- Storage --- # SQLite file location. Defaults to ./citelens.db # CITELENS_DB=./citelens.db