mimo-first-bridge
v1.2.9
Published
Xiaomi MiMo bridge for DeepSeek Harness (DSH): dispatch to MiMoCode (`mimo` CLI) or the Xiaomi MiMo Desktop client, preselected in settings (backend = mimocode | mimo-desktop). Full DSH control on the CLI path (--dangerously-skip-permissions), Desktop loc
Maintainers
Readme
mimo-first-bridge
一个用于 DeepSeek Harness (DSH) 的 Cordis 插件:把编码/构建/调试/排查等实际工作优先派发给本机的
mimoCLI(Xiaomi MiMo Desktop / MiMoCode),DSH 全程掌控 mimo(--dangerously-skip-permissions,mimo 全程无提示),并在 mimo 流量受限 / 网络不通 / 认证失败 时弹窗让用户选择是否回退到 DSH 本地 API 配置;同时在会话标题栏提供一个 实时状态灯,清晰显示 mimo 是否正在工作。
同构姊妹项目:agy-first-bridge、codebuddy-first-bridge。
这是什么
mimo-first-bridge 是 DeepSeek Harness (DSH) 的 Cordis 插件。它注册模型工具(mimo_run、mimo_continue、mimo_status 与 mimo_settings),把真实工作转交给本机 mimo CLI(MiMoCode)或 Xiaomi MiMo 桌面客户端 执行,并注入 mimo-first 策略,让模型在各种模式下优先使用 mimo。
四种形态
| 形态 | 位置 | 能力 | 状态灯 | 持久 |
| --- | --- | --- | --- | --- |
| Agent preset | preset/mimo-first/ | mimo_run / mimo_continue / mimo_status / mimo_settings + MiMo-First 策略 + 回退弹窗(双后端) | ❌(依赖家级) | ✅ |
| 家级状态灯 | home-plugin/mimo-indicator/ | 所有会话自动显示实时状态灯 | ✅ | ✅ |
| 动态 Cordis 插件 | dynamic/ | mimo_run / mimo_continue / mimo_status + mimocode 后端(沙箱无 fs/import,mimo-desktop 返回 DESKTOP_UNSUPPORTED)+ 推入家级状态灯 | ✅ | ❌ 进程内 |
| MCP server | mcp/ | 任意 MCP 宿主自动发现四工具(含 mimo_settings 与双后端) | ❌ | ✅(客户端配置) |
推荐组合:preset + 家级状态灯(dsh plugin --profile web add mimo-first-bridge 一次装齐)。
模型工具 + 设置
设置:提前预选派发目标(backend)
用户可在设置中提前选择调用 MiMoCode 还是 小米桌面客户端,无需每次指定:
| 预选途径 | 示例 |
| --- | --- |
| settings 文件(推荐给最终用户) | %APPDATA%\mimo-first-bridge\settings.json → { "backend": "mimocode" \| "mimo-desktop" } |
| 工具 | mimo_settings({ backend: "mimo-desktop" }) 读/写默认值 |
| 插件 config(cordis 行 / DSH 插件配置) | config.backend: mimocode \| mimo-desktop |
| 环境变量 | MIMO_BRIDGE_BACKEND=mimo-desktop |
| 单次覆盖 | mimo_run(..., backend: "mimocode") |
优先级:工具参数 > 插件 config > 环境变量 > settings 文件 > 默认 mimocode。
| backend | 含义 | 调用方式 |
| --- | --- | --- |
| mimocode(默认) | 本机 mimo CLI(MiMoCode) | mimo run --format json --dangerously-skip-permissions |
| mimo-desktop | 小米 MiMo 桌面客户端本地 API | Desktop 开启时经 desktop-api.json(Authorization: Bearer)POST /v1/sessions/:id/turns |
mimo-desktop 需 Xiaomi MiMo 桌面端在运行;未启动时返回 DESKTOP_UNAVAILABLE,可改回 mimocode。
mimo_run
mimo_run(prompt, backend?, mode?, model?, effort?, cwd?, timeoutSec?, background?, title?)把任务派给预选 backend(或本次指定的 backend)。mimocode 强制 --format json --dangerously-skip-permissions,从不弹权限提示。
backend:mimocode|mimo-desktop(默认用设置里的预选值)mode:auto(跟随 DSH plan)/plan(只读)/build(全工具)/composemodel:provider/model(mimocode)或桌面模型 id 如mimo-auto(mimo-desktop)effort:low|medium|high→--variant minimal|high(仅 mimocode)background:默认true(立即返回 jobId,用job_output收取;mimo_status看进度)
mimo_continue
mimo_continue(prompt, sessionId?, latest?, backend?, ...)续接既有会话(mimocode:--session / --continue;mimo-desktop:同 sessionId 投递 turn)。
mimo_status
mimo_status(cwd?)实时观察 + 用量统计 + defaultBackend(当前预选)。
mimo_settings
mimo_settings(backend?, desktopModel?)读/写预选 backend 与桌面模型,持久化到 settings 文件。无参调用返回当前生效配置(含 Desktop API 是否可用)。
安装
见 docs/INSTALL.md。快速路径:
dsh plugin --profile web add mimo-first-bridge前提:本机 mimo --version 可用(Xiaomi MiMo Desktop / MiMoCode CLI)。
MCP(可选)
不需要 DSH 时,把 mcp/mimo-mcp-server.mjs 注册为 MCP 服务器,Claude Code / Codex / Cherry Studio 等宿主即可自动发现四个工具(mimo_run / mimo_continue / mimo_status / mimo_settings):
node mcp/mimo-mcp-server.mjs --check
claude mcp add mimo -- node C:\path\to\mimo-mcp-server.mjs开发
npm run build # 同步 core → preset 副本
npm run check # build --check + verify + MCP --check
npm test # core + contracts + mcp-smoke关键契约:client 模块 id 永远 === 主包名 mimo-first-bridge(scripts/verify.mjs 已锁死)。详见 docs/HANDOVER.md 与 docs/DEV-DISCIPLINE.md。
安全说明
--dangerously-skip-permissions 表示 mimo 会在不再询问的情况下改动文件、执行命令。这是「DSH 完全控制 mimo」的直接实现,请仅在你信任执行环境时使用。
License
MIT
