Releases: XiaomiMiMo/MiMo-Code
Release list
v0.1.13
What's Changed
- fix(runtime): use Node APIs for hashing and FTS queries in core by @yanyihan-xiaomi in #2110
- chore: drop the dead dev branch and the beta release path by @yanyihan-xiaomi in #2111
- fix(flag): read MIMOCODE_AUTO_APPROVE_DELETE lazily so embedders can toggle it at runtime by @JinyuXiang-Mimo in #2114
- feat(permission): make the delete-ask exemption instance-scoped, not process-global by @JinyuXiang-Mimo in #2115
- fix(provider): replay empty signed Anthropic thinking blocks by @MiMoHardFather in #2117
- fix(permission): let yolo auto-approve deletes by @MiMoHardFather in #2120
- feat(checkpoint): add disable switch by @MiMoHardFather in #2121
- fix(id): extend identifier timestamps to 64 bits before v1 wraps by @MiMoHardFather in #2122
- fix(checkpoint): hide disabled lifecycle prompt copy by @MiMoHardFather in #2124
- fix(checkpoint): hide disabled lifecycle prompt copy by @MiMoHardFather in #2130
- fix(session): stabilize MCP tool ordering by @MiMoHardFather in #2131
- fix(session): gate dynamic system prompt content behind flag by @MiMoHardFather in #2132
- fix(skill): add MIMOCODE_DISABLE_AGENTS_SKILLS flag by @MiMoHardFather in #2133
- fix(skill): dedupe skills catalog in model messages and cache global discovery by @MiMoHardFather in #2134
- perf(prompt): keep system environment cache-stable by @MiMoHardFather in #2119
- fix(agent): prevent subagents from spawning nested subagents by @MiMoHardFather in #2139
- fix(session): don't tell subagents to call the masked actor tool by @yanyihan-xiaomi in #2140
- fix(provider): enforce Anthropic image dimension limits by @MiMoHardFather in #2146
- fix(tui): bash_delete prompt — stale glyph leak, dropped deletion lines, sizing by @yanyihan-xiaomi in #2145
- fix(session): roll back the compaction boundary when no summary lands by @MiMoHardFather in #2148
- fix(codex): remove 372K context cap for GPT models by @yanyihan-xiaomi in #2149
- feat(permission): decouple skip-all from permission ask timeout by @yanyihan-xiaomi in #2151
- feat(server): OpenAI-compatible capability API on every session by @wqymi in #2147
- fix: remove hasSideEffect for OpenAI Responses API compatibility by @MiMoHardFather in #2152
- feat(exec): expose all request-authorized MCP tools to exec without search gating by @MiMoHardFather in #2153
- feat(exec): add ALL_TOOLS catalog and transpile scripts with TypeScript by @MiMoHardFather in #2154
- feat: add MIMOCODE_CODEX_MODE flag and unify system prompts by @MiMoHardFather in #2157
- feat(runtime): isolate child process environments by @yanyihan-xiaomi in #2159
- fix(gpt): use normal prompt for mimo-v2.5 models by @MiMoHardFather in #2161
- Update SDK types and OpenAPI spec by @yanyihan-xiaomi in #2162
- chore: bump version to 0.1.13 by @qiaozongming in #2164
Full Changelog: v0.1.12...v0.1.13
v0.1.12
What's Changed
- chore(sdk): sync generated types missed by earlier commits by @yanyihan-xiaomi in #2078
- fix(release): widen npmmirror sync window, drop auto-retry, exit non-zero on failure by @yanyihan-xiaomi in #2080
- feat(cli): add --yolo permission bypass alias by @MiMoHardFather in #2082
- docs: align contribution and security guidance by @yanyihan-xiaomi in #2079
- feat(bash): exempt temp-scoped deletes from the forced-ask confirmation by @JinyuXiang-Mimo in #2099
- fix(session): retry GPT server overload errors by @MiMoHardFather in #2100
- fix(skill-search): blacklist reminder models by @MiMoHardFather in #2103
- fix(auth): stop handing user credentials to child processes by @yuyang27 in #2101
- fix(compose): make Compose Next model-invocable by @yanyihan-xiaomi in #2102
- chore: bump version to 0.1.12 by @qiaozongming in #2105
New Contributors
Full Changelog: v0.1.11...v0.1.12
v0.1.11
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.md、notes.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_writeswitch — stop memory writes, keep reads by @wqymi in #2040 - skill: add
memory-searchbuiltin skill — SQLite trajectory DB query guide by @JinyuXiang-Mimo in #2046, #2053
Bug Fixes
- mcp: patch
@ai-sdk/openai-compatibleto 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
Docs
- remove free MiMo Auto API mentions from READMEs by @MiMoHardFather in #2075
New Contributors
Full Changelog: v0.1.10...v0.1.11
v0.1.10
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
- tui: add Vivid and Minimal visual modes by @yanyihan-xiaomi in #2031
- exec: restore MCP dispatch with request-scoped gating, structured results, and live sub-call trace by @JinyuXiang-Mimo in #1951
- mcp: add token-aware request-scoped tool discovery by @MiMoHardFather in #1923
- mcp: support client-side sampling with audio by @wqymi in #1972
- compaction: per-model early-compaction budget, and fix the Codex context clamp by @yanyihan-xiaomi in #1930
- provider: replay unsigned Anthropic reasoning by @MiMoHardFather in #1906
- session: render Claude environment dynamically by @MiMoHardFather in #1990
- skill: add Playwright CLI automation bundle by @MiMoHardFather in #1917
- skill: add Grok Build CLI guide + localize its metadata by @MiMoHardFather in #1911, #1927
- skill: separate model reachability from authorization by @yanyihan-xiaomi in #2026
- cli: add local install script by @MiMoHardFather in #1910
- config: disable auto-dream and auto-distill by default by @JinyuXiang-Mimo in #1919
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: falseby @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
/rebuildperform 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_enterso 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
- add TUI rendering troubleshooting by @yanyihan-xiaomi in #2033
- simplify Claude Code skill trigger description by @MiMoHardFather in #1912
Internal / CI
- make three environment-dependent test suites deterministic by @yanyihan-xiaomi in #1933
- localize Playwright slash command; ignore Playwright CLI artifacts by @MiMoHardFather in #1934, #1918
New Contributors
- @anandlo made their first contribution in #1895
- @peipeiwang-xiaomi made their first contribution in #2024
Full Changelog: v0.1.9...v0.1.10
v0.1.9
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
What's Changed
- docs: update README with new workflow, expanded skills, and custom endpoint config by @MiMoHardFather in #1826
- docs: update mimocode-docs skill by @MiMoHardFather in #1823
- chore: bump workspace versions to 0.1.7 by @yanyihan-xiaomi in #1829
- fix(agent): confine dream/distill writes to memory and .mimocode by @JinyuXiang-Mimo in #1827
- docs(skill): pptx visual QA model selection — prefer current model, n… by @oscar-cao7 in #1828
- fix(session): never PRODUCE an empty-content user message (guard at createUserMessage + schema) by @wqymi in #1732
- refactor(skill-search): simplify reminder logic and add enable flag by @MiMoHardFather in #1845
- fix(project): preserve session time_updated during global re-parent by @oscar-cao7 in #1830
- feat(skills): per-OS CJK font guidance in office skills (docx/pptx/xlsx) by @clyfish in #1824
- feat(codex): add Codex login option and remove model filtering by @MiMoHardFather in #1852
- docs(mimocode): harden provider configuration guidance by @MiMoHardFather in #1856
- fix(session): contain checkpoint writer recovery by @yanyihan-xiaomi in #1859
- feat(skills): office skills pick up bundled runtimes via MIMO_* env vars; fix Windows soffice profile URI by @clyfish in #1862
- feat(tool): align GPT tool guidance and skill search by @MiMoHardFather in #1865
- feat(compose): add builtin /compose-next alongside deprecated Compose agent by @yanyihan-xiaomi in #1861
- chore(deps): remove unused sst & @actions/artifact — drop unlicensed transitive deps by @clyfish in #1869
- feat(model): support gpt model by @MiMoHardFather in #1864
- fix(prompt): clarify model identity and question channel by @MiMoHardFather in #1873
- docs: recommend /compose-next and sync missed v0.1.6/v0.1.7 features by @yanyihan-xiaomi in #1875
- chore: bump version to 0.1.8 by @qiaozongming in #1879
Full Changelog: v0.1.7...v0.1.8
v0.1.7
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
- tool: add
tool_script— programmatic tool orchestration in a QuickJS sandbox by @JinyuXiang-Mimo in #1749 - skill: add
skill_searchtool with BM25 matching by @MiMoHardFather in #1799 - skill: add data-analytics, product-design, and sales skill bundles by @MiMoHardFather in #1792
- skill: add learn-everything bundle by @MiMoHardFather in #1805
- skill: skill bundle autocomplete + i18n; rename
mimocodebundle tomimocode-docsby @MiMoHardFather in #1796, #1797 - session: session handoff and try-best detector (opt-in via
MIMOCODE_ENABLE_TRY_BEST_HANDOFF, default off) by @MiMoHardFather in #1751, #1767 - provider(xai): bump
@ai-sdk/xaito 3.0.102, sync Grok transform, add OAuth login by @wqymi in #1818
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
- document CJK/East-Asian font handling for office skills by @clyfish in #1758
- clarify pptx preview script paths and CLI-only scope by @yanyihan-xiaomi in #1789
- use
bun cifor install instructions by @clyfish in #1775, #1778
Internal / CI
- default
MIMOCODE_ENABLE_TRY_BEST_HANDOFFto off + align tests by @MiMoHardFather in #1767, #1770 - rename
build:devtobuild:local+ add root shortcut by @yanyihan-xiaomi in #1821 - skip two cold-warmup-flaky workflow/tool tests by @yanyihan-xiaomi in #1779
New Contributors
Full Changelog: v0.1.6...v0.1.7
v0.1.6
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-nametriggers 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
/modalitiescommand 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-permissionsruntime 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.permissionsmanifest for up-front permission declaration + engine-level agent retry by @wqymi in #1686 - session:
/rebuildcommand 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-mimobuiltin 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.posthooks 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
typefrom 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
_hasManualScrollby @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.buildfor cross-platform reliability; wire file hooks'eventhandlers 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-lockto auto-generated.mimocode/.gitignore; ensure.gitignoreis created when cron-lock acquires the directory by @yanyihan-xiaomi in #1629, #1714
Docs
- update modern-python-toolchain skill to current best practices by @yanyihan-xiaomi in #1662
- add theme font pitfall to docx skill, clarify pptx script deps by @yanyihan-xiaomi in #1742
- improve pptx skill with visual QA subagent + live preview server by @yanyihan-xiaomi in #1628
- add uv/PEP 723 support to docx-official skill by @yanyihan-xiaomi in #1739
- migrate theme schema URLs to mimo.xiaomi.com by @yanyihan-xiaomi in #1692
- add i18n descriptions for codex and claude-code skills by @MiMoHardFather in #1744
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
- @mvalentsev made their first contribution in #1665
Full Changelog: v0.1.5...v0.1.6
v0.1.5
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-research 和 fact-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-extendtoevolve— rewrite SKILL.md as proactive total self-modification interface (tools, hooks, knowledge, workflows, UI all rewritable); sync hook-api.md with missing events; addctx.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
@filereference 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_deletepermission type) — interceptsrm,rmdir,shred,git reset --hard,git push --force, etc. Opt-out viaMIMOCODE_AUTO_APPROVE_DELETE=true(#1588) - tui:
--dangerously-skip-permissionsflag with confirmation warning (#1542) - tui: clickable sidebar toggle button at content edge (#1541)
- config: automatic
$schemaURL migration fromopencode.aitomimo.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>.modelsconfig acts as implicit whitelist whenonly_configured_modelsis enabled (#1532, #1589) - orchestrator: Orchestrator mode (opt-in,
MIMOCODE_EXPERIMENTAL_ORCHESTRATOR) — a primary agent that delegates to child sessions via asessiontool 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,/loopskill, TUI fire-time clock row (#1479)
Bug Fixes
- provider: fix gpt-5.5 empty output and
reasoning part rs_… not founderrors — request encrypted reasoning content for Responses API round-tripping (#1530) - provider: defer vision model resolution to
environment()call time — fixes crash wheremimo upgrade/mimo uninstallfailed 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.tsin Node target (#1501) - compose: strengthen skill invocation prompt and fix RLHF resistance (#1598)
Refactor
- Prediction uses side-channel
generateTextinstead ofllm.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
v0.1.4
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
composeworkflow — 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 agentskeybind 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 structuredtool_useblock, the turn is discarded and retried (bounded byMIMOCODE_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/messagestream to prevent external clients from timing out during long waits (e.g.questiontool blocking on human input) (#1354) - tui: default to free
mimo-autoon 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
spawnRefbinding on finalizer cleanup instead of wiping to undefined, fixing checkpoint writer breakage whenActor.layerinitializes 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)