OPEN SOURCE DEEP DIVE
MiMo Code: Xiaomi terminal coding agent betting on memory and self-evolution
Xiaomi open-sourced terminal-native AI coding assistant, TypeScript built with bun. The source is MIT but usage is additionally bound by USE_RESTRICTIONS.md, the MiMo terms of service and the trademark policy - read those before treating it as plain MIT. The README states it is a fork of OpenCode: it keeps the multi-provider, TUI, LSP, MCP and plugin core and adds persistent memory (SQLite FTS5 full-text search across four kinds - project MEMORY.md, session checkpoints, scratch notes and task progress - injected automatically on session resume), intelligent context management (near the limit it rebuilds from the latest checkpoint plus project memory plus task progress plus retained recent messages, ranked by importance against a token budget), goals and stop conditions (/goal sets the condition, and when the agent wants to stop a separate judge model assesses whether it was truly met, which targets optimistic early quitting), and deterministic JS workflows in a sandbox (compose splits independent tasks into isolated git worktrees with per-task TDD; also deep-research, fact-check with three-reviewer adversarial voting, and research-experiment with an anti-metric-gaming audit). Twenty built-in skills (arxiv, claude-code, codex, docx, pdf, pptx, xlsx, html-to-video, product-design and more), compatible with four skill roots - .agents/skills, .claude/skills, .codex/skills, .opencode/skills - where a user skill of the same name overrides the built-in. /dream and /distill are its signature: the first distils recent session trajectories into project memory and prunes stale entries, the second finds your repeated manual routines and packages high-confidence candidates into reusable skills. Model agnostic - the Xiaomi platform, Codex/ChatGPT OAuth, or any OpenAI-compatible endpoint. 13.4k stars. We have not installed or run it; memory-restore accuracy, judge-model effectiveness and the vendor-stated cache hit rates are unverified by us, so it is graded as pending reproduction.
What it is
MiMoCode is Xiaomi's terminal-native AI coding assistant: it reads and writes code, runs commands, manages Git, and keeps a deep cross-session understanding of your project through a persistent memory system while continuously improving itself. MIT licensed (with additional use restrictions), TypeScript (built with bun), site at mimo.xiaomi.com/mimocode, installed with one curl or npm install -g @mimo-ai/cli, run with mimo. The README states it is a fork of OpenCode: it keeps the core (multiple providers, TUI, LSP, MCP, plugins) and adds persistent memory, context management, sub-agent orchestration, goal-driven autonomous loops, compose workflows, and two self-improvement paths, /dream and /distill.
This is the entry behind the request for "Xiaomi's open-source coding agent". It shares a form with hermes-agent, deepseek-harness and pi (a coding agent in the terminal), but it is built on OpenCode's shoulders rather than written from scratch, which is why its feature surface is so wide.
What it actually bets on: memory and context, not the model
MiMoCode connects to any mainstream LLM (Xiaomi's own platform, Codex/ChatGPT OAuth, auth migrated from Claude Code, catalog providers, or any OpenAI-compatible endpoint). In other words it does not bet on one model; it bets on the engineering around the model. Four parts of the README carry the most information:
| Mechanism | The real pain it addresses | Engineering detail (evidence this is not a slide feature) |
|---|---|---|
| Persistent memory | Every new session forces the agent to re-learn the project | Backed by SQLite FTS5 full-text search; split into project memory (MEMORY.md), session checkpoints (checkpoint.md), scratch notes (notes.md) and task progress (tasks/<id>/progress.md), injected automatically on resume |
| Intelligent context management | Long tasks hit the context limit and truncation drops the binding constraints | Near the limit it rebuilds context from the latest checkpoint plus project memory, task progress and retained recent messages; importance-ranked injection under a token budget; /context-limit compacts earlier than the model's own window |
| Goal / stop condition | During autonomous long runs the agent "optimistically stops early" | /goal sets a stop condition; when the agent tries to stop, an independent judge model evaluates the conversation to decide whether the condition is truly met |
| Workflows (deterministic JS scripts) | Conversational agents suit "fixed phases, parallelisable, unattended" work poorly | Fixed phase sequences in a sandboxed runtime with bounded retries and automatic parallelisation; compose fans independent tasks into isolated git worktrees with per-task TDD; plus deep-research, fact-check (a three-juror adversarial vote) and research-experiment (an autonomous optimisation loop with an anti-metric-gaming audit) |
Read together, these four reveal MiMoCode's thesis: the bottleneck in a coding agent is not how smart a single model call is, but whether it remembers across sessions, keeps constraints over long tasks, and stays on course when running autonomously. The goal-judge is especially worth recording - it uses "one model supervising whether another should stop" to fight optimistic early stopping, which is treating reliability as systems engineering rather than as a prompt line.
Skills: twenty bundled, plus the ability to mint more
MiMoCode ships twenty built-in skills, covering arxiv (search, read, cite, analyse papers), claude-code and codex (delegate coding, testing, review and Git to those two CLIs), the office four of docx-official / pdf-official / pptx-official / xlsx-official (read, write, transform), html-to-video-pipeline (headless browser + ffmpeg to MP4), product-design, data-analytics, deep-research, skill-creator (an interactive guide to authoring new skills), and more. Discovery is by exact name, localised alias and BM25 relevance; high-confidence matches load automatically, and naming two or more skills in one message injects a multi-skill orchestration plan.
This connects directly to our office / PPT line: MiMoCode makes skills like pptx-official built-in and auto-mountable first-class citizens, which is a different distribution shape from externally installed skills such as guizang-ppt-skill or frontend-slides. It also opens up compatible skill roots - .agents/skills (the open standard), .claude/skills, .codex/skills and .opencode/skills can each be enabled, and a user skill of the same name overrides the built-in.
The two self-improvement commands are its signature: /dream scans recent session traces, distils durable knowledge into project memory and removes outdated entries; /distill finds repeated manual workflows and packages high-confidence candidates into reusable skills, sub-agents or commands. That is where the tagline "models and agents co-evolve" lands - the agent grows capability out of what you actually do.
Desktop form: MiMo Desktop
The README also promotes MiMo Desktop (international beta, by invitation), powered by MiMo Code as its core engine, moving terminal capability to the desktop: one conversation handles office work, design, coding and multimodal creation while multiple conversations divide and collaborate; smart orchestration picks models, frameworks and tools dynamically by task type and cost, running complex tasks across parallel agents; you drag in files of many formats to make PPTs, webpages, 3D assets and apps, preview and operate in-session, edit selected regions precisely and roll back versions; browser control (open pages, retrieve information, fill forms, check key interactions after generating a page); and computer control (international version only - read the screen and drive mouse and keyboard across apps, with Record & Replay to reuse recorded workflows in natural language). On cost, the vendor claims standard/flagship model routing, region-only edits, and up to 99% in-session / 95% cross-session cache hit rates.
Boundaries and tradeoffs
- Use restrictions sit on top of MIT: the source is MIT, but use is additionally subject to
USE_RESTRICTIONS.md, Xiaomi MiMo terms of service and the trademark policy. Those must be read before treating it as pure MIT open source - "open source" is not the same as "unrestricted commercial use". - The fork lineage cuts both ways: inheriting OpenCode's mature core is a strength, but it also couples capability boundaries to upstream, and the distinctive work lands in the memory / context / orchestration / self-improvement layers rather than in a rewritten substrate.
- Some capability is login-bound: voice input (TenVAD + MiMo ASR), the desktop beta and the MiMo-X-Pro/Flash-Preview trials are for MiMo logged-in users; they are absent when running purely local open weights.
- Picky terminal environments: the README itself lists the traps - macOS Terminal.app is unsupported, WSL clipboard needs xsel, running the TUI directly over SSH lags and wants local rendering plus a remote server, and non-UTF-8 Windows locales mojibake. These are real engineering details and real onboarding friction.
Position on agientry
Our coding-agent line already includes hermes-agent, deepseek-harness, pi and several OpenCode-derived entries; MiMoCode is the only one from a phone OEM and explicitly centred on memory plus self-evolution. It is not on the same layer as LangGraph / Deep Agents: those are a runtime and an embeddable harness, while MiMoCode is a finished CLI for developers. Its desktop form pushes the coding agent toward a generalist "one conversation for office + design + coding", which crosses our office, design and PPT lines.
Facts on this page come from the project README (read in full, including core features, workflows, skills, voice, desktop, configuration, the OpenCode relationship and licence) and official site links; stars, licence and language come from the GitHub API. We have not installed or run MiMoCode and have done no benchmarking or reproduction - the real accuracy of memory restoration, the effectiveness of the goal-judge model, the actual benefit of /dream and /distill, and the vendor's claimed cache-hit rates are all unverified by us, so this entry is graded as needing reproduction.