Skip to main content
Nika’s stdlib v0.1 ships canonical providers local / self-hosted runners, cloud APIs, and deterministic mock. You select one with a single model: <provider>/<name> field. Local first · nothing leaves your machine unless a cloud provider is explicitly selected.
Canonical source: stdlib/providers-v0.1.md in the spec (counts from canon.yaml). The engine additionally carries an extended catalog of TOML records (crates/nika-catalog/data/llm-providers.toml) used for capability metadata — anything outside the canonical 14 routes through the openai + base_url escape hatch, not its own prefix.

Overview

Providers

canonical — local · cloud · mock

API dialects

3 — openai-chat (the 5 local + most cloud) · anthropic · gemini

Capability rules

in model-capabilities.toml

How to pick a provider

1

Pick your trust model

Local / self-hosted (Ollama / LM Studio / llama.cpp / LocalAI / vLLM) — zero key, zero egress, sovereign by default. EU cloud (Mistral). US frontier (Anthropic / OpenAI / Google). Aggregator (OpenRouter). Each has different residency and compliance trade-offs.
2

Check the `api_dialect`

All 5 local providers + most cloud providers speak openai-chat — same request shape, differing base URL. anthropic and gemini have native dialects.
3

Verify the backend is reachable

Local providers need their server running (e.g. the Ollama daemon on localhost:11434) — no key. Cloud providers declare an env_var (e.g., MISTRAL_API_KEY). nika doctor checks provider readiness before run.
4

Pick default vs cheap model

Every provider declares both. default_model is the capable tier; cheap_model is the cost-optimized tier. Capability rules in model-capabilities.toml determine which models support vision / tools / streaming / structured output.

By category

IDNameDialectEnv varExample model
ollamaOllama daemon (localhost:11434)openai-chat(none)llama3.1
lmstudioLM Studio (localhost:1234/v1)openai-chat(none)qwen2.5-14b-instruct
llamacppllama.cpp llama-server (localhost:8080/v1)openai-chat(none)qwen2.5-7b-instruct
localaiLocalAI (localhost:8080/v1)openai-chat(none)llama-3.1-8b-instruct
vllmvLLM OpenAI server (localhost:8000/v1)openai-chat(none)meta-llama-3.1-70b-instruct
The sovereign default. No API key, no cloud egress — model: ollama/llama3.1 runs offline / air-gapped. Any other OpenAI-compatible local server (Jan · llamafile · KoboldCpp) routes through the openai + base_url escape hatch.

Full alphabetical list

anthropic · deepseek · gemini · groq · llamacpp · lmstudio · localai · mistral · mock · ollama · openai · openrouter · vllm · xai total — local · cloud · test · matches canon.yaml in the spec repo. The engine’s extended capability catalog ( TOML records) is an implementation detail — extended IDs are reached via the openai + base_url escape hatch, never their own prefix.

Example: invoke a provider

nika: v1
workflow: multi-provider

tasks:
  - id: primary
    on_error: { skip: true }   # a dead provider skips (error preserved) · the gate below reads it
    infer:
      model: ollama/llama3.1                 # local · zero key
      prompt: "Explain linear algebra in one sentence."

  - id: fallback
    depends_on: [primary]
    when: "${{ tasks.primary.error != null }}"   # skip preserves the error · the fallback reads it
    infer:
      model: mistral/mistral-large
      prompt: "Explain linear algebra in one sentence."
infer: is live in v. Run nika doctor first to see which provider keys or local servers are available without printing secrets.

See also

Capability rules

The rules that govern which models support which features.

Concepts · Providers

How provider routing works at runtime.

Error codes

NIKA-1xx provider errors.

Schema

Workflow envelope, .nika.yaml top-level keys.