Providers
MiniMax
The bundled minimax plugin registers two providers plus five capabilities: chat, image generation, music generation, video generation, image understanding, speech (T2A v2), and web search.
| 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 |
MiniMax-Hailuo-2.3 |
Video generation | Text-to-video and image-to-video flows |
Model refs follow the auth path: minimax/<model> for API-key setups, minimax-portal/<model> for OAuth setups.
Getting started
OAuth (Coding Plan)
Best for: quick setup with MiniMax Coding Plan via OAuth, no API key required.
International
Run onboarding
openclaw onboard --auth-choice minimax-global-oauthResulting provider base URL: api.minimax.io.
Verify the model is available
openclaw models list --provider minimax-portalChina
Run onboarding
openclaw onboard --auth-choice minimax-cn-oauthResulting provider base URL: api.minimaxi.com.
Verify the model is available
openclaw models list --provider minimax-portalAPI key
Best for: hosted MiniMax with Anthropic-compatible API.
International
Run onboarding
openclaw onboard --auth-choice minimax-global-apiThis configures api.minimax.io as the base URL.
Verify the model is available
openclaw models list --provider minimaxChina
Run onboarding
openclaw onboard --auth-choice minimax-cn-apiThis configures api.minimaxi.com as the base URL.
Verify the model is available
openclaw models list --provider minimaxConfig example
{ 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, }, ], }, }, },}Configure via openclaw configure
Launch the wizard
openclaw configureSelect Model/auth
Choose Model/auth from the menu.
Choose a MiniMax auth option
| 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 on both minimax and minimax-portal, reusing the same MINIMAX_API_KEY or OAuth auth as the text models.
- Text-to-image generation and image-to-image editing (subject reference), both with aspect ratio control
- Up to 9 output images per request, 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
{ agents: { defaults: { imageGenerationModel: { primary: "minimax/image-01" }, }, },}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 instead. 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.
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 - Bundled model ids:
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,speech-01-turbo,speech-01-240228 - Auth resolution order:
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 (Feishu, Telegram, and other channels that request a voice-note-compatible attachment) are transcoded from MiniMax MP3 to 48kHz Opus with
ffmpeg, because e.g. 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.voiceId |
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:minimax-portal/music-2.6) - Also supports
music-2.6-free,music-cover, andmusic-cover-free - Prompt controls:
lyrics,instrumental - Output format:
mp3 - Session-backed runs detach through the shared task/status flow, including
action: "status"
{ agents: { defaults: { musicGenerationModel: { primary: "minimax/music-2.6" }, }, },}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:minimax-portal/MiniMax-Hailuo-2.3) - Also supports
MiniMax-Hailuo-2.3-Fast,MiniMax-Hailuo-02,I2V-01-Director,I2V-01-live, andI2V-01 - Modes: text-to-video and single-image reference flows
- Supports
resolution(768Por1080Pon Hailuo 2.3/02 models);aspectRatiois not supported and is ignored
{ agents: { defaults: { videoGenerationModel: { primary: "minimax/MiniMax-Hailuo-2.3" }, }, },}Image understanding
The MiniMax plugin registers image understanding separately from the text catalog:
| Provider ID | Default image model | PDF text extraction |
|---|---|---|
minimax |
MiniMax-VL-01 |
MiniMax-M2.7 |
minimax-portal |
MiniMax-VL-01 |
MiniMax-M2.7 |
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. PDF understanding uses MiniMax-M2.7 for text extraction only; MiniMax does not register a PDF-to-image conversion path.
Web search
The MiniMax plugin also registers web_search through the MiniMax Token Plan search API (/v1/coding_plan/search).
- 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.*.
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 an earlier wrapper already set the thinking field in the payload. 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 returns an empty content array with stop_reason: "end_turn" when thinking is disabled, so OpenClaw removes the implicit disabled default for M3 and, when a thinking level is set, forces thinking: { type: "adaptive" } instead.
Available thinking levels per model family:
| Model family | Levels | Default |
|---|---|---|
MiniMax-M3 |
off, adaptive |
adaptive |
MiniMax-M2.x |
off, minimal, low, medium, high |
off |
Fast mode
/fast on or params.fastMode: true rewrites MiniMax-M2.7 to MiniMax-M2.7-highspeed on the Anthropic-compatible stream path (api: "anthropic-messages", provider minimax or minimax-portal).
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.
{ 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/remainsorhttps://api.minimax.io/v1/token_plan/remains(requires a coding plan key). - Usage polling derives the host from
models.providers.minimax-portal.baseUrlormodels.providers.minimax.baseUrlwhen configured, so global setups usinghttps://api.minimax.io/anthropicpollapi.minimax.io. Missing or malformed base URLs keep the CN fallback for compatibility. - OpenClaw normalizes MiniMax coding-plan usage to the same
% leftdisplay used by other providers. MiniMax's rawusage_percent/usagePercentfields 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 fromstart_time/end_timewhen 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,minimax-portal, andminimax-portal-cnas the same MiniMax quota surface, and prefer stored MiniMax OAuth before falling back to Coding Plan key env vars.
Notes
- 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
Troubleshooting
"Unknown model: minimax/MiniMax-M3"
This usually means the MiniMax provider is not configured (no matching provider entry and no MiniMax auth profile/env key found). Fix by:
- Running
openclaw configureand selecting a MiniMax auth option, or - Adding the matching
models.providers.minimaxormodels.providers.minimax-portalblock 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, orminimax/MiniMax-M2.7-highspeed - OAuth path:
minimax-portal/MiniMax-M3,minimax-portal/MiniMax-M2.7, orminimax-portal/MiniMax-M2.7-highspeed
Then recheck with:
openclaw models listRelated
Choosing providers, model refs, and failover behavior.
Shared image tool parameters and provider selection.
Shared music tool parameters and provider selection.
Shared video tool parameters and provider selection.
Web search configuration via MiniMax Token Plan.
General troubleshooting and FAQ.