Files
openclaw/docs/providers/xiaomi.md
Peter Steinberger f7d7148cf0 docs: rewrite published docs grounded in current source (#100142)
Source-grounded rewrite of 529 published docs pages with per-unit information-loss verification: 1,713 factual corrections cited to src/**, generated surfaces regenerated, frontmatter titles preserved for i18n, release notes pages untouched. All docs gates green.

Closes #100141
2026-07-05 00:32:47 -04:00

12 KiB

summary, read_when, title
summary read_when title
Use Xiaomi MiMo pay-as-you-go and Token Plan models with OpenClaw
You want Xiaomi MiMo models in OpenClaw
You need Xiaomi MiMo auth or Token Plan setup
Xiaomi MiMo

Xiaomi MiMo is the API platform for MiMo models. The bundled xiaomi plugin (enabledByDefault: true, no install step) 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-flash, xiaomi-token-plan/mimo-v2.5-pro
TTS default mimo-v2.5-tts, voice mimo_default; voicedesign model mimo-v2.5-tts-voicedesign

Getting started

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. Pay-as-you-go:
```bash
openclaw onboard --auth-choice xiaomi-api-key
```

Token Plan:

```bash
openclaw onboard --auth-choice xiaomi-token-plan-sgp
```

Or pass the keys directly:

```bash
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"
```
```bash openclaw models list --provider xiaomi openclaw 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-flash text 262,144 8,192 No Default model
xiaomi/mimo-v2-pro text 1,048,576 32,000 Yes Large context
xiaomi/mimo-v2-omni text, image 262,144 32,000 Yes Multimodal

Token Plan catalog

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.5-pro text 1,048,576 131,072 Yes Default model
xiaomi-token-plan/mimo-v2.5 text, image 1,048,576 131,072 Yes Multimodal

xiaomi-token-plan needs a regional base URL to resolve. The supported path is a bundled 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

mimo-v2-pro, mimo-v2-omni, mimo-v2.5, and mimo-v2.5-pro support OpenClaw's /think directive with levels off, minimal, low, medium, high, xhigh, and max (default high). mimo-v2-flash has no reasoning support.

Text-to-speech

The bundled xiaomi plugin also registers Xiaomi MiMo as a speech provider for messages.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
{
  messages: {
    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. Preset-voice models (mimo-v2.5-tts, mimo-v2-tts) use audio.voice, so OpenClaw sends speakerVoice for those models.

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; OpenClaw sends it as the user message, sends the spoken text as the assistant message, and omits audio.voice for this model.

{
  messages: {
    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), OpenClaw transcodes Xiaomi output to 48kHz mono Opus with ffmpeg before delivery.

Config example

{
  env: { XIAOMI_API_KEY: "your-key" },
  agents: { defaults: { model: { primary: "xiaomi/mimo-v2-flash" } } },
  models: {
    mode: "merge",
    providers: {
      xiaomi: {
        baseUrl: "https://api.xiaomimimo.com/v1",
        api: "openai-completions",
        apiKey: "XIAOMI_API_KEY",
        models: [
          {
            id: "mimo-v2-flash",
            name: "Xiaomi MiMo V2 Flash",
            reasoning: false,
            input: ["text"],
            contextWindow: 262144,
            maxTokens: 8192,
          },
          {
            id: "mimo-v2-pro",
            name: "Xiaomi MiMo V2 Pro",
            reasoning: true,
            input: ["text"],
            contextWindow: 1048576,
            maxTokens: 32000,
          },
          {
            id: "mimo-v2-omni",
            name: "Xiaomi MiMo V2 Omni",
            reasoning: true,
            input: ["text", "image"],
            contextWindow: 262144,
            maxTokens: 32000,
          },
        ],
      },
    },
  },
}

Pricing and compat flags come from the bundled plugin manifest, so the config example omits cost and compat to avoid diverging from runtime behavior.

Token Plan:

{
  env: { XIAOMI_TOKEN_PLAN_API_KEY: "tp-your-key" },
  agents: { defaults: { model: { primary: "xiaomi-token-plan/mimo-v2.5-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.5-pro",
            name: "Xiaomi MiMo V2.5 Pro",
            reasoning: true,
            input: ["text"],
            contextWindow: 1048576,
            maxTokens: 131072,
          },
          {
            id: "mimo-v2.5",
            name: "Xiaomi MiMo V2.5",
            reasoning: true,
            input: ["text", "image"],
            contextWindow: 1048576,
            maxTokens: 131072,
          },
        ],
      },
    },
  },
}

Pricing comes from the bundled manifest (Token Plan models include tiered cache-read pricing), so the config example omits cost.

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 bundled Token Plan onboarding choice or an explicit `models.providers.xiaomi-token-plan` config block. - **mimo-v2-flash** - lightweight and fast, ideal for general-purpose text tasks. No reasoning support. - **mimo-v2-pro** - supports reasoning with a 1M token context window for long-document workloads. - **mimo-v2-omni** - reasoning-enabled multimodal model that accepts both text and image inputs. - **mimo-v2.5-pro** - Token Plan default with Xiaomi's current V2.5 reasoning stack. - **mimo-v2.5** - Token Plan multimodal V2.5 route.
<Note>
Pay-as-you-go models use the `xiaomi/` prefix. Token Plan models use the `xiaomi-token-plan/` prefix.
</Note>
- 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 `~/.openclaw/.env` or via `env.shellEnv`).
<Warning>
Keys set only in your interactive shell are not visible to daemon-managed gateway processes. Use `~/.openclaw/.env` or `env.shellEnv` config for persistent availability.
</Warning>
Choosing providers, model refs, and failover behavior. `/think` directive syntax and level mapping. Full OpenClaw configuration reference. Xiaomi MiMo dashboard and API key management.