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
PropertyValue
Provider idsxiaomi (pay-as-you-go), xiaomi-token-plan (Token Plan)
Auth env varsXIAOMI_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>
APIOpenAI-compatible chat completions (openai-completions)
Speech contractspeechProviders: ["xiaomi"]
Base URLsPay-as-you-go: https://api.xiaomimimo.com/v1; Token Plan: token-plan-{cn,sgp,ams}.xiaomimimo.com/v1
Default modelsxiaomi/mimo-v2.6-pro, xiaomi-token-plan/mimo-v2.6-pro
TTS defaultmimo-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 an sk-... key is placed on the Token Plan path.

Pay-as-you-go catalog

Model refInputContextMax outputReasoningNotes
xiaomi/mimo-v2.6-protext, image1,048,576131,072YesDefault flagship
xiaomi/mimo-v2.6-flashtext, image1,048,576131,072YesEfficient model
xiaomi/mimo-v2.6-pro-ultraspeedtext, image1,048,576131,072YesUp to 20x output speed
xiaomi/mimo-v2.5text, image1,048,576131,072YesPrevious generation
xiaomi/mimo-v2.5-protext1,048,576131,072YesPrevious 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 choiceBase URL
xiaomi-token-plan-cnhttps://token-plan-cn.xiaomimimo.com/v1
xiaomi-token-plan-sgphttps://token-plan-sgp.xiaomimimo.com/v1
xiaomi-token-plan-amshttps://token-plan-ams.xiaomimimo.com/v1
Model refInputContextMax outputReasoningNotes
xiaomi-token-plan/mimo-v2.6-protext, image1,048,576131,072YesDefault model
xiaomi-token-plan/mimo-v2.6-flashtext, image1,048,576131,072YesEfficient model
xiaomi-token-plan/mimo-v2.5-protext1,048,576131,072YesPrevious generation
xiaomi-token-plan/mimo-v2.5text, image1,048,576131,072YesPrevious 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.

PropertyValue
TTS idxiaomi (mimo alias)
AuthXIAOMI_API_KEY
APIPOST /v1/chat/completions with audio
Defaultmimo-v2.5-tts, voice mimo_default
OutputMP3 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. The xiaomi-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/.env or through env.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/.env or env.shellEnv config.

1,387 words · updated Oct 26, 2026