Models & providers
Two wire protocols cover everything — pick a provider during setup or re-run
bwn init. Environment variables override stored keys, so CI just works.
| Provider | Kind | Key |
|---|---|---|
| Anthropic (Claude) | remote | ANTHROPIC_API_KEY |
| OpenAI | remote | OPENAI_API_KEY |
| OpenRouter | remote | OPENROUTER_API_KEY |
| Groq | remote | GROQ_API_KEY |
| Hugging Face | remote | HF_TOKEN |
| Ollama | local | — |
| llama.cpp server | local | — |
| LM Studio | local | — |
Local models
The native Ollama path probes each model's real context window and sets num_ctx so
long prompts aren't silently truncated. Tool calls emitted as tagged text by small coder models
(Qwen2.5-Coder, Gemma) are parsed reliably — a 1.5B model actually writes files.
Vision
Image and video attachments are gated per model: every current Claude model accepts images; OpenAI-compatible and Ollama models are detected by name (gpt-4o/o3/gemini, llava, qwen-vl, gemma3, llama3.2-vision, moondream, …). Text-only models get an explicit notice instead of silently dropped attachments. See Multimodal input.
Keys live in ~/.buildwithnexus/.env.keys (0600).