Skip to main content
NeuralCleave ships with 19 provider adapters, configured under [models] in config.toml. The active provider is chosen automatically per request (primaryfallbackfastlocal, based on task complexity), or forced to one provider at runtime via POST /api/v1/settings/model.

Supported providers

Every key also accepts ENV:VAR_NAME (reads an environment variable) or op://vault/item/field (resolves via the 1Password CLI) instead of a plaintext value.

Configuration

primary/fallback/fast/local are model IDs, not provider names — the provider is inferred from the ID’s prefix (claude-* → Anthropic, gemini-* → Google, grok-* → xAI, ollama/* → Ollama, openrouter/* → OpenRouter, etc.).

Ollama (fully local)

No API key required. Pull the model first: ollama pull llama3.2:1b.

Checking provider status

Live probing only works for providers with a documented, stable check (OpenAI-compatible GET /v1/models for OpenAI/Mistral/xAI/Moonshot/OpenRouter/Groq/Together/Fireworks/DeepSeek, Ollama’s GET /api/tags) — every other provider reports “not supported” rather than a guessed result. See API Reference → Overview for the matching GET /api/v1/models route.

Switching providers at runtime

Pass "provider": null to restore automatic task-based routing. The switch takes effect immediately for the next request — no restart needed.

Reasoning effort (“thinking”)

A normalized off|low|medium|high|xhigh|max ladder maps to each provider’s native reasoning control — Anthropic’s extended thinking (with a scaled token budget), xAI/OpenRouter’s reasoning_effort field, and Ollama’s think field (collapsed to a boolean: offfalse, anything else → true, since not every Ollama model accepts the 3-tier string form). Every other provider ignores it — notably DeepSeek, which has no per-request reasoning-effort field at all; its only reasoning lever is which model you configure (deepseek-chat vs. deepseek-reasoner).
Applies uniformly whether the reply is generated by ModelRouter.generate() (the 32 channel adapters) or generate_stream() (the Web UI and voice assistant) — both read the same /think level.

Cost tracking

Token counts and estimated USD cost (from a static per-model pricing table) are tracked automatically per generation:
Unpriced providers (OpenRouter, Azure, Bedrock, or any unrecognized model) are omitted from the cost total rather than reported as $0.00 — see Observability.

Privacy mode

With privacy_mode = true, NeuralCleave forces every request to Ollama regardless of the configured provider. Combined with local voice (faster-whisper + Kokoro) and local embeddings (all-MiniLM-L6-v2), zero bytes leave your machine. See Privacy Mode.