Mistral Provider: Chat, Voxtral Transcription, and Embeddings

Configure the Mistral provider plugin for OpenClaw, covering chat completions, Voxtral batch and realtime transcription, and mistral-embed memory embeddings. Useful for developers wiring Mistral models into their setup.

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 external mistral plugin ships 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

When a Gateway is already running, installation takes effect immediately; if not, it applies at the next startup. Refer to Apply changes and inspect.

Get your API key

Generate an API key from the Mistral Console.

Run onboarding

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

Alternatively, supply the key inline:

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

Check the plugin catalog row before you edit config:

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)

Route batch audio transcription through the media understanding pipeline with Voxtral:

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

Tip

The media transcription path relies on /v1/audio/transcriptions. For Mistral, the default audio model is voxtral-mini-latest.

Voice Call streaming STT

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

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 through unchanged. Switch to encoding: "pcm_s16le" with a matching sampleRate only when your upstream stream already carries raw PCM.

Advanced configuration

Adjustable reasoning

mistral/mistral-small-latest, mistral/mistral-small-2603, and mistral/mistral-medium-3-5 all allow adjustable reasoning when using the Chat Completions API through reasoning_effort. With none, the output carries a minimum of extra thinking; with high, the complete thinking traces appear ahead of the final answer.

Thinking starts out off by default. The session thinking levels below are what OpenClaw accepts, and it translates them 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. Reports indicate the Mistral HTTP API returns a 400 when reasoning_effort="high" is sent together with temperature: 0. Either leave temperature unset, or set thinking to off/minimal so that OpenClaw transmits reasoning_effort: "none" before you apply a low temperature.

Sample 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 applies to no other model in the Mistral catalog. Mistral's own Magistral models are deprecated. For current API models, apply adjustable reasoning to Mistral Small 4 or Mistral Medium 3.5.

Memory embeddings

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

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

Auth and base URL

  • Authentication with Mistral goes through MISTRAL_API_KEY (a Bearer header).
  • The provider base URL is https://api.mistral.ai/v1 unless changed, and it takes the standard OpenAI-compatible chat-completions request format.
  • The model chosen by default during onboarding is mistral/mistral-large-latest.
  • Only change the base URL under models.providers.mistral.baseUrl if Mistral officially publishes a regional endpoint that you require.
943 words · updated Sep 18, 2026