XM

xiaomimimo/mimo-code

Developer tools
13.7K stars Quality 79 Trend 56MIT

MiMo Code: Where Models and Agents Co-Evolve

Overview

MiMo Code: Where Models and Agents Co-Evolve MiMoCode is a terminal-native AI coding assistant. It can read and write code, run commands, manage Git, and use a persistent memory system to keep a deep understanding of your project across sessions while continuously improving itself. MiMo Auto is built in as a free-for-limited-time channel, so you can start with zero configuration. MiMoCode also supports connecting to any mainstream LLM provider API. The first launch guides you through configuration automatically. Supported options: - — anonymous channel, zero configuration - — OAuth login - — migrate existing authentication in one step - — add any OpenAI-compatible API in the TUI If you encounter garbled text when copying on WSL, install xsel: Windows: garbled CJK (Chinese/Japanese/Korean) output in the shell On Windows with a non-UTF-8 system locale (e.g. zh-CN, whose active code page is 936/GBK), command output containing CJK characters may appear garbled (mojibake).

README

MiMoCode

MiMo Code: Where Models and Agents Co-Evolve

中文 | English

Website | Blog


MiMoCode is a terminal-native AI coding assistant. It can read and write code, run commands, manage Git, and use a persistent memory system to keep a deep understanding of your project across sessions while continuously improving itself.

MiMoCode supports connecting to any mainstream LLM provider API.

Xiaomi MiMo Desktop

国内版下载 | Global Download

Xiaomi MiMo Desktop is built for real-world work: one conversation can handle office work, design, coding, and multimodal creation, while multiple conversations can divide work and collaborate. The desktop app is powered by MiMo Code as its core engine, bringing its terminal-native intelligence to desktop workflows.

  • Smart orchestration: evaluates task type and cost, then dynamically selects models, frameworks, and tools; complex tasks can run across multiple agents in parallel.
  • Continuous iteration: drag in files in multiple formats, create PPTs, webpages, 3D assets, and apps, preview and operate on results in-session, edit selected regions precisely, and roll back versions.
  • Controlled long-task cost: routes between standard and flagship models, edits only the required regions, and supports up to 99% same-session and 95% cross-session cache hit rates.
  • Browser control: opens webpages, retrieves information, fills forms, and checks key interactions after generating webpages.
  • Computer control (international version only): reads the screen and operates mouse and keyboard across apps; Record & Replay lets you reuse recorded workflows with natural language.

Powered by the new MiMo-V2.6-Pro and MiMo-V2.6-Flash models.


Quick Start

# One-line install (macOS / Linux)
curl -fsSL https://mimo.xiaomi.com/install | bash

# One-line install (Windows PowerShell)
powershell -ep Bypass -c "irm https://mimo.xiaomi.com/install.ps1 | iex"

# Run
mimo

The first launch guides you through configuration automatically. Supported options:

  • Xiaomi MiMo Platform — OAuth login
  • Codex (ChatGPT Pro/Plus) — OpenAI OAuth login
  • Import from Claude Code — migrate existing authentication in one step
  • Provider list — connect catalog providers by API key, or OAuth where supported (e.g. xAI/Grok)
  • Custom Provider — add any OpenAI-compatible API in the TUI

MiMo Ecosystem

Beyond MiMoCode, Xiaomi MiMo models also work in other agents and coding tools like Cursor, Cline, and Zed.

awesome-mimo-agent collects setup guides for using MiMo in those tools — worth a look if you want to try MiMo elsewhere. Contributions welcome: open a PR to add your own setup.


Core Features

Multiple Agents

Agent Description
build Default. Full tool permissions for development
plan Read-only analysis mode for code exploration and solution design

Press Tab to switch between primary agents. Build and Plan can switch at any time; other custom or special modes lock once the first message is sent.

Persistent Memory

