Skip to content

Releases: XiaomiMiMo/MiMo-Code

v0.1.13

Choose a tag to compare

@qiaozongming qiaozongming released this 19 Aug 11:00
67c9cf1

What's Changed

Full Changelog: v0.1.12...v0.1.13

v0.1.12

Choose a tag to compare

@qiaozongming qiaozongming released this 13 Aug 05:40
42dcbf3

What's Changed

New Contributors

Full Changelog: v0.1.11...v0.1.12

v0.1.11

Choose a tag to compare

@qiaozongming qiaozongming released this 10 Aug 06:06
192938e

Summary

The headline of this release is memory.disable_write — a switch that stops MiMoCode from writing memory while leaving reads intact. With it on, no checkpoints, MEMORY.md, notes.md or task progress.md are written and dream/distill stop running automatically; nothing is ever deleted and the builtin memory search tool keeps working. One caveat we corrected in the same release: existing memory is not auto-loaded while writing is off — the dumps normally reach context through a checkpoint rebuild, which is short-circuited by design when no new checkpoint can be written, so the switch's wording no longer promises automatic availability.

Also notable: a patched @ai-sdk/openai-compatible fixes MCP tools with more than two parameters silently losing their arguments — the stream parser finalized a tool call as soon as the accumulated arguments first parsed as valid JSON, so providers that emit complete-JSON snapshots (e.g. OpenRouter) had all later fragments dropped. Plus a new memory-search builtin skill (querying the SQLite trajectory DB) and an MCP refactor that makes the single-client-per-process property structural instead of relying on layer memoisation.


本次发布的主角是 memory.disable_write —— 一个只停写、不停读的记忆开关。开启后不再写入 checkpoint、MEMORY.mdnotes.md 和任务 progress.md,dream/distill 也不再自动运行;任何文件都不会被删除,内置 memory 检索工具照常可用。同一版本里我们同时修正了一处措辞:停写期间既有记忆不会自动加载——记忆内容平时是靠 checkpoint 重建进入上下文的,而停写时无法写新 checkpoint,重建会按设计短路并降级为压缩,因此开关文案不再承诺"自动可用"。

另一个重点:通过@ai-sdk/openai-compatible 打补丁,修复了参数多于两个的 MCP 工具静默丢参数的问题——流解析器一旦发现累积的 arguments 首次能解析为合法 JSON 就提前完结该工具调用,导致以完整 JSON 快照方式推流的 provider(如 OpenRouter)后续片段全部被丢弃。此外还新增 memory-search 内置技能(查询 SQLite 轨迹库),以及一次 MCP 重构:把"每进程单一 client"从依赖 layer memo 的巧合变成图上可见的结构性保证。

Features

  • memory: add the memory.disable_write switch — stop memory writes, keep reads by @wqymi in #2040
  • skill: add memory-search builtin skill — SQLite trajectory DB query guide by @JinyuXiang-Mimo in #2046, #2053

Bug Fixes

  • mcp: patch @ai-sdk/openai-compatible to stop dropping multi-arg tool calls by @YOMXXX in #2054
  • memory: stop promising memory loads itself while writing is off by @wqymi in #2071
  • agent: align subagent prompts with runtime tool schemas by @MiMoHardFather in #2039
  • session: scope diffs to requested message by @MiMoHardFather in #2055
  • tui: hide runtime-spawned agent hosts from the Sessions list by @wqymi in #2035
  • cli: normalize command output newlines by @yanyihan-xiaomi in #2041

Refactor

  • mcp: share one process-wide client layer by @wqymi in #2044

Docs

New Contributors

Full Changelog: v0.1.10...v0.1.11

v0.1.10

Choose a tag to compare

@qiaozongming qiaozongming released this 05 Aug 09:01
8061d5f

Summary

The biggest theme this release is orchestrator and multi-session reliability. Orchestrator now routes to an existing session instead of spawning a new one (with a roster, tool-result affordances, and guards behind it), child liveness is derived from last activity rather than last completed step — so a child blocked mid-step is no longer mistaken for a dead one — and spawn became the default in the actor tool prompt. Worktrees and bash commits now inherit the repo's real git identity instead of inventing one.

Context and checkpoint handling got a round of hard fixes: per-model early-compaction budgets, honoring the configured context limit, no more duplicate context rebuilds, manual /rebuild now does an on-the-spot rebuild with writer-freshness and a waiting UI, and the checkpoint writer's blind failure counter was replaced by proper failure classification with bounded recovery.

