diff --git a/mateclaw-server/src/main/resources/db/migration/h2/V93__xiaomi_mimo_provider.sql b/mateclaw-server/src/main/resources/db/migration/h2/V93__xiaomi_mimo_provider.sql
new file mode 100644
index 00000000..ea019707
--- /dev/null
+++ b/mateclaw-server/src/main/resources/db/migration/h2/V93__xiaomi_mimo_provider.sql
@@ -0,0 +1,36 @@
+-- V93: register Xiaomi MiMo as an OpenAI-compatible provider with a
+-- pre-seeded model catalog covering the MiMo-V2.5 and MiMo-V2 families.
+--
+-- Endpoint: https://api.xiaomimimo.com/v1 (OpenAI-compatible chat
+-- completions schema). API keys issued by the Xiaomi MiMo platform are
+-- accepted directly as bearer tokens; no special prefix is enforced.
+-- Model discovery and connection check both follow the standard
+-- OpenAI /v1/models contract, so they are enabled by default.
+
+-- -- Provider --------------------------------------------------------------
+MERGE INTO mate_model_provider (provider_id, name, api_key_prefix, chat_model, api_key, base_url, generate_kwargs, is_custom, is_local, support_model_discovery, support_connection_check, freeze_url, require_api_key, create_time, update_time)
+KEY (provider_id)
+VALUES (
+ 'xiaomi-mimo',
+ 'Xiaomi MiMo',
+ '',
+ 'OpenAIChatModel',
+ '',
+ 'https://api.xiaomimimo.com/v1',
+ '{}',
+ FALSE, FALSE, TRUE, TRUE, TRUE, TRUE,
+ NOW(), NOW()
+);
+
+-- -- Model catalog ---------------------------------------------------------
+-- Five entries covering the V2.5 and V2 families. Temperature defaults to
+-- 0.7 to match peer OpenAI-compatible providers; max_tokens 4096 follows
+-- the same conservative default used by other built-in entries.
+MERGE INTO mate_model_config (id, name, provider, model_name, description, temperature, max_tokens, top_p, builtin, enabled, is_default, create_time, update_time, deleted)
+KEY (id)
+VALUES
+ (1000001200, 'MiMo V2.5 Pro', 'xiaomi-mimo', 'mimo-v2.5-pro', 'Xiaomi MiMo V2.5 Pro — latest flagship reasoning + coding model', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0),
+ (1000001201, 'MiMo V2.5', 'xiaomi-mimo', 'mimo-v2.5', 'Xiaomi MiMo V2.5 — balanced model in the V2.5 family', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0),
+ (1000001202, 'MiMo V2 Pro', 'xiaomi-mimo', 'mimo-v2-pro', 'Xiaomi MiMo V2 Pro — 1M token context window flagship', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0),
+ (1000001203, 'MiMo V2 Omni', 'xiaomi-mimo', 'mimo-v2-omni', 'Xiaomi MiMo V2 Omni — multimodal variant supporting text, vision, audio', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0),
+ (1000001204, 'MiMo V2 Flash', 'xiaomi-mimo', 'mimo-v2-flash', 'Xiaomi MiMo V2 Flash — fast, low-latency variant with 262K context', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0);
diff --git a/mateclaw-server/src/main/resources/db/migration/mysql/V93__xiaomi_mimo_provider.sql b/mateclaw-server/src/main/resources/db/migration/mysql/V93__xiaomi_mimo_provider.sql
new file mode 100644
index 00000000..06005447
--- /dev/null
+++ b/mateclaw-server/src/main/resources/db/migration/mysql/V93__xiaomi_mimo_provider.sql
@@ -0,0 +1,43 @@
+-- V93: register Xiaomi MiMo as an OpenAI-compatible provider with a
+-- pre-seeded model catalog. See the H2 copy for full background.
+
+-- -- Provider --------------------------------------------------------------
+INSERT INTO mate_model_provider (provider_id, name, api_key_prefix, chat_model, api_key, base_url, generate_kwargs, is_custom, is_local, support_model_discovery, support_connection_check, freeze_url, require_api_key, create_time, update_time)
+VALUES (
+ 'xiaomi-mimo',
+ 'Xiaomi MiMo',
+ '',
+ 'OpenAIChatModel',
+ '',
+ 'https://api.xiaomimimo.com/v1',
+ '{}',
+ FALSE, FALSE, TRUE, TRUE, TRUE, TRUE,
+ NOW(), NOW()
+)
+ON DUPLICATE KEY UPDATE
+ name = VALUES(name),
+ api_key_prefix = VALUES(api_key_prefix),
+ chat_model = VALUES(chat_model),
+ base_url = VALUES(base_url),
+ generate_kwargs = VALUES(generate_kwargs),
+ support_model_discovery = VALUES(support_model_discovery),
+ support_connection_check = VALUES(support_connection_check),
+ freeze_url = VALUES(freeze_url),
+ require_api_key = VALUES(require_api_key),
+ update_time = VALUES(update_time);
+
+-- -- Model catalog ---------------------------------------------------------
+INSERT INTO mate_model_config (id, name, provider, model_name, description, temperature, max_tokens, top_p, builtin, enabled, is_default, create_time, update_time, deleted)
+VALUES
+ (1000001200, 'MiMo V2.5 Pro', 'xiaomi-mimo', 'mimo-v2.5-pro', 'Xiaomi MiMo V2.5 Pro — latest flagship reasoning + coding model', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0),
+ (1000001201, 'MiMo V2.5', 'xiaomi-mimo', 'mimo-v2.5', 'Xiaomi MiMo V2.5 — balanced model in the V2.5 family', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0),
+ (1000001202, 'MiMo V2 Pro', 'xiaomi-mimo', 'mimo-v2-pro', 'Xiaomi MiMo V2 Pro — 1M token context window flagship', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0),
+ (1000001203, 'MiMo V2 Omni', 'xiaomi-mimo', 'mimo-v2-omni', 'Xiaomi MiMo V2 Omni — multimodal variant supporting text, vision, audio', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0),
+ (1000001204, 'MiMo V2 Flash', 'xiaomi-mimo', 'mimo-v2-flash', 'Xiaomi MiMo V2 Flash — fast, low-latency variant with 262K context', 0.7, 4096, 0.8, TRUE, TRUE, FALSE, NOW(), NOW(), 0)
+ON DUPLICATE KEY UPDATE
+ name = VALUES(name),
+ model_name = VALUES(model_name),
+ description = VALUES(description),
+ builtin = VALUES(builtin),
+ enabled = VALUES(enabled),
+ update_time = VALUES(update_time);
diff --git a/mateclaw-ui/public/icons/providers/hunyuan-color.svg b/mateclaw-ui/public/icons/providers/hunyuan-color.svg
new file mode 100644
index 00000000..42edd6cd
--- /dev/null
+++ b/mateclaw-ui/public/icons/providers/hunyuan-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/mateclaw-ui/public/icons/providers/opencode.svg b/mateclaw-ui/public/icons/providers/opencode.svg
new file mode 100644
index 00000000..9c4cb89e
--- /dev/null
+++ b/mateclaw-ui/public/icons/providers/opencode.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/mateclaw-ui/public/icons/providers/xiaomimimo.svg b/mateclaw-ui/public/icons/providers/xiaomimimo.svg
new file mode 100644
index 00000000..b8ba03b8
--- /dev/null
+++ b/mateclaw-ui/public/icons/providers/xiaomimimo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/mateclaw-ui/src/i18n/locales/en-US.ts b/mateclaw-ui/src/i18n/locales/en-US.ts
index e2067d9d..915c0d65 100644
--- a/mateclaw-ui/src/i18n/locales/en-US.ts
+++ b/mateclaw-ui/src/i18n/locales/en-US.ts
@@ -645,6 +645,7 @@ export default {
zhipu: 'Zhipu AI defaults to https://open.bigmodel.cn/api/paas/v4',
zhipuIntl: 'Zhipu AI International uses https://open.z.ai/api/paas/v4',
volcengine: 'Volcano Engine (Doubao) defaults to https://ark.cn-beijing.volces.com/api/v3, requires an endpoint created on the Volcengine Ark platform',
+ xiaomiMimo: 'Xiaomi MiMo defaults to https://api.xiaomimimo.com/v1 (OpenAI-compatible). API keys are issued at platform.xiaomimimo.com',
openaiCompatible: 'OpenAI-compatible services usually use a Base URL ending with /v1',
},
discovery: {
diff --git a/mateclaw-ui/src/i18n/locales/zh-CN.ts b/mateclaw-ui/src/i18n/locales/zh-CN.ts
index 7d43e5fb..3ff982e3 100644
--- a/mateclaw-ui/src/i18n/locales/zh-CN.ts
+++ b/mateclaw-ui/src/i18n/locales/zh-CN.ts
@@ -531,6 +531,7 @@ export default {
zhipu: '智谱 AI 默认使用 https://open.bigmodel.cn/api/paas/v4',
zhipuIntl: '智谱 AI 国际版使用 https://open.z.ai/api/paas/v4',
volcengine: '火山引擎(豆包)默认使用 https://ark.cn-beijing.volces.com/api/v3,需要在火山方舟平台创建接入点',
+ xiaomiMimo: '小米 MiMo 默认使用 https://api.xiaomimimo.com/v1,OpenAI 兼容协议,API Key 在 platform.xiaomimimo.com 申请',
openaiCompatible: '兼容 OpenAI 协议的服务通常使用 /v1 结尾的 Base URL',
},
discovery: {
diff --git a/mateclaw-ui/src/views/Settings/Models/composables/useProviderForm.ts b/mateclaw-ui/src/views/Settings/Models/composables/useProviderForm.ts
index 6d5979bf..43477b6b 100644
--- a/mateclaw-ui/src/views/Settings/Models/composables/useProviderForm.ts
+++ b/mateclaw-ui/src/views/Settings/Models/composables/useProviderForm.ts
@@ -73,6 +73,7 @@ export function useProviderForm(deps: ListDeps) {
if (id === 'zhipu-cn-codingplan') return 'https://open.bigmodel.cn/api/coding/paas/v4'
if (id === 'zhipu-intl-codingplan') return 'https://api.z.ai/api/coding/paas/v4'
if (id === 'volcengine') return 'https://ark.cn-beijing.volces.com/api/v3'
+ if (id === 'xiaomi-mimo') return 'https://api.xiaomimimo.com/v1'
return 'https://example.com/v1'
})
@@ -88,6 +89,7 @@ export function useProviderForm(deps: ListDeps) {
if (id === 'zhipu-cn') return t('settings.model.hints.zhipu')
if (id === 'zhipu-intl') return t('settings.model.hints.zhipuIntl')
if (id === 'volcengine') return t('settings.model.hints.volcengine')
+ if (id === 'xiaomi-mimo') return t('settings.model.hints.xiaomiMimo')
return t('settings.model.hints.openaiCompatible')
})
diff --git a/mateclaw-ui/src/views/Settings/Models/composables/useProviderList.ts b/mateclaw-ui/src/views/Settings/Models/composables/useProviderList.ts
index 5f8c07a1..e43534ba 100644
--- a/mateclaw-ui/src/views/Settings/Models/composables/useProviderList.ts
+++ b/mateclaw-ui/src/views/Settings/Models/composables/useProviderList.ts
@@ -100,6 +100,9 @@ export function useProviderList() {
'volcengine': '/icons/providers/volcengine.svg',
// volcengine-plan = "Volcano Engine Coding Plan" — same brand, reuse mark.
'volcengine-plan': '/icons/providers/volcengine.svg',
+ 'xiaomi-mimo': '/icons/providers/xiaomimimo.svg',
+ 'hunyuan-3d': '/icons/providers/hunyuan-color.svg',
+ 'opencode': '/icons/providers/opencode.svg',
'siliconflow-cn': '/icons/providers/siliconcloud.svg',
'siliconflow-intl': '/icons/providers/siliconcloud.svg',
'openai-chatgpt': '/icons/providers/openai.svg',