# LLM backend credentials. # # Two families, selected with `[llm] provider`. Set the key for the one you use # and leave the rest blank. # # 1. Metered API — set the matching key below. # 2. Subscription CLI — set NOTHING here. `provider = "claude_cli"` drives # `claude` (Claude Code, OAuth) and `provider = "codex_cli"` drives `codex` # (ChatGPT login). Sign in once by running `claude` (or `codex login`). # Any ANTHROPIC_API_KEY / OPENAI_API_KEY in your environment is deliberately # stripped from the CLI subprocess so a call can never silently fall back to # metered API billing. # # Either way, check the whole chain with `co-scientist doctor`. # provider = "openrouter" (the default). One key, 200+ models from every # vendor, and [models] can point each agent at a different one. OPENROUTER_API_KEY= # provider = "openai" or "openai_compatible". # Also serves embeddings under any backend — see below. # # CAUTION: this key takes precedence over every OpenAI-compatible preset's own # key, OPENROUTER_API_KEY included. A stray one here gets sent to OpenRouter and # rejected — leave it blank unless you are actually using OpenAI, or need it for # embeddings while running a non-preset provider. OPENAI_API_KEY= # Talking to one vendor directly instead of going through OpenRouter. ANTHROPIC_API_KEY= GEMINI_API_KEY= GROQ_API_KEY= TOGETHER_API_KEY= MISTRAL_API_KEY= # provider = "ollama" is keyless; it talks to localhost:11434. # Embeddings — always a hosted call, whichever backend runs the agents. # No agent CLI exposes an embedding endpoint, and Proximity/dedup needs real # semantic vectors. Voyage is the default provider; OPENAI_API_KEY above is the # fallback. With neither, dedup degrades to a local hash embedder that only # catches literal token overlap. VOYAGE_API_KEY= # Web search (Tavily primary, Brave fallback). With neither set, the # `web_search` tool is not registered at all and agents rely on # PubMed / arXiv / Europe PMC, which need no key. TAVILY_API_KEY= BRAVE_API_KEY= # Optional: improves PubMed / OpenAlex rate limits. NCBI_API_KEY= OPENALEX_API_KEY=