Mistral Provider: Models, Voxtral Transcription, and Embeddings

Learn how to integrate Mistral models, Voxtral batch and realtime transcription, and memory embeddings with OpenClaw. This guide covers setup, API keys, and configuration.

Read this when

  • You want to use Mistral models in OpenClaw
  • You want Voxtral realtime transcription for Voice Call
  • You need Mistral API key onboarding and model refs

The official external mistral plugin provides four contracts: chat completions, media understanding (Voxtral batch transcription), realtime STT for Voice Call (Voxtral Realtime), and memory embeddings (mistral-embed).

PropertyValue
Provider idmistral
Plugin@openclaw/mistral-provider
Auth env varMISTRAL_API_KEY
Onboarding flag--auth-choice mistral-api-key
Direct CLI flag--mistral-api-key <key>
APIOpenAI-compatible (openai-completions)
Base URLhttps://api.mistral.ai/v1
Default modelmistral/mistral-large-latest
Embedding modelmistral-embed
Voxtral batchvoxtral-mini-latest (audio transcription)
Voxtral realtimevoxtral-mini-transcribe-realtime-2602

Getting started

Install the plugin

openclaw plugins install @openclaw/mistral-provider
openclaw gateway restart

Get your API key

Head to the Mistral Console to generate an API key.

Run onboarding

openclaw onboard --auth-choice mistral-api-key

Alternatively, supply the key directly:

openclaw onboard --mistral-api-key "$MISTRAL_API_KEY"

Set a default model

{
  env: { vars: { MISTRAL_API_KEY: "sk-..." } },
  agents: { defaults: { model: { primary: "mistral/mistral-large-latest" } } },
}

Verify the model is available

openclaw models list --provider mistral

Built-in LLM catalog

Model refInputContextMax outputNotes
mistral/mistral-large-latesttext, image262,14416,384Default model
mistral/mistral-medium-3-5text, image262,1448,192Mistral Medium 3.5; adjustable reasoning
mistral/mistral-small-latesttext, image262,14416,384Mistral Small 4 latest; adjustable reasoning_effort
mistral/mistral-small-2603text, image262,14416,384Mistral Small 4 pinned; adjustable reasoning_effort
mistral/codestral-latesttext128,0004,096Coding
mistral/mistral-medium-2508text, image128,0008,192Deprecated; hidden; use Mistral Medium 3.5
mistral/devstral-medium-latesttext262,14432,768Deprecated; hidden; use Mistral Medium 3.5

Before changing config, inspect the plugin catalog row:

openclaw models list --all --provider mistral --plain

Test a model without launching the Gateway:

openclaw infer model run --local \
  --model mistral/mistral-medium-3-5 \
  --prompt "Reply with exactly: mistral-ok" \
  --json

Audio transcription (Voxtral)

Batch audio transcription via the media understanding pipeline is handled with Voxtral:

{
  tools: {
    media: {
      models: [{ provider: "mistral", model: "voxtral-mini-latest", capabilities: ["audio"] }],
      audio: {
        enabled: true,
      },
    },
  },
}

Tip

The media transcription path uses /v1/audio/transcriptions. The default audio model for Mistral is voxtral-mini-latest.

Voice Call streaming STT

Voxtral Realtime is registered as a Voice Call streaming STT provider by the mistral plugin.

SettingConfig pathDefault
API keyplugins.entries.voice-call.config.streaming.providers.mistral.apiKeyFalls back to MISTRAL_API_KEY
Model...mistral.modelvoxtral-mini-transcribe-realtime-2602
Encoding...mistral.encodingpcm_mulaw
Sample rate...mistral.sampleRate8000
Target delay...mistral.targetStreamingDelayMs800
{
  plugins: {
    entries: {
      "voice-call": {
        config: {
          streaming: {
            enabled: true,
            provider: "mistral",
            providers: {
              mistral: {
                apiKey: "${MISTRAL_API_KEY}",
                targetStreamingDelayMs: 800,
              },
            },
          },
        },
      },
    },
  },
}

Note

OpenClaw sets Mistral realtime STT to pcm_mulaw at 8 kHz by default, which lets Voice Call pass Twilio media frames straight through. Only apply encoding: "pcm_s16le" together with a matching sampleRate when your upstream stream is already raw PCM.

Advanced configuration

Adjustable reasoning

mistral/mistral-small-latest, mistral/mistral-small-2603, and mistral/mistral-medium-3-5 work with adjustable reasoning on the Chat Completions API through reasoning_effort (none cuts down on extra thinking in responses; high shows complete reasoning traces before the final answer).

The session thinking level is translated by OpenClaw into Mistral's API:

OpenClaw thinking levelMistral reasoning_effort
off / minimalnone
low / medium / high / xhigh / adaptive / maxhigh

Warning

Do not pair Medium 3.5 reasoning mode with temperature: 0; the Mistral HTTP API reportedly returns a 400 error when reasoning_effort="high" and temperature: 0 are combined. Keep temperature unset, or set thinking to off/minimal so OpenClaw sends reasoning_effort: "none" before you apply a low temperature.

Here is an example model-scoped configuration for Medium 3.5 reasoning:

{
  agents: {
    defaults: {
      model: { primary: "mistral/mistral-medium-3-5" },
      models: {
        "mistral/mistral-medium-3-5": {
          params: { thinking: "high" },
        },
      },
    },
  },
}

Note

This parameter is not used by other Mistral catalog models. Mistral's native Magistral models are deprecated; for current API models, use adjustable reasoning on Mistral Small 4 or Mistral Medium 3.5.

Memory embeddings

Memory embeddings can be served by Mistral through /v1/embeddings (default model: mistral-embed):

{
  memory: {
    search: { provider: "mistral" },
  },
}

Auth and base URL

  • Authentication for Mistral relies on MISTRAL_API_KEY (Bearer header).
  • The provider base URL defaults to https://api.mistral.ai/v1 and supports the standard OpenAI-compatible chat-completions request format.
  • The onboarding default model is mistral/mistral-large-latest.
  • Only override the base URL under models.providers.mistral.baseUrl when Mistral explicitly publishes a regional endpoint you require.
894 words · updated Aug 12, 2026