Cross-session memory powered by SQLite FTS5 full-text search:

  • Project memory (MEMORY.md) — persistent project knowledge, rules, and architecture decisions
  • Session checkpoint (checkpoint.md) — structured state snapshots maintained automatically by the checkpoint-writer subagent
  • Scratch notes (notes.md) — temporary note area for agents
  • Task progress (tasks//progress.md) — per-task logs

Memory is injected automatically when a session resumes, so the agent does not need to relearn project context.

Intelligent Context Management

  • Automatic checkpoints — decides when to save session state based on the model context window
  • Context reconstruction — when context approaches the limit, rebuilds it from the latest checkpoint, project memory, task progress, and retained recent messages so the agent can continue the current task
  • Budgeted injection — uses a token budget to control how much checkpoint, memory, and notes content enters context, with importance ranking
  • Adjustable compaction point — /context-limit (or compaction.max_context) makes a model compact earlier than its own window, per model

Task Tracking

A tree-shaped task system (T1, T1.1, T1.2, …) that integrates automatically with the checkpoint system, so task progress is preserved when sessions resume.

Subagent System

The primary agent can create subagents on demand. Subagents share the current session context and can work in parallel, with lifecycle tracking, cancellation, and background execution.

Goal / Stop Condition

The /goal command sets a stopping condition for a session. When the agent tries to stop, an independent judge model evaluates the conversation to decide whether the condition is truly satisfied — preventing premature “optimistic stops” during autonomous work.

Compose Mode

Use the /compose-next skill to run an end-to-end feature delivery loop: a single self-contained contract covering grill → workspace → spec → implement → verify → review → finalize → finish, with feature documents at docs/compose/spec/.md under the workspace root. Do not combine it with plan mode.

Workflows

Workflows are deterministic JavaScript scripts that orchestrate multiple agents in a sandboxed runtime. Unlike agent conversations, workflows encode fixed phase sequences with bounded retries and automatic parallelization — fire-and-forget execution with no user interaction required.

MiMoCode ships with three built-in workflows:

Workflow Phases Description
deep-research Brief → Plan → Research → Reflect → Write → Review Multi-source deep research report generator. Plans independent research angles, runs parallel sub-agents to collect cited findings, reflects on gaps, writes a single coherent Markdown report, then cold-reviews citations. Convergent: resumable via file checkpoints.
fact-check Plan → Search → Extract → Group → Crosscheck → Report Adversarial fact verification. Runs parallel web searches, extracts checkable facts, groups duplicates, then cross-checks each with a 3-juror adversarial vote. Best for precise claims (“Is X true?”).
research-experiment Baseline → Loop → Audit → Report Autonomous optimization loop for a mechanically verifiable metric. Establishes a baseline, iterates through hypothesize → implement → evaluate → keep/revert, audits for metric gaming, and produces a reproducible result log. Requires a fixed-budget evaluation command and an explicit editable-file scope.

Custom workflows: Place a .js file in .mimocode/workflows/ or .claude/workflows/ to define your own, or override a built-in by using the same name.

Builtin Skills

Skills are reusable instruction sets that teach agents how to handle specific tasks (e.g. generating PDFs, writing academic papers, searching arXiv). For a new task, MiMoCode searches available skills by exact name, localized alias, and BM25 relevance. High-confidence matches are loaded automatically; uncertain matches are ranked for the agent to assess. In the TUI, type / to browse the autocomplete list or invoke a skill directly with / — mentioning two or more skills in a single message auto-loads them and injects a multi-skill orchestration plan.

MiMoCode bundles the following builtin skills:

Skill Description
arxiv Search, read, cite, and analyze arXiv papers
claude-code Drive the Claude Code CLI for coding, testing, review, and Git tasks (opt-in: MIMOCODE_ENABLE_AGENT_CLI_SKILLS)
codex Drive the Codex CLI in headless automation, CI, containers, and remote environments (opt-in: MIMOCODE_ENABLE_AGENT_CLI_SKILLS)
compose-next Spec→ship feature delivery orchestration — clarify, spec, implement, verify, review, finish
data-analytics Analyze product and business data through reusable workflows for data quality, KPIs, dashboards, reports, notebooks, and market sizing
deep-research Produce cited, multi-source research reports with parallel subagents and built-in web tools
docx-official Produce, read, and transform Word (.docx) files
grok-build Operate the Grok Build CLI for interactive and headless agent workflows (opt-in: MIMOCODE_ENABLE_AGENT_CLI_SKILLS)
html-to-video-pipeline HTML-to-MP4 rendering via headless browser + ffmpeg
learn-everything Turn documents, URLs, or topics into adaptive courses with exercises, feedback, and progress tracking
loop Schedule recurring prompts on a fixed cadence
mimocode-docs Self-documenting reference for MiMoCode features, commands, providers, and configuration
modern-python-toolchain Set up modern Python projects with uv, Ruff, and Pyright
pdf-official Produce, read, fill, and transform PDF files
pptx-official Author and manipulate PowerPoint (.pptx) decks
product-design Explore, audit, implement, and QA product and UX designs through focused workflows
research-paper-writing Write and polish academic papers (ML/CV/NLP style)
sales Support sales research, meeting preparation, account prioritization, deal strategy, forecasting, and CRM workflows
skill-creator Interactive guide for creating and improving agent skills
super-research Run long-horizon, auditable research, experiments, benchmarks, diagnostics, reproductions, and citation checks
xlsx-official Build, clean, and transform spreadsheets (.xlsx/.csv)

The skills claude-code, codex, and grok-build drive other agent CLIs from the terminal. They ship off by default; set MIMOCODE_ENABLE_AGENT_CLI_SKILLS=true to enable them. Other skills may still require task-specific tools described in their instructions.

Overriding a builtin skill: Create a skill with the same name under the project (.mimocode/skills//SKILL.md) or personal (for example ~/.config/mimocode/skills//SKILL.md) MiMoCode skills directory. Open-standard .agents/skills/ in the project and ~/.agents/skills/ are compatible discovery roots. User skills discovered later in the scan order override builtins with the same name.

Voice Input

Real-time streaming voice input powered by TenVAD and MiMo ASR. Activate with /voice, then speak — audio is segmented by pauses and transcribed incrementally into the input. Available for MiMo logged-in users. Requires sox (brew install sox on macOS, other platforms similar).

Dream & Distill

  • /dream — scans recent session traces, extracts persistent knowledge into project memory, and removes outdated entries
  • /distill — discovers repeated manual workflows in recent work and packages high-confidence candidates into reusable skills, subagents, or commands

Configuration

MiMoCode uses JSON/JSONC config files with published JSON Schemas for autocompletion and validation.

File Locations

File Project-level Global
Main config .mimocode/mimocode.jsonc (also .json) ~/.config/mimocode/mimocode.jsonc (also .json)
TUI config .mimocode/tui.json ~/.config/mimocode/tui.json
Auth credentials — ~/.local/share/mimocode/auth.json

On Windows, XDG paths fall under %LOCALAPPDATA%\mimocode\. You can override all paths with MIMOCODE_HOME.

JSON Schemas

MiMoCode auto-injects a $schema field when it first loads your config, so your editor gets completions and validation out of the box:

Config Schema URL
mimocode.jsonc / mimocode.json https://mimo.xiaomi.com/mimocode/config.json
tui.json https://mimo.xiaomi.com/mimocode/tui.json

Custom OpenAI-Compatible Endpoints

If your provider is not in the built-in model catalog, configure it directly with its base URL, API key, and model ID:

{
  "$schema": "https://mimo.xiaomi.com/mimocode/config.json",
  "model": "custom/MODEL_NAME",
  "provider": {
    "custom": {
      "name": "Custom",
      "npm": "@ai-sdk/openai-compatible",
      "only_configured_models": true,
      "models": {
        "MODEL_NAME": {
          "name": "MODEL_NAME"
        }
      },
      "options": {
        "baseURL": "BASE_URL",
        "apiKey": "API_KEY"
      }
    }
  }
}
  • Use the exact keys baseURL and apiKey.
  • Preserve the base URL and model ID exactly as supplied. MiMoCode does not require a known provider and you should not add or remove /v1 unless the endpoint requires it.
  • The key under models is the upstream model ID. Model IDs containing / are supported because only the first / in model separates the provider ID from the model ID.
  • Replace custom with another unused lowercase provider ID if needed, and use the same ID in the top-level model value.
  • @ai-sdk/openai-compatible is for OpenAI-compatible APIs. Services using a different wire protocol require their provider-specific adapter.

Put user-wide settings in ~/.config/mimocode/mimocode.jsonc (or mimocode.json in the same directory), or project-only settings in .mimocode/mimocode.jsonc (or .json), and merge them with any existing configuration. Because apiKey is stored as plaintext, keep the file readable only by your user and never commit it. Run mimo models or use the TUI model picker to verify the configured model.

To declare which input modalities a custom model supports (image, audio, video, PDF), run /modalities in the TUI — a multi-select dialog that persists the setting to config without hand-editing.

Key Options

  • Provider and model selection
  • Agent permissions and custom agents
  • Checkpoint and memory behavior
  • MCP server connections
  • Keybindings and theme

Max Mode (parallel best-of-N reasoning with judge selection) can be enabled via experimental.maxMode in the config.


Development

bun ci                   # Install dependencies (= bun install --frozen-lockfile)
bun run dev              # Run in development mode
bun run typecheck          # Type check

Relationship to OpenCode

MiMoCode is built as a fork of OpenCode. It keeps all core OpenCode capabilities (multiple providers, TUI, LSP, MCP, plugins) and adds persistent memory, intelligent context management, subagent orchestration, goal-driven autonomous loops, compose-next end-to-end delivery, Dynamic Workflows, and self-improvement via dream/distill.


Community

Scan the QR code to join the community group chat:

  


License

Source code is licensed under the MIT License.

Use of MiMoCode is also subject to the Use Restrictions. Use of Xiaomi MiMo-hosted services is subject to the MiMo Terms of Service. Use of the MiMo name, logo, and trademarks is subject to the MiMo Trademark Policy.

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add xiaomimimo/mimo-code
New to MCP? Start with the mcpskill.org guide →