Xiaomi MiMo Providers: Pay-As-You-Go and Token Plan Setup
Configure the Xiaomi MiMo providers in OpenClaw, including pay-as-you-go and Token Plan keys, regional endpoint presets, auth environment variables, and onboarding flags. Useful for developers connecting MiMo text and TTS models.
Read this when
- You want Xiaomi MiMo models in OpenClaw
- You need Xiaomi MiMo auth or Token Plan setup
Xiaomi MiMo is the API platform serving MiMo models. The official external xiaomi plugin registers two text providers plus a speech (TTS) provider:
xiaomi: pay-as-you-go keys (sk-...)xiaomi-token-plan: Token Plan keys (tp-...) with regional endpoint presets
| Property | Value |
|---|---|
| Provider ids | xiaomi (pay-as-you-go), xiaomi-token-plan (Token Plan) |
| Auth env vars | XIAOMI_API_KEY, XIAOMI_TOKEN_PLAN_API_KEY |
| Onboarding flags | --auth-choice xiaomi-api-key, --auth-choice xiaomi-token-plan-cn, --auth-choice xiaomi-token-plan-sgp, --auth-choice xiaomi-token-plan-ams |
| Direct CLI flags | --xiaomi-api-key <key>, --xiaomi-token-plan-api-key <key> |
| API | OpenAI-compatible chat completions (openai-completions) |
| Speech contract | speechProviders: ["xiaomi"] |
| Base URLs | Pay-as-you-go: https://api.xiaomimimo.com/v1; Token Plan: token-plan-{cn,sgp,ams}.xiaomimimo.com/v1 |
| Default models | xiaomi/mimo-v2.6-pro, xiaomi-token-plan/mimo-v2.6-pro |
| TTS default | mimo-v2.5-tts, voice mimo_default; voicedesign model mimo-v2.5-tts-voicedesign |
Getting started
Install the plugin
openclaw plugins install @openclaw/xiaomi-provider
When a Gateway is running, the installation is applied to it automatically; if not, it takes effect at the next startup. See Apply changes and inspect.
Get the right key
Generate a pay-as-you-go key in the Xiaomi MiMo console, or go to your Token Plan subscription page and copy both the regional OpenAI-compatible base URL and the matching tp-... key.
Run onboarding
Pay-as-you-go:
openclaw onboard --auth-choice xiaomi-api-key
Token Plan:
openclaw onboard --auth-choice xiaomi-token-plan-sgp
Keys can also be supplied directly:
openclaw onboard --auth-choice xiaomi-api-key --xiaomi-api-key "$XIAOMI_API_KEY"
openclaw onboard --auth-choice xiaomi-token-plan-sgp --xiaomi-token-plan-api-key "$XIAOMI_TOKEN_PLAN_API_KEY"
Verify the model is available
openclaw models list --provider xiaomi
openclaw models list --provider xiaomi-token-plan
Tip
Onboarding checks the key's shape and raises a warning if a
tp-...key is placed on the pay-as-you-go path, or if ansk-...key is placed on the Token Plan path.
Pay-as-you-go catalog
| Model ref | Input | Context | Max output | Reasoning | Notes |
|---|---|---|---|---|---|
xiaomi/mimo-v2.6-pro | text, image | 1,048,576 | 131,072 | Yes | Default flagship |
xiaomi/mimo-v2.6-flash | text, image | 1,048,576 | 131,072 | Yes | Efficient model |
xiaomi/mimo-v2.6-pro-ultraspeed | text, image | 1,048,576 | 131,072 | Yes | Up to 20x output speed |
xiaomi/mimo-v2.5 | text, image | 1,048,576 | 131,072 | Yes | Previous generation |
xiaomi/mimo-v2.5-pro | text | 1,048,576 | 131,072 | Yes | Previous generation |
Token Plan catalog
Setting up Token Plan stores connection settings and aliases, and generated catalog rows are not copied into your config.
An explicit models.mode: "replace" leaves catalog seeding on; any custom model rows you have remain untouched.
Pick the Token Plan auth choice that corresponds to the regional base URL displayed in Xiaomi's subscription UI:
| Auth choice | Base URL |
|---|---|
xiaomi-token-plan-cn | https://token-plan-cn.xiaomimimo.com/v1 |
xiaomi-token-plan-sgp | https://token-plan-sgp.xiaomimimo.com/v1 |
xiaomi-token-plan-ams | https://token-plan-ams.xiaomimimo.com/v1 |
| Model ref | Input | Context | Max output | Reasoning | Notes |
|---|---|---|---|---|---|
xiaomi-token-plan/mimo-v2.6-pro | text, image | 1,048,576 | 131,072 | Yes | Default model |
xiaomi-token-plan/mimo-v2.6-flash | text, image | 1,048,576 | 131,072 | Yes | Efficient model |
xiaomi-token-plan/mimo-v2.5-pro | text | 1,048,576 | 131,072 | Yes | Previous generation |
xiaomi-token-plan/mimo-v2.5 | text, image | 1,048,576 | 131,072 | Yes | Previous generation |
Resolution of xiaomi-token-plan requires a regional base URL. Only two routes are supported: a Token Plan onboarding choice, or an explicit models.providers.xiaomi-token-plan config block where baseUrl is set. Without either one, the provider is not offered.
Reasoning models
OpenClaw's /think directive is supported by the MiMo V2.5 and V2.6 text models, with the levels off, minimal, low, medium, high, xhigh, and max (high by default).
Text-to-speech
Xiaomi MiMo is also registered by the xiaomi plugin as a speech provider for tts. Xiaomi's chat-completions TTS contract is called with the text supplied as an assistant message, and any optional style guidance supplied as a user message.
| Property | Value |
|---|---|
| TTS id | xiaomi (mimo alias) |
| Auth | XIAOMI_API_KEY |
| API | POST /v1/chat/completions with audio |
| Default | mimo-v2.5-tts, voice mimo_default |
| Output | MP3 by default; WAV when configured |
{
tts: {
auto: "always",
provider: "xiaomi",
providers: {
xiaomi: {
apiKey: "${XIAOMI_API_KEY}",
model: "mimo-v2.5-tts",
speakerVoice: "mimo_default",
format: "mp3",
style: "Bright, natural, conversational tone.",
},
},
},
}
Voices included out of the box: mimo_default, default_zh, default_en, Mia, Chloe, Milo, Dean. The preset-voice model mimo-v2.5-tts takes audio.voice, which is why OpenClaw sends speakerVoice when that model is used.
Rather than a preset voice id, the voicedesign model mimo-v2.5-tts-voicedesign builds the voice from a natural-language style prompt. Point style at the voice description you want; OpenClaw passes it as the user message, passes the spoken text as the assistant message, and leaves out audio.voice when this model is in use.
{
tts: {
provider: "xiaomi",
providers: {
xiaomi: {
model: "mimo-v2.5-tts-voicedesign",
format: "wav",
style: "Warm, natural female voice with clear pronunciation.",
},
},
},
}
Where a channel asks for a voice-note synthesis target (Discord, Feishu, Matrix, Telegram, and WhatsApp), Xiaomi output is transcoded by OpenClaw to 48kHz mono Opus using ffmpeg before it is delivered.
Config example
{
env: { vars: { XIAOMI_API_KEY: "your-key" } },
agents: { defaults: { model: { primary: "xiaomi/mimo-v2.6-pro" } } },
models: {
mode: "merge",
providers: {
xiaomi: {
baseUrl: "https://api.xiaomimimo.com/v1",
api: "openai-completions",
apiKey: "XIAOMI_API_KEY",
models: [
{
id: "mimo-v2.6-pro",
name: "Xiaomi MiMo V2.6 Pro",
reasoning: true,
input: ["text", "image"],
contextWindow: 1048576,
maxTokens: 131072,
},
{
id: "mimo-v2.6-flash",
name: "Xiaomi MiMo V2.6 Flash",
reasoning: true,
input: ["text", "image"],
contextWindow: 1048576,
maxTokens: 131072,
},
],
},
},
},
}
The plugin manifest supplies pricing and compat flags, which is why the config example leaves out cost and compat so it does not drift from runtime behavior.
Token Plan:
{
env: { vars: { XIAOMI_TOKEN_PLAN_API_KEY: "tp-your-key" } },
agents: { defaults: { model: { primary: "xiaomi-token-plan/mimo-v2.6-pro" } } },
models: {
mode: "merge",
providers: {
"xiaomi-token-plan": {
baseUrl: "https://token-plan-sgp.xiaomimimo.com/v1",
api: "openai-completions",
apiKey: "XIAOMI_TOKEN_PLAN_API_KEY",
models: [
{
id: "mimo-v2.6-pro",
name: "Xiaomi MiMo V2.6 Pro",
reasoning: true,
input: ["text", "image"],
contextWindow: 1048576,
maxTokens: 131072,
},
{
id: "mimo-v2.6-flash",
name: "Xiaomi MiMo V2.6 Flash",
reasoning: true,
input: ["text", "image"],
contextWindow: 1048576,
maxTokens: 131072,
},
],
},
},
},
}
Instead of per-token USD pricing, Token Plan bills against the Credits of a fixed subscription. Its catalog rows therefore carry zero USD cost, and cost is omitted from the config example.
Auto-injection behavior
When XIAOMI_API_KEY is present in your environment or an auth profile exists, the xiaomi provider is enabled automatically. A regional base URL is required by xiaomi-token-plan, so the supported route is either the Token Plan onboarding choice or an explicit models.providers.xiaomi-token-plan config block.
Model details
- mimo-v2.6-pro - flagship reasoning model, and the default for both providers.
- mimo-v2.6-flash - efficient route for pay-as-you-go and Token Plan.
- mimo-v2.6-pro-ultraspeed - pay-as-you-go flagship route offering up to 20x output speed.
- mimo-v2.5 and mimo-v2.5-pro - compatibility routes from the previous generation.
Note
The
xiaomi/prefix applies to pay-as-you-go models. Thexiaomi-token-plan/prefix applies to Token Plan models.
Troubleshooting
- Should models fail to appear, check that the relevant key env var or auth profile exists and is valid.
- For Token Plan, check that the onboarding region you picked matches the base URL on the subscription page, and that the key begins with
tp-. - If the Gateway runs as a daemon, that process needs access to the key (in
~/.openclaw/.envor throughenv.shellEnv, for instance).
Warning
A key exported only in your interactive shell will not be seen by gateway processes run by the daemon. For availability that persists, set it through
~/.openclaw/.envorenv.shellEnvconfig.
Related
-
Model selection, How to pick providers, reference models, and configure failover behavior.
-
Thinking levels, Syntax of the
/thinkdirective and how levels map. -
Configuration reference, The complete OpenClaw configuration reference.
-
Xiaomi MiMo console, The Xiaomi MiMo dashboard and where API keys are managed.