Xiaomi MiMo is the API platform for 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
```bash
apus plugins install @openclaw/xiaomi-provider
```
Installation applies to a running Gateway automatically; otherwise it takes effect
on the next startup. See [Apply changes and inspect](/plugins/manage-plugins#apply-changes-and-inspect).
Get the right key
Create a pay-as-you-go key in the [Xiaomi MiMo console](https://platform.xiaomimimo.com/#/console/api-keys), or open your Token Plan subscription page and copy the regional OpenAI-compatible base URL plus the matching `tp-...` key.
Run onboarding
Pay-as-you-go:
```bash
apus onboard --auth-choice xiaomi-api-key
```
Token Plan:
```bash
apus onboard --auth-choice xiaomi-token-plan-sgp
```
Or pass the keys directly:
```bash
apus onboard --auth-choice xiaomi-api-key --xiaomi-api-key "$XIAOMI_API_KEY"
apus onboard --auth-choice xiaomi-token-plan-sgp --xiaomi-token-plan-api-key "$XIAOMI_TOKEN_PLAN_API_KEY"
```
Verify the model is available
```bash
apus models list --provider xiaomi
apus models list --provider xiaomi-token-plan
```
Onboarding validates the key shape and warns when a tp-... key is entered into the pay-as-you-go path, or an sk-... key is entered into 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
Token Plan setup saves connection settings and aliases without copying generated catalog rows into your config.
Explicit models.mode: "replace" keeps catalog seeding enabled; custom model rows stay intact.
Choose the Token Plan auth choice that matches the regional base URL shown 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 |
xiaomi-token-plan needs a regional base URL to resolve. The supported path
is a Token Plan onboarding choice or an explicit
models.providers.xiaomi-token-plan config block with baseUrl set; the
provider is not offered without one of those.
Reasoning models
The MiMo V2.5 and V2.6 text models support
Apus's /think directive with levels off,
minimal, low, medium, high, xhigh, and max (default high).
Text-to-speech
The xiaomi plugin also registers Xiaomi MiMo as a speech provider
for tts. It calls Xiaomi's chat-completions TTS contract with the
text as an assistant message and optional style guidance 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.",
},
},
},
}
Built-in voices: mimo_default, default_zh, default_en, Mia, Chloe,
Milo, Dean. The preset-voice model mimo-v2.5-tts uses audio.voice, so
Apus sends speakerVoice for that model.
The voicedesign model mimo-v2.5-tts-voicedesign generates the voice from a
natural-language style prompt instead of a preset voice id. Set style to
the desired voice description; Apus sends it as the user message, sends
the spoken text as the assistant message, and omits audio.voice for this
model.
{
tts: {
provider: "xiaomi",
providers: {
xiaomi: {
model: "mimo-v2.5-tts-voicedesign",
format: "wav",
style: "Warm, natural female voice with clear pronunciation.",
},
},
},
}
For channels that request a voice-note synthesis target (Discord, Feishu,
Matrix, Telegram, and WhatsApp), Apus transcodes Xiaomi output to 48kHz
mono Opus with ffmpeg before delivery.
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,
},
],
},
},
},
}
Pricing and compat flags come from the plugin manifest, so the config example
omits cost and compat to avoid diverging 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,
},
],
},
},
},
}
Token Plan charges against a fixed subscription's Credits rather than per-token
USD pricing, so its catalog rows use zero USD cost and the config example omits
cost.
Auto-injection behavior
The `xiaomi` provider is auto-enabled when `XIAOMI_API_KEY` is set in your environment or an auth profile exists. `xiaomi-token-plan` needs a regional base URL, so the supported path is 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 default for both providers.
- **mimo-v2.6-flash** - efficient pay-as-you-go and Token Plan route.
- **mimo-v2.6-pro-ultraspeed** - pay-as-you-go flagship route with up to 20x output speed.
- **mimo-v2.5** and **mimo-v2.5-pro** - previous-generation compatibility routes.
Pay-as-you-go models use the `xiaomi/` prefix. Token Plan models use the `xiaomi-token-plan/` prefix.
Troubleshooting
- If models do not appear, confirm the relevant key env var or auth profile is present and valid.
- For Token Plan, confirm the chosen onboarding region matches the subscription page base URL and that the key starts with `tp-`.
- When the Gateway runs as a daemon, ensure the key is available to that process (for example in `~/.apus/.env` or via `env.shellEnv`).
Keys set only in your interactive shell are not visible to daemon-managed gateway processes. Use `~/.apus/.env` or `env.shellEnv` config for persistent availability.
Related
Model selection
Choosing providers, model refs, and failover behavior.
Thinking levels
`/think` directive syntax and level mapping.
Configuration reference
Full Apus configuration reference.
Xiaomi MiMo console
Xiaomi MiMo dashboard and API key management.