Providers are more resilient: never send a message with empty content (the long-standing Bedrock/Anthropic 400), replay unsigned Anthropic reasoning, retry OpenAI stream server errors and internal request timeouts, DeepSeek reasoning-effort variants, and strict: false for function tools on OpenAI Responses. Also new: Vivid and Minimal visual modes in the TUI, exec with MCP dispatch + live sub-call trace, token-aware request-scoped MCP tool discovery, client-side MCP sampling with audio, and new skill bundles (Playwright CLI automation, Grok Build CLI).


本次发布的主线是 Orchestrator 与多会话可靠性。Orchestrator 现在会路由到已有会话而不是新建(配套 roster、工具结果提示与相应守卫);子会话的存活判定改为依据"最后活动时间"而非"最后完成的步骤"——卡在某一步中间的子会话不会再被误判为已死;actor 工具提示里 spawn 成为默认。worktree 和 bash 提交现在继承仓库真实的 git 身份,不再自行编造。

上下文与 checkpoint 做了一批硬修复:按模型的提前压缩预算、尊重配置的上下文上限、不再重复重建上下文、手动 /rebuild 改为即时重建(带写入新鲜度判断和等待 UI),并把 checkpoint writer 的"盲计数失败"换成了明确的失败分类 + 有界恢复。

Provider 健壮性同步提升:不再发送空内容消息(修掉长期存在的 Bedrock/Anthropic 400)、重放未签名的 Anthropic reasoning、重试 OpenAI 流式服务端错误与内部请求超时、DeepSeek 的 reasoning effort 变体、OpenAI Responses 的 function tool 显式 strict: false。另有新特性:TUI 的 Vivid / Minimal 视觉模式exec 支持 MCP 分发与实时子调用轨迹、按 token 感知的请求级 MCP 工具发现、支持音频的客户端侧 MCP sampling,以及新技能包(Playwright CLI 自动化、Grok Build CLI)。

Features

Bug Fixes

  • orchestrator: route to an existing session instead of creating one — roster, tool-result affordances, and the guards that back them by @wqymi in #1741
  • actor: derive liveness from last activity, not last completed step — a child blocked mid-step was indistinguishable from a dead one by @wqymi in #1965
  • actor: make spawn the default and run the exception in the tool prompt by @wqymi in #1942
  • worktree,bash: propagate the repo's git identity into worktrees and bash commits — never invent one by @wqymi in #1825
  • provider: never send a message with empty content (the Bedrock/Anthropic 400) — producer + backstop + inbox invariant by @wqymi in #1948
  • provider: enable reasoning effort variants for DeepSeek models, scoped to the official API by @anandlo, @MiMoHardFather in #1895, #1913
  • provider: send function tools to OpenAI Responses with explicit strict: false by @clyfish in #2028
  • provider: retry internal request timeouts by @MiMoHardFather in #1989
  • session: retry OpenAI stream server errors by @MiMoHardFather in #2029
  • session: honor the configured context limit; prevent duplicate context rebuilds; remove the context pressure nudge by @yanyihan-xiaomi in #1997, #2032, #1998
  • session: inject every skill mentioned in a slash-command message; send skill instructions as user reminders by @yanyihan-xiaomi, @MiMoHardFather in #1929, #1988
  • session: persist missing-model assistant errors by @peipeiwang-xiaomi in #2024
  • rebuild: make manual /rebuild perform an on-the-spot rebuild with writer-freshness + waiting UI by @wqymi in #1752
  • checkpoint: delete the writer's blind failure count, classify the failure, and give the final threshold a bounded recovery; don't count a timed-out writer wait as a failure by @wqymi in #1945, #1938
  • mcp: negotiate per-turn lifecycle notifications by @wqymi in #1851
  • codex: cap imported GPT context at 300K by @MiMoHardFather in #1926
  • tui: render actor-hosted transcripts, refuse only runtime-spawned agent hosts; keep the transcript alive after a directory switch by @wqymi in #1964, #1953
  • tui: stop context readout showing a stale figure after /rebuild; make post-rebuild pending-detection independent of message order by @wqymi in #1999, #2002
  • tui: render exec like bash — collapsed state caps output instead of hiding it by @yanyihan-xiaomi in #1941
  • tui: add force-switch mode hotkey bypassing the mid-session lock by @wqymi in #1881
  • tui: keep completed actor actions terminal; restore recent model on startup; keep agent on declined plan entry by @yanyihan-xiaomi, @MiMoHardFather in #1903, #1908, #1996
  • tui: stop the sidebar surviving a shrink, and stop scrollbar drags firing adjacent controls by @yanyihan-xiaomi in #2021
  • tui: repair orphaned running tool parts; stop a directory 403 from killing the TUI by @wqymi in #1960
  • log: isolate writers and flush safely on exit; keep log records off the TUI terminal by @yanyihan-xiaomi in #1904, #1928
  • workflow: read built-in workflow scripts through a build-time macro, not an import by @yanyihan-xiaomi in #2023
  • server: stop emitting a dangling $ref, unbreaking SDK codegen by @yanyihan-xiaomi in #2027
  • release: retry failed npmmirror syncs and report unsynced packages by @yanyihan-xiaomi in #1902

