OpenClaw's MiniMax provider defaults to MiniMax M3.
MiniMax also provides:
- Bundled speech synthesis via T2A v2
- Bundled image understanding via
MiniMax-VL-01 - Bundled music generation via
music-2.6 - Bundled
web_searchthrough the MiniMax Token Plan search API
Provider split:
| Provider ID | Auth | Capabilities |
|---|---|---|
minimax | API key | Text, image generation, music generation, video generation, image understanding, speech, web search |
minimax-portal | OAuth | Text, image generation, music generation, video generation, image understanding, speech |
Built-in catalog
| Model | Type | Description |
|---|---|---|
MiniMax-M3 | Chat (reasoning) | Default hosted reasoning model |
MiniMax-M2.7 | Chat (reasoning) | Previous hosted reasoning model |
MiniMax-M2.7-highspeed | Chat (reasoning) | Faster M2.7 reasoning tier |
MiniMax-VL-01 | Vision | Image understanding model |
image-01 | Image generation | Text-to-image and image-to-image editing |
music-2.6 | Music generation | Default music model |
music-2.5 | Music generation | Previous music generation tier |
music-2.0 | Music generation | Legacy music generation tier |
MiniMax-Hailuo-2.3 | Video generation | Text-to-video and image reference flows |
Getting started
Choose your preferred auth method and follow the setup steps.
OAuth (Coding Plan)
**Best for:** quick setup with MiniMax Coding Plan via OAuth, no API key required.
International
Run onboarding
```bash
openclaw onboard --auth-choice minimax-global-oauth
```
This authenticates against `api.minimax.io`.
Verify the model is available
```bash
openclaw models list --provider minimax-portal
```
China
Run onboarding
```bash
openclaw onboard --auth-choice minimax-cn-oauth
```
This authenticates against `api.minimaxi.com`.
Verify the model is available
```bash
openclaw models list --provider minimax-portal
```
Note
OAuth setups use the `minimax-portal` provider id. Model refs follow the form `minimax-portal/MiniMax-M3`.
Tip
Referral link for MiniMax Coding Plan (10% off): [MiniMax Coding Plan](https://platform.minimax.io/subscribe/coding-plan?code=DbXJTRClnb&source=link)
API key
**Best for:** hosted MiniMax with Anthropic-compatible API.
International
Run onboarding
```bash
openclaw onboard --auth-choice minimax-global-api
```
This configures `api.minimax.io` as the base URL.
Verify the model is available
```bash
openclaw models list --provider minimax
```
China
Run onboarding
```bash
openclaw onboard --auth-choice minimax-cn-api
```
This configures `api.minimaxi.com` as the base URL.
Verify the model is available
```bash
openclaw models list --provider minimax
```
### Config example
```json5
{
env: { MINIMAX_API_KEY: "sk-..." },
agents: { defaults: { model: { primary: "minimax/MiniMax-M3" } } },
models: {
mode: "merge",
providers: {
minimax: {
baseUrl: "https://api.minimax.io/anthropic",
apiKey: "${MINIMAX_API_KEY}",
api: "anthropic-messages",
models: [
{
id: "MiniMax-M3",
name: "MiniMax M3",
reasoning: true,
input: ["text", "image"],
cost: { input: 0.6, output: 2.4, cacheRead: 0.12, cacheWrite: 0 },
contextWindow: 1000000,
maxTokens: 131072,
},
{
id: "MiniMax-M2.7",
name: "MiniMax M2.7",
reasoning: true,
input: ["text"],
cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 },
contextWindow: 204800,
maxTokens: 131072,
},
{
id: "MiniMax-M2.7-highspeed",
name: "MiniMax M2.7 Highspeed",
reasoning: true,
input: ["text"],
cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0.375 },
contextWindow: 204800,
maxTokens: 131072,
},
],
},
},
},
}
```
Warning
On the Anthropic-compatible streaming path, OpenClaw disables MiniMax M2.x thinking by default unless you explicitly set `thinking` yourself. M2.x's streaming endpoint emits `reasoning_content` in OpenAI-style delta chunks instead of native Anthropic thinking blocks, which can leak internal reasoning into visible output if left enabled implicitly. MiniMax-M3 (and forward-compatible M3.x) is exempt from this default: M3 emits proper Anthropic thinking blocks and requires thinking active to produce visible content, so OpenClaw keeps M3 on the provider's omitted/adaptive thinking path.
Note
API-key setups use the `minimax` provider id. Model refs follow the form `minimax/MiniMax-M3`.
Configure via openclaw configure
Use the interactive config wizard to set MiniMax without editing JSON:
Launch the wizard
```bash
openclaw configure
```
Select Model/auth
Choose **Model/auth** from the menu.
Choose a MiniMax auth option
Pick one of the available MiniMax options:
| Auth choice | Description |
| --- | --- |
| `minimax-global-oauth` | International OAuth (Coding Plan) |
| `minimax-cn-oauth` | China OAuth (Coding Plan) |
| `minimax-global-api` | International API key |
| `minimax-cn-api` | China API key |
Pick your default model
Select your default model when prompted.
Capabilities
Image generation
The MiniMax plugin registers the image-01 model for the image_generate tool. It supports:
- Text-to-image generation with aspect ratio control
- Image-to-image editing (subject reference) with aspect ratio control
- Up to 9 output images per request
- Up to 1 reference image per edit request
- Supported aspect ratios:
1:1,16:9,4:3,3:2,2:3,3:4,9:16,21:9
To use MiniMax for image generation, set it as the image generation provider:
{
agents: {
defaults: {
imageGenerationModel: { primary: "minimax/image-01" },
},
},
}The plugin uses the same MINIMAX_API_KEY or OAuth auth as the text models. No additional configuration is needed if MiniMax is already set up.
Both minimax and minimax-portal register image_generate with the same image-01 model. API-key setups use MINIMAX_API_KEY; OAuth setups can use the bundled minimax-portal auth path instead.
Image generation always uses MiniMax's dedicated image endpoint (/v1/image_generation) and ignores models.providers.minimax.baseUrl, since that field configures the chat/Anthropic-compatible base URL. Set MINIMAX_API_HOST=https://api.minimaxi.com to route image generation through the CN endpoint; the default global endpoint is https://api.minimax.io.
When onboarding or API-key setup writes explicit models.providers.minimax entries, OpenClaw materializes MiniMax-M3, MiniMax-M2.7, and MiniMax-M2.7-highspeed as chat models. M3 advertises text and image input; image understanding remains exposed separately through the plugin-owned MiniMax-VL-01 media provider.
Note
See Image Generation for shared tool parameters, provider selection, and failover behavior.
Text-to-speech
The bundled minimax plugin registers MiniMax T2A v2 as a speech provider for messages.tts.
- Default TTS model:
speech-2.8-hd - Default voice:
English_expressive_narrator - Supported bundled model ids include
speech-2.8-hd,speech-2.8-turbo,speech-2.6-hd,speech-2.6-turbo,speech-02-hd,speech-02-turbo,speech-01-hd, andspeech-01-turbo. - Auth resolution is
messages.tts.providers.minimax.apiKey, thenminimax-portalOAuth/token auth profiles, then Token Plan environment keys (MINIMAX_OAUTH_TOKEN,MINIMAX_CODE_PLAN_KEY,MINIMAX_CODING_API_KEY), thenMINIMAX_API_KEY. - If no TTS host is configured, OpenClaw reuses the configured
minimax-portalOAuth host and strips Anthropic-compatible path suffixes such as/anthropic. - Normal audio attachments stay MP3.
- Voice-note targets such as Feishu and Telegram are transcoded from MiniMax MP3 to 48kHz Opus with
ffmpeg, because the Feishu/Lark file API only acceptsfile_type: "opus"for native audio messages. - MiniMax T2A accepts fractional
speedandvol, butpitchis sent as an integer; OpenClaw truncates fractionalpitchvalues before the API request.
| Setting | Env var | Default | Description |
|---|---|---|---|
messages.tts.providers.minimax.baseUrl | MINIMAX_API_HOST | https://api.minimax.io | MiniMax T2A API host. |
messages.tts.providers.minimax.model | MINIMAX_TTS_MODEL | speech-2.8-hd | TTS model id. |
messages.tts.providers.minimax.speakerVoiceId | MINIMAX_TTS_VOICE_ID | English_expressive_narrator | Voice id used for speech output. |
messages.tts.providers.minimax.speed | 1.0 | Playback speed, 0.5..2.0. | |
messages.tts.providers.minimax.vol | 1.0 | Volume, (0, 10]. | |
messages.tts.providers.minimax.pitch | 0 | Integer pitch shift, -12..12. |
Music generation
The bundled MiniMax plugin registers music generation through the shared music_generate tool for both minimax and minimax-portal.
- Default music model:
minimax/music-2.6 - OAuth music model:
minimax-portal/music-2.6 - Also supports
minimax/music-2.5andminimax/music-2.0 - Prompt controls:
lyrics,instrumental - Output format:
mp3 - Session-backed runs detach through the shared task/status flow, including
action: "status"
To use MiniMax as the default music provider:
{
agents: {
defaults: {
musicGenerationModel: {
primary: "minimax/music-2.6",
},
},
},
}Note
See Music Generation for shared tool parameters, provider selection, and failover behavior.
Video generation
The bundled MiniMax plugin registers video generation through the shared video_generate tool for both minimax and minimax-portal.
- Default video model:
minimax/MiniMax-Hailuo-2.3 - OAuth video model:
minimax-portal/MiniMax-Hailuo-2.3 - Modes: text-to-video and single-image reference flows
- Supports
aspectRatioandresolution
To use MiniMax as the default video provider:
{
agents: {
defaults: {
videoGenerationModel: {
primary: "minimax/MiniMax-Hailuo-2.3",
},
},
},
}Note
See Video Generation for shared tool parameters, provider selection, and failover behavior.
Image understanding
The MiniMax plugin registers image understanding separately from the text catalog:
| Provider ID | Default image model |
|---|---|
minimax | MiniMax-VL-01 |
minimax-portal | MiniMax-VL-01 |
That is why automatic media routing can use MiniMax image understanding even when the bundled text-provider catalog also includes M3 image-capable chat refs.
Web search
The MiniMax plugin also registers web_search through the MiniMax Token Plan search API.
- Provider id:
minimax - Structured results: titles, URLs, snippets, related queries
- Preferred env var:
MINIMAX_CODE_PLAN_KEY - Accepted env aliases:
MINIMAX_CODING_API_KEY,MINIMAX_OAUTH_TOKEN - Compatibility fallback:
MINIMAX_API_KEYwhen it already points at a token-plan credential - Region reuse:
plugins.entries.minimax.config.webSearch.region, thenMINIMAX_API_HOST, then MiniMax provider base URLs - Search stays on provider id
minimax; OAuth CN/global setup can steer region indirectly throughmodels.providers.minimax-portal.baseUrland can provide bearer auth throughMINIMAX_OAUTH_TOKEN
Config lives under plugins.entries.minimax.config.webSearch.*.
Note
See MiniMax Search for full web search configuration and usage.
Advanced configuration
Configuration options
| Option | Description |
| --- | --- |
| `models.providers.minimax.baseUrl` | Prefer `https://api.minimax.io/anthropic` (Anthropic-compatible); `https://api.minimax.io/v1` is optional for OpenAI-compatible payloads |
| `models.providers.minimax.api` | Prefer `anthropic-messages`; `openai-completions` is optional for OpenAI-compatible payloads |
| `models.providers.minimax.apiKey` | MiniMax API key (`MINIMAX_API_KEY`) |
| `models.providers.minimax.models` | Define `id`, `name`, `reasoning`, `contextWindow`, `maxTokens`, `cost` |
| `agents.defaults.models` | Alias models you want in the allowlist |
| `models.mode` | Keep `merge` if you want to add MiniMax alongside built-ins |
Thinking defaults
On `api: "anthropic-messages"`, OpenClaw injects `thinking: { type: "disabled" }` for MiniMax M2.x models unless thinking is already explicitly set in params/config.
This prevents M2.x's streaming endpoint from emitting `reasoning_content` in OpenAI-style delta chunks, which would leak internal reasoning into visible output.
MiniMax-M3 (and M3.x) is exempt: M3 emits proper Anthropic thinking blocks and returns an empty `content` array with `stop_reason: "end_turn"` when thinking is disabled, so the wrapper keeps M3 on the provider's omitted/adaptive thinking path.
Fast mode
`/fast on` or `params.fastMode: true` rewrites `MiniMax-M2.7` to `MiniMax-M2.7-highspeed` on the Anthropic-compatible stream path.
Fallback example
**Best for:** keep your strongest latest-generation model as primary, fail over to MiniMax M2.7. Example below uses Opus as a concrete primary; swap to your preferred latest-gen primary model.
```json5
{
env: { MINIMAX_API_KEY: "sk-..." },
agents: {
defaults: {
models: {
"anthropic/claude-opus-4-6": { alias: "primary" },
"minimax/MiniMax-M2.7": { alias: "minimax" },
},
model: {
primary: "anthropic/claude-opus-4-6",
fallbacks: ["minimax/MiniMax-M2.7"],
},
},
},
}
```
Coding Plan usage details
- Coding Plan usage API: `https://api.minimaxi.com/v1/token_plan/remains` or `https://api.minimax.io/v1/token_plan/remains` (requires a coding plan key).
- Usage polling derives the host from `models.providers.minimax-portal.baseUrl` or `models.providers.minimax.baseUrl` when configured, so global setups using `https://api.minimax.io/anthropic` poll `api.minimax.io`. Missing or malformed base URLs keep the CN fallback for compatibility.
- OpenClaw normalizes MiniMax coding-plan usage to the same `% left` display used by other providers. MiniMax's raw `usage_percent` / `usagePercent` fields are remaining quota, not consumed quota, so OpenClaw inverts them. Count-based fields win when present.
- When the API returns `model_remains`, OpenClaw prefers the chat-model entry, derives the window label from `start_time` / `end_time` when needed, and includes the selected model name in the plan label so coding-plan windows are easier to distinguish.
- Usage snapshots treat `minimax`, `minimax-cn`, and `minimax-portal` as the same MiniMax quota surface, and prefer stored MiniMax OAuth before falling back to Coding Plan key env vars.
Notes
- Model refs follow the auth path:
- API-key setup:
minimax/<model> - OAuth setup:
minimax-portal/<model>
- API-key setup:
- Default chat model:
MiniMax-M3 - Alternate chat models:
MiniMax-M2.7,MiniMax-M2.7-highspeed - Onboarding and direct API-key setup write model definitions for M3 and both M2.7 variants
- Image understanding uses the plugin-owned
MiniMax-VL-01media provider - Update pricing values in
models.jsonif you need exact cost tracking - Use
openclaw models listto confirm the current provider id, then switch withopenclaw models set minimax/MiniMax-M3oropenclaw models set minimax-portal/MiniMax-M3
Tip
Referral link for MiniMax Coding Plan (10% off): MiniMax Coding Plan
Note
See Model providers for provider rules.
Troubleshooting
Details
This usually means the **MiniMax provider is not configured** (no matching provider entry and no MiniMax auth profile/env key found). A fix for this detection is in **2026.1.12**. Fix by:
- Upgrading to **2026.1.12** (or run from source `main`), then restarting the gateway.
- Running `openclaw configure` and selecting a **MiniMax** auth option, or
- Adding the matching `models.providers.minimax` or `models.providers.minimax-portal` block manually, or
- Setting `MINIMAX_API_KEY`, `MINIMAX_OAUTH_TOKEN`, or a MiniMax auth profile so the matching provider can be injected.
Make sure the model id is **case-sensitive**:
- API-key path: `minimax/MiniMax-M3`, `minimax/MiniMax-M2.7`, or `minimax/MiniMax-M2.7-highspeed`
- OAuth path: `minimax-portal/MiniMax-M3`, `minimax-portal/MiniMax-M2.7`, or `minimax-portal/MiniMax-M2.7-highspeed`
Then recheck with:
```bash
openclaw models list
```
Note
More help: Troubleshooting and FAQ.
Related
- Model selection — Choosing providers, model refs, and failover behavior.
- Image generation — Shared image tool parameters and provider selection.
- Music generation — Shared music tool parameters and provider selection.
- Video generation — Shared video tool parameters and provider selection.
- MiniMax Search — Web search configuration via MiniMax Token Plan.
- Troubleshooting — General troubleshooting and FAQ.