Mistral Provider: Models, Voxtral Transcription, and Embeddings
Learn how to use Mistral models and Voxtral transcription with OpenClaw. This page covers setup, API key generation, and the four contracts registered by the bundled mistral plugin.
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 bundled mistral plugin registers four contracts: chat completions, media understanding (Voxtral batch transcription), realtime STT for Voice Call (Voxtral Realtime), and memory embeddings (mistral-embed).
| Property | Value |
|---|---|
| Provider id | mistral |
| Plugin | bundled, enabled by default |
| Auth env var | MISTRAL_API_KEY |
| Onboarding flag | --auth-choice mistral-api-key |
| Direct CLI flag | --mistral-api-key <key> |
| API | OpenAI-compatible (openai-completions) |
| Base URL | https://api.mistral.ai/v1 |
| Default model | mistral/mistral-large-latest |
| Embedding model | mistral-embed |
| Voxtral batch | voxtral-mini-latest (audio transcription) |
| Voxtral realtime | voxtral-mini-transcribe-realtime-2602 |
Getting started
Get your API key
Generate an API key in the Mistral Console.
Run onboarding
openclaw onboard --auth-choice mistral-api-key
Or supply the key directly:
openclaw onboard --mistral-api-key "$MISTRAL_API_KEY"
Set a default model
{
env: { 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 ref | Input | Context | Max output | Notes |
|---|---|---|---|---|
mistral/mistral-large-latest | text, image | 262,144 | 16,384 | Default model |
mistral/mistral-medium-2508 | text, image | 262,144 | 8,192 | Mistral Medium 3.1 |
mistral/mistral-medium-3-5 | text, image | 262,144 | 8,192 | Mistral Medium 3.5; adjustable reasoning |
mistral/mistral-small-latest | text, image | 262,144 | 16,384 | Mistral Small 4 latest; adjustable reasoning_effort |
mistral/mistral-small-2603 | text, image | 262,144 | 16,384 | Mistral Small 4 pinned; adjustable reasoning_effort |
mistral/pixtral-large-latest | text, image | 128,000 | 32,768 | Pixtral |
mistral/codestral-latest | text | 256,000 | 4,096 | Coding |
mistral/devstral-medium-latest | text | 262,144 | 32,768 | Devstral 2 |
mistral/magistral-small | text | 128,000 | 40,000 | Reasoning-enabled |
Browse the bundled catalog row before changing config:
openclaw models list --all --provider mistral --plain
Smoke-test a model without starting the Gateway:
openclaw infer model run --local \
--model mistral/mistral-medium-3-5 \
--prompt "Reply with exactly: mistral-ok" \
--json
Audio transcription (Voxtral)
Use Voxtral for batch audio transcription through the media understanding pipeline:
{
tools: {
media: {
audio: {
enabled: true,
models: [{ provider: "mistral", model: "voxtral-mini-latest" }],
},
},
},
}
Tip
The media transcription path uses
/v1/audio/transcriptions. The default audio model for Mistral isvoxtral-mini-latest.
Voice Call streaming STT
The bundled mistral plugin registers Voxtral Realtime as a Voice Call streaming STT provider.
| Setting | Config path | Default |
|---|---|---|
| API key | plugins.entries.voice-call.config.streaming.providers.mistral.apiKey | Falls back to MISTRAL_API_KEY |
| Model | ...mistral.model | voxtral-mini-transcribe-realtime-2602 |
| Encoding | ...mistral.encoding | pcm_mulaw |
| Sample rate | ...mistral.sampleRate | 8000 |
| Target delay | ...mistral.targetStreamingDelayMs | 800 |
{
plugins: {
entries: {
"voice-call": {
config: {
streaming: {
enabled: true,
provider: "mistral",
providers: {
mistral: {
apiKey: "${MISTRAL_API_KEY}",
targetStreamingDelayMs: 800,
},
},
},
},
},
},
},
}
Note
OpenClaw defaults Mistral realtime STT to
pcm_mulawat 8 kHz so Voice Call can forward Twilio media frames directly. Useencoding: "pcm_s16le"and a matchingsampleRateonly if 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 support adjustable reasoning on the Chat Completions API via reasoning_effort (none minimizes extra thinking in the output; high surfaces full thinking traces before the final answer).
OpenClaw maps the session thinking level to Mistral's API:
| OpenClaw thinking level | Mistral reasoning_effort |
|---|---|
| off / minimal | none |
| low / medium / high / xhigh / adaptive / max | high |
Warning
Avoid combining Medium 3.5 reasoning mode with
temperature: 0; the Mistral HTTP API has been reported to rejectreasoning_effort="high"plustemperature: 0with a 400 response. Leave temperature unset, or turn thinking off/minimal so OpenClaw sendsreasoning_effort: "none"before you set a low temperature.
Example model-scoped config for Medium 3.5 reasoning:
{
agents: {
defaults: {
model: { primary: "mistral/mistral-medium-3-5" },
models: {
"mistral/mistral-medium-3-5": {
params: { thinking: "high" },
},
},
},
},
}
Note
Other bundled Mistral catalog models do not use this parameter. Keep using
magistral-*models when you want Mistral's native reasoning-first behavior.
Memory embeddings
Mistral can serve memory embeddings via /v1/embeddings (default model: mistral-embed):
{
memory: {
search: { provider: "mistral" },
},
}
Auth and base URL
- Mistral auth uses
MISTRAL_API_KEY(Bearer header). - Provider base URL defaults to
https://api.mistral.ai/v1and accepts the standard OpenAI-compatible chat-completions request shape. - Onboarding default model is
mistral/mistral-large-latest. - Override the base URL under
models.providers.mistral.baseUrlonly when Mistral explicitly publishes a regional endpoint you need.
Related
-
Model selection, Choosing providers, model refs, and failover behavior.
-
Media understanding, Audio transcription setup and provider selection.