Refactor

  • tool: remove plan_enter so only the user enters plan mode by @yanyihan-xiaomi in #2018
  • session: revert the empty-step guard that mis-flagged no-arg tool calls by @wqymi in #1782

Docs

Internal / CI

New Contributors

Full Changelog: v0.1.9...v0.1.10

v0.1.9

Choose a tag to compare

@qiaozongming qiaozongming released this 24 Jul 06:06
c045a98

Summary

The headline of this release is the upcoming sunset of the MiMo-V2.5 free trial. Free access to MiMo-V2.5 will end at 03:00 (PDT) on July 26. After that, MiMo Code enforces the sunset in the TUI (#1884).

To keep using the MiMo-V2.5 series after the trial, subscribe to the MiMo Token Plan on the MiMo open platform — 12% off your first subscription: https://platform.xiaomimimo.com/token-plan
(Bringing your own API Key is unaffected.)

This release also improves plan-mode continuation, slash command discovery, GPT subagent tool resolution, provider robustness, and aligns the python-toolchain ruff rules with defaults.


本次发布的核心是 MiMo-V2.5 限免即将结束。免费使用将于北京时间 7 月 26 日 18:00(UTC+8)结束,届时 MiMo Code 会在 TUI内执行限免下线(#1884)。

限免结束后如需继续使用 MiMo-V2.5 系列,欢迎在 MiMo 开放平台订阅 MiMo Token Plan,首次订阅享 88折:https://platform.xiaomimimo.com/token-plan
(自行配置 API Key 的使用不受影响。)

此外本版还改进了计划模式的续接、斜杠命令发现、GPT 子智能体工具解析、provider 健壮性,并将 python-toolchain 的 ruff规则对齐默认集。

What's Changed
fix(plan): guide model to continue planning on non-Yes plan_exit/plan_enter answers by @yanyihan-xiaomi in #1883
fix(provider): bound OpenAI response header waits by @MiMoHardFather in #1877
feat(tui): enforce MiMo free API sunset by @MiMoHardFather in #1884
feat(tui): improve slash command discovery by @MiMoHardFather in #1886
fix(actor): resolve GPT subagent tools by catalog model by @MiMoHardFather in #1887
fix(workflow): make workflow tool opt-in by @MiMoHardFather in #1893
fix(skill): align python-toolchain ruff rule set with ruff defaults + UP/I by @yanyihan-xiaomi in #1900
chore: bump version to 0.1.9 by @qiaozongming in #1901
Full Changelog: v0.1.8...v0.1.9

v0.1.8

Choose a tag to compare

@qiaozongming qiaozongming released this 23 Jul 08:38
29a107a

What's Changed

Full Changelog: v0.1.7...v0.1.8

v0.1.7

Choose a tag to compare

@qiaozongming qiaozongming released this 20 Jul 13:06
65a5510

Summary

This release adds tool_script — programmatic tool orchestration in a QuickJS sandbox, letting the model chain multiple tool calls in one script instead of many round-trips, with a hardened serialization contract, sandbox jail, MCP dispatch, and opt-in gating.

It also introduces session handoff + a try-best detector (behind MIMOCODE_ENABLE_TRY_BEST_HANDOFF, default off) and a big skills push: new bundles (data-analytics, product-design, sales, learn-everything), a skill_search tool with BM25 matching, bundle autocomplete + i18n, and the mimocode bundle renamed to mimocode-docs. Other updates: xAI/Grok bump with OAuth login, interleaved-reasoning transform sync, several provider/session robustness fixes, and switching install docs to bun ci.


本次发布新增 tool_script:在 QuickJS 沙箱里以脚本方式编排工具调用,让模型在一段脚本里串联多个工具、减少多轮往返,并配有严格的序列化契约、沙箱隔离、MCP 分发和按需开关。

同时引入会话交接(handoff)+ try-best 检测器(由 MIMOCODE_ENABLE_TRY_BEST_HANDOFF 控制,默认关闭),以及一批技能(skill)增强:新增 data-analytics、product-design、sales、learn-everything 等 bundle,带 BM25 匹配的 skill_search 工具,bundle 自动补全与多语言,并把 mimocode bundle 更名为 mimocode-docs。其他更新:xAI/Grok 升级并支持 OAuth 登录、interleaved reasoning 的 transform 同步、若干 provider/session 健壮性修复,以及安装文档改用 bun ci

Features

Bug Fixes

  • tool_script: serialization contract, sandbox jail, MCP dispatch, and opt-in gating; discourage overuse and stop escaping return values by @JinyuXiang-Mimo, @yanyihan-xiaomi in #1784, #1777
  • provider: guard non-array message content in part mapping (j.map is not a function) by @wqymi in #1728
  • transform: sync interleaved handling — exclude openrouter + always echo reasoning field by @wqymi in #1819
  • session: treat GPT reasoning-only steps as terminal by @MiMoHardFather in #1820
  • session: narrow empty-step guard to only empty-args tool calls by @yanyihan-xiaomi in #1776
  • session: session LLM and plugin hook fixes by @MiMoHardFather in #1815
  • task: remove main-session task gate, keep subagent gate only by @yanyihan-xiaomi in #1759
  • tui: clean up unsupported tips by @yanyihan-xiaomi in #1768
  • skill: only expose top-level builtin entries; localize new bundles and hide internal workflows by @MiMoHardFather in #1795
  • build: fresh-clone engine node build + pin ghostty-web to a commit by @clyfish in #1771

Docs

Internal / CI

New Contributors

Full Changelog: v0.1.6...v0.1.7

v0.1.6

Choose a tag to compare

@qiaozongming qiaozongming released this 15 Jul 12:38
1f4a769

Summary

Slash skills are now enabled by default and support multi-skill orchestration — referencing 2+ /skill-name in a single message auto-loads their contents and injects an orchestration plan. /skip-permissions adds a runtime toggle for unattended runs — forced-ask operations (destructive bash, etc.) auto-reject after 60s with actionable feedback, while other non-deny permissions auto-allow.

Agent mode is now locked after first message: Build and Plan can still switch between each other, but entering Compose isolates the session to that mode. Many models tend to ignore tools that appear mid-conversation, so keeping the skill/tool set fixed from session start significantly improves tool-call reliability.

Custom provider compatibility: /modalities command lets users configure multimodal support (image, audio, video, pdf) for custom models directly in the TUI without manual config editing; system prompt is now sent as a single {role:'system'} message instead of two, fixing vLLM and other backends that expect exactly one system message; Moonshot/Kimi tool calling no longer 400s on discriminated-union schemas; oversized images are now compressed and area-averaged downscaled before sending, preventing permanent 400 failures.

Other highlights: orchestrator mode improvements (liveness tracking, fan-in aggregation, stall watchdog, structured notification cards); workflow meta.permissions manifest for up-front permission declaration; /rebuild command to manually rebuild context from checkpoint; file hooks hot-reload from any external editor without restart; builtin skills gated by CLI availability; broken custom tools no longer crash the session.


Slash skills 默认开启,支持多技能编排——一条消息里引用多个 /skill-name 会自动加载对应技能内容并生成编排计划。新增 /skip-permissions 命令,适合无人值守跑任务——危险操作 60s 无响应自动拒绝,其余非 deny 权限自动放行。

模式锁定:发送第一条消息后 agent 模式不可切换(Build/Plan 之间仍可互切,但 Compose 进入后隔离)。很多模型不喜欢中途出现的新工具、倾向于不调用动态插入的 skill,锁定模式让 skill/tool 集合从会话开始就固定,显著提升工具调用成功率。

Custom Provider 兼容性改进:新增 /modalities 命令,可以直接在 TUI 里为自定义模型设置多模态支持列表(图片、音频、视频、PDF),不用手动改配置文件;system prompt 合并为单条消息发送,修复 vLLM 等后端因双 system message 导致的指令重复问题;Moonshot/Kimi tool calling 不再因 discriminated-union schema 报 400;超大图片发送前自动压缩和面积均值缩放,不再因尺寸超限导致 400 永久卡死。

其他:orchestrator 模式改进(存活状态跟踪、fan-in 聚合、卡顿监控、结构化通知卡片);workflow 支持 meta.permissions 清单用于前置权限声明;新增 /rebuild 命令手动从 checkpoint 重建上下文;文件 hooks 支持外部编辑器热重载;内置 skill 按 CLI 可用性自动门控;自定义 tool 文件有语法错误不再导致整个 session 崩溃。

Features

  • tui: slash skills enabled by default with multi-skill orchestration — /skill-name triggers autocomplete anywhere in input, 2+ skills auto-load with orchestration prompt; compose: prefixed skills correctly filtered to compose agent only by @MiMoHardFather, @yanyihan-xiaomi in #1654, #1656
  • tui: add /modalities command to configure per-model input capabilities (image/audio/video/pdf) with multi-select dialog, persistent config and live-reload by @JinyuXiang-Mimo in #1650, #1651
  • permission: add /skip-permissions runtime toggle for unattended runs — auto-allows non-deny permissions; forced-ask permissions auto-reject after 60s with actionable CorrectedError feedback instead of hanging forever by @JinyuXiang-Mimo in #1645
  • session: agent mode locks after first message — Build/Plan freely switch between each other, Compose isolated once entered; fixes models ignoring dynamically injected skills mid-session by @yanyihan-xiaomi in #1725
  • orchestrator: liveness tracking (progressing/stalled), fan-in aggregation, stall watchdog notifications, reliable relay into idle peers, grant persistence, and structured notification cards in TUI by @wqymi in #1681, #1699, #1691, #1711
  • workflow: meta.permissions manifest for up-front permission declaration + engine-level agent retry by @wqymi in #1686
  • session: /rebuild command to manually rebuild context from the latest checkpoint; fixes large-session wedge when a checkpoint writer is in-flight by @wqymi in #1647
  • provider: area-averaging image downscale (better than nearest-neighbor) + automatic compression of oversized images before send by @wqymi in #1679
  • plugin: hot-reload file hooks via mtime staleness check — edits from any external writer (editors, git, other processes) now detected without restart by @JinyuXiang-Mimo in #1638
  • skill: gate builtin skills by CLI availability — skills requiring specific CLI tools only show when the tool is installed by @MiMoHardFather in #1743
  • skill: add drive-mimo builtin skill for programmatically driving a separate mimo process — supports headless JSON events and interactive TUI via tmux by @wqymi in #1603
  • session: expose full system prompt on session.post/userQuery.post hooks by @MiMoHardFather in #1717
  • build: include commit short SHA in version string for traceability by @wqymi in #1723

Bug Fixes

  • session: system prompt collapsed from two {role:'system'} messages to one — fixes vLLM and other self-deployed backends that only accept a single system message; memory instructions scoped to checkpoint owners only by @wqymi in #1636
  • provider: fix Moonshot/Kimi 400 errors on tool calls — strip parent type from discriminated-union tool schemas by @mvalentsev in #1665
  • provider: never send a provider-rejected assistant prefill; drop only incomplete trailing assistants + reactive backstop by @wqymi in #1703
  • provider: make prompt image size cap provider-aware instead of hardcoded 4.5MB; compress or strip oversized images so they no longer 400 and permanently wedge the session by @wqymi in #1679
  • session: halt on repeated empty/no-op tool calls — model-loop guard prevents infinite empty-action cycles by @wqymi in #1706
  • session: truncate compaction input at previous compaction/checkpoint boundary — fixes context corruption on long sessions by @JinyuXiang-Mimo in #1695
  • session: session ask answers from a child's persisted history — isolated/idle children no longer report no-activity by @wqymi in #1701
  • permission: background subagents inherit parent grants instead of re-prompting or failing closed by @wqymi in #1700
  • permission: force re-allow skill dirs after user config merge — external_directory: "deny" no longer blocks builtin/compose skills from loading by @yanyihan-xiaomi in #1632
  • tui: session list no longer shows internal subagent/worker child sessions; fetch limited to root sessions so the 100-slot budget is fully available for user-visible sessions by @JinyuXiang-Mimo in #1627, #1642
  • tui: fix slash autocomplete mid-message bugs; support colon in multi-skill mention regex for compose:* skills; include hidden skills in free-text mention detection by @yanyihan-xiaomi in #1697, #1715, #1716
  • tui: save/restore scroll position when switching between agent views by @yanyihan-xiaomi in #1685, #1694
  • tui: fix sticky scroll timing race via opentui _hasManualScroll by @yanyihan-xiaomi in #1718
  • tui: skip app-level right-click paste on Windows Terminal to avoid double-insert by @wqymi in #1729
  • tui: hide sidebar toggle strip when sidebar auto-collapses on narrow terminals (width <= 120) by @JinyuXiang-Mimo in #1637
  • plugin: gracefully skip broken file tools (.mimocode/tools/*.ts) instead of crashing the entire session by @JinyuXiang-Mimo in #1635
  • plugin: fix file hook reload — use Bun.build for cross-platform reliability; wire file hooks' event handlers to bus by @JinyuXiang-Mimo in #1638
  • task: prevent subagents from stealing task ownership via task start — keep original owner to avoid system-reminder re-entry loops by @JinyuXiang-Mimo in #1616
  • task: rewrite main-session gate prompt to prevent self-answering by @yanyihan-xiaomi in #1738
  • prompt: memory-flush nudge reworded to not stop the turn; added explicit "CONTINUE current task" directive; debounced to checkpoint-boundary dedup instead of per-turn nagging by @wqymi in #1613
  • mcp: handle standard tool result fields; preserve attachments on tool errors; route tool attachments by provider support; cap synthetic error images safely by @wqymi in #1704
  • actor: make instanceID a process-level singleton to prevent false orphaning on layer rebuild by @wqymi in #1724
  • instance: release worktree resources at boundaries by @wqymi in #1709
  • workflow: robust args handling, actionable validation; fix brief-phase file write in dynamic workflows; wire parseArgsAsQuestion for deep-research bare string args by @wqymi in #1683, #1686
  • tui: session-list subagent exclusion, 429 rate-limit normalization, CJK/multibyte text in tool args, structured error render by @wqymi in #1680
  • tui: change provider connect placeholder from mimorouter to openrouter by @JinyuXiang-Mimo in #1610
  • config: correct config schema doc URLs from opencode.ai to mimo.xiaomi.com by @yanyihan-xiaomi in #1677
  • config: add .cron-lock to auto-generated .mimocode/.gitignore; ensure .gitignore is created when cron-lock acquires the directory by @yanyihan-xiaomi in #1629, #1714

Docs

Internal / CI

  • replace internal gateway name with neutral placeholder in transform tests by @wqymi in #1708
  • skip flaky woken-turn notification test; skip flaky two-level workflow resume test by @yanyihan-xiaomi in #1740, #1634

New Contributors

Full Changelog: v0.1.5...v0.1.6

v0.1.5

Choose a tag to compare

@qiaozongming qiaozongming released this 07 Jul 09:53
31c9720

Summary

This release ships a builtin skills system — 14 domain-specific skill bundles (document handling, academic writing, arXiv search, deep research, super-research, html-to-video, skill authoring, design blueprint, and self-documentation) that auto-load when relevant files are attached or task context matches. Skills show localized descriptions in the TUI dialog and support auto-detection of office file attachments. The self-extend skill is renamed to evolve, reframing it as a proactive total self-modification interface. Two new built-in research workflows ship alongside: deep-research (parallel sub-agents → reflect → cited report) and fact-check (adversarial 3-juror verification).

Other highlights: Windows native installer now fully supported (PowerShell one-liner, working upgrade/uninstall); vision-aware image paste spills images to temp files for non-vision models with automatic multimodal model selection; Edit tool defaults to exact string matching (fuzzy now opt-in); gpt-5.5 encrypted reasoning round-trip fix; rewritten repetition detector eliminating false-positive loop-kills on structured content.

Experimental opt-in: Orchestrator mode (MIMOCODE_EXPERIMENTAL_ORCHESTRATOR) adds delegating multi-session coordination with git worktree isolation; cron + loop scheduling (MIMOCODE_EXPERIMENTAL_CRON) enables recurring prompts with durable persistence.


这个版本的重点是内置 Skills——14 个领域 skill 随版本分发(办公文档、学术写作、arXiv 检索、深度调研、超级科研、HTML 转视频、skill 创作、设计蓝图、自文档化等),挂载相关文件或上下文命中时自动激活,TUI 对话框显示多语言描述。self-extend 改名 evolve,作为全面自我修改的入口。同时上线 deep-researchfact-check 两个内置 workflow。

其他值得关注的:Windows 一行式安装命令正式可用(upgrade/uninstall 完整支持);粘贴图片时非多模态模型会收到临时文件引用而非 base64,自动选用多模态模型处理;Edit 工具默认精确匹配;gpt-5.5 加密 reasoning 往返修复;重复检测器重写,不再误杀结构化内容。

实验性功能(需手动开启):Orchestrator 模式支持委派式多 session 协作;cron + loop 支持定时与自适应循环。

Features

  • skill/builtin: ship 14 builtin skills — docx, pdf, pptx, xlsx document handling; arxiv paper search; research-paper-writing (with PDF export); html-to-video pipeline; skill-creator; mimocode self-documentation; frontend-design; modern-python-toolchain; design-blueprint; deep-research; super-research (renamed from auto-research; literature surveys, experiment loops, paper reproduction, citation auditing). Office file attachments auto-inject skill context; TUI skill dialog shows localized descriptions; slash visibility gated by MIMOCODE_ENABLE_SLASH_SKILLS (#1557, #1564, #1565, #1555, #1569, #1570, #1572, #1567, #1531, #1583, #1579, #1585, #1587, #1586, #1604, #1580, #1594)
  • skill/builtin: rename self-extend to evolve — rewrite SKILL.md as proactive total self-modification interface (tools, hooks, knowledge, workflows, UI all rewritable); sync hook-api.md with missing events; add ctx.ask() to tool-api.md (#1590)
  • installer: first-class Windows PowerShell native installer (one-liner alongside macOS/Linux), working mimo upgrade/mimo uninstall, UTF-8 encoding; recommend native installer for npm/pnpm/bun users (#1511, #1549, #1551, #1592)
  • tui: vision-aware image paste — non-vision models receive a temp-file @file reference instead of base64 bytes; automatic multimodal model selection; actor models [--vision] discovery command (#1513, #1546)
  • edit: default to exact string matching with closest-match error hints — fuzzy matching moved to opt-in via MIMOCODE_ENABLE_FUZZY_EDIT (#1466)
  • security: secondary permission prompt for irreversible bash deletions (bash_delete permission type) — intercepts rm, rmdir, shred, git reset --hard, git push --force, etc. Opt-out via MIMOCODE_AUTO_APPROVE_DELETE=true (#1588)
  • tui: --dangerously-skip-permissions flag with confirmation warning (#1542)
  • tui: clickable sidebar toggle button at content edge (#1541)
  • config: automatic $schema URL migration from opencode.ai to mimo.xiaomi.com/mimocode/ (#1511)
  • bash: token efficiency pipeline (opt-in, MIMOCODE_EXPERIMENTAL_TOKEN_EFFICIENCY_HEURISTIC) — heuristic shape-based filter strips predictable noise from common output patterns (#1473, #1519)
  • provider: non-empty provider.<id>.models config acts as implicit whitelist when only_configured_models is enabled (#1532, #1589)
  • orchestrator: Orchestrator mode (opt-in, MIMOCODE_EXPERIMENTAL_ORCHESTRATOR) — a primary agent that delegates to child sessions via a session tool with create/switch/list/cancel/ask/approve verbs, git worktree isolation per child, permission-approval forwarding (#1529)
  • cron: cron + loop scheduling system (opt-in, MIMOCODE_EXPERIMENTAL_CRON) — 5-field cron parser, durable + session-only persistence, self-paced loop with adaptive delay and keepalive, /loop skill, TUI fire-time clock row (#1479)

Bug Fixes

  • provider: fix gpt-5.5 empty output and reasoning part rs_… not found errors — request encrypted reasoning content for Responses API round-tripping (#1530)
  • provider: defer vision model resolution to environment() call time — fixes crash where mimo upgrade/mimo uninstall failed without project context (#1546)
  • detection: rewrite repetition detector from sliding-window n-gram to consecutive-block repeat algorithm — eliminates false-positive loop-kills on structured content; adds CJK character-level tokenization (#1476)
  • tui: patch @opentui/core@0.1.101 to fix CJK paste-highlight drift (UTF-16 length → display width) (#1471)
  • tui: prevent double session creation on home screen submit (#1497)
  • tui: clear alternate screen buffer before spawning interactive commands (#1492)
  • tui: fix background actor Task showing "completed · 0ms" while still running (#1499)
  • session: add HTTP 400 to retryable status codes; exclude system sessions from mimo -c (#1528)
  • effect: two-phase instance disposal — Bus shuts down after other services emit final events, fixing sessions stuck as permanently busy (#1527)
  • build: generate ext/_manifest.ts in Node target (#1501)
  • compose: strengthen skill invocation prompt and fix RLHF resistance (#1598)

Refactor

  • Prediction uses side-channel generateText instead of llm.stream — bypasses session-coupled hooks, uses tighter context window (#1498)

Docs

  • Add Builtin Skills and Workflows sections to README (en/zh) (#1581)
  • Simplify npm README to concise feature list with GitHub link (#1470)

Internal / CI

  • Skip flaky tests: cancel-truncation (#1523), cancel-interrupts-loop-queued-behind-shell (#1584)
  • Remove unused imports and afterEach in overflow test (#1568)
  • Add registry sync script (#1591)

v0.1.4

Choose a tag to compare

@qiaozongming qiaozongming released this 29 Jun 13:22
6e9f946

Summary

Workflow TUI gets a full overhaul — runs are now observable full-screen pages with message-style agent cards, live phase/status counters, and nested drill-down into each subagent's conversation. The inline panel is bounded to 12 lines so it doesn't flood the chat, while the full page gives you complete visibility into what every agent is doing.

A new built-in compose workflow encodes the Brainstorm → Design → Implement (TDD) → Verify → Review → Merge pipeline as deterministic code. It auto-parallelizes independent tasks into per-task worktrees, chains each phase's structured output to the next (brainstorm rationale → implementer intent → review verdict → merge), enforces bounded retry caps, and runs non-interactively to completion. When your requirements are well-defined and the task decomposes into independent subtasks, the workflow is a better fit than the compose agent — you can fire-and-forget and let the parallelism do its job. For exploratory or ambiguous tasks where you need to redirect mid-flow, ask questions, or inject judgment between steps, the compose agent's conversational mode remains the right choice.

Other highlights: dedicated system prompts for DeepSeek, GLM, and MiniMax; and a fix for Windows CJK shell output garbling — on non-UTF-8 locales (e.g. zh-CN with code page 936/GBK) spawned subprocesses now force UTF-8 encoding, covering both the bash tool and TUI shell mode.

Workflow TUI 全面重做——运行状态升级为全屏页面,每个 agent 以消息卡片形式展示(带实时阶段/状态计数器),支持嵌套下钻到子 agent 的完整对话。内联面板限制在 12 行以内不刷屏,全屏页面则提供完整的运行可观测性。

新增内置 compose workflow,把 Brainstorm → Design → Implement (TDD) → Verify → Review → Merge 流程编码为确定性程序:自动将独立任务并行分发到隔离 worktree、在阶段之间传递结构化输出(brainstorm 结论 → 实现意图 → review 判定 → merge)、限定重试上限、全程非交互跑到底。当需求明确且任务可以拆解为独立子任务时,workflow 比 compose agent 更合适——丢出去让并行跑完即可。如果任务本身比较探索性、需要中途介入改方向或在步骤间注入人工判断,compose agent 的对话式编排仍然是更好的选择。

其他重点:为 DeepSeek、GLM、MiniMax 添加了专用系统提示词;修复了 Windows 下中文 shell 输出乱码——非 UTF-8 区域设置(如简中 GBK/936 代码页)下的子进程现在强制 UTF-8 编码,bash 工具和 TUI shell 模式均已覆盖。

Features

  • workflow/tui: full-screen workflow page with message-style agent cards — live spinner/status/phase/colored counters in an inline panel (capped to 12 lines), drill-down into each agent's full conversation, nested workflow drill-down, scroll position preserved across navigation; new observability-only structure tree records per-run phase/agent/workflow nodes with parameters and result summaries (#1375)
  • workflow/compose: add built-in compose workflow — a programmatic pipeline that enforces the Brainstorm → Design → Implement (TDD) → Verify → Review → Merge phases as code. Compared to the existing text-constrained compose agent: the workflow auto-parallelizes independent tasks into per-task worktrees, chains each phase's structured output to the next (brainstorm rationale feeds implementer intent, review verdict feeds merge), enforces bounded retry caps, and runs non-interactively end-to-end. The compose agent remains better for interactive work where you need to redirect mid-flow or inject human judgment between steps. Supports incremental amend (re-running on existing docs reuses them and scopes the fan-out to the actual diff) (#1380)
  • provider: add dedicated system prompts for DeepSeek (#1389), GLM (#1396), and MiniMax (#1398) models, routed by model API id
  • tui: show view workflow agents keybind hint after workflow tool messages, reusing the existing subagents panel (#1353)

Bug Fixes

  • session: detect and recover from text-form tool calls — when a model serializes a tool call as prose markup (<invoke name=...>) instead of a structured tool_use block, the turn is discarded and retried (bounded by MIMOCODE_TEXT_TOOL_CALL_RETRY_LIMIT, default 2); prevents 400 errors and session poisoning (#1336)
  • server: add keep-alive heartbeat (whitespace every 10s) on POST /:sessionID/message stream to prevent external clients from timing out during long waits (e.g. question tool blocking on human input) (#1354)
  • tui: default to free mimo-auto on clean install instead of a paid model that unauthenticated users can't call (#1434)
  • tui: force UTF-8 encoding for Windows shell subprocesses to fix CJK mojibake — covers both the bash tool and TUI shell mode (#1418)
  • security: remove SSRF check from MCP server connections — user-configured MCP servers on private networks (10.x, 172.x) are a normal pattern; SSRF protection now only applies to AI-initiated webfetch requests (#1328)
  • agent: plan-mode edit/write backstop — a persisted "always" approval can no longer override plan's deny for edit/write; bash/workflow left to model discipline with clearer prompt reinforcement (#1330)
  • provider: let xiaomi provider use its models.dev name "Xiaomi" instead of hardcoded "MiMo" that collided with the free mimo provider (#1366)
  • actor: restore previous spawnRef binding on finalizer cleanup instead of wiping to undefined, fixing checkpoint writer breakage when Actor.layer initializes more than once (#1416)

Refactor

  • Restructure agent system prompt with comprehensive sections for modes, permissions, tools, tasks, subagents, and workflows (#1407)

Docs

  • Explain how to opt in to allowing the system temp directory (/tmp) via config — default unchanged, access still prompts (#1339)
  • Add MiMo Ecosystem section linking awesome-mimo-agent (#1440)

Internal / CI

  • Skip flaky cancel-during-fan-out and hung-agent-timeout tests (#1417)
  • Test reliability improvements: backfill DB isolation (#1395), correctness fixes (#1392), remove flaky MCP lifecycle test (#1391)
  • Update MimoAuthPlugin config tests for xiaomi name removal (#1386)