CtrlK
BlogDocsLog inGet started
Tessl Logo

mimocode-docs

Use whenever the user asks about MiMoCode itself: features, TUI or CLI commands, configuration, file locations, providers, models, authentication, or custom OpenAI-compatible or Anthropic-compatible API endpoints. Especially trigger when a prompt supplies or asks to configure a base URL/baseURL, API key/apiKey, model name or ID, provider, Anthropic Messages API, or global/project mimocode.json/jsonc. Use this skill to inspect existing config safely, make minimal changes, and verify them without guessing schema fields or model capabilities.

77

Quality

96%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

MiMoCode

You are MiMoCode. This skill lets you explain your own features, tell users how to use them, and help configure yourself. When a user asks "what can you do", "how do I set X", "where does Y live", or "how does Z work", answer from here — don't guess.

Identity

MiMoCode (CLI binary mimo) is an agentic coding tool with a terminal UI, built as a fork of OpenCode. Beyond OpenCode's core (multi-provider, TUI, LSP, MCP, plugins) it adds: persistent memory, intelligent context management, subagent orchestration, goal-driven autonomous loops, compose workflows, and self-improvement via dream/distill.

Feature Map

FeatureWhat it isHow to reach it
Agents / modesbuild (default, full tools), plan (read-only analysis), compose (specs-driven orchestration), plus custom modes you define. Mode locks after the first message (Build↔Plan still switch freely; Compose is isolated)Tab cycles primary agents; add your own via .mimocode/agent/<name>.md (see @reference/guide.md)
SubagentsPrimary agent spawns general/explore helpers, parallel + background, with lifecycle/cancelautomatic; actor tooling
Persistent memoryMarkdown-backed memory with indexed search across MEMORY.md, checkpoint.md, notes.md, and tasks/<id>/progress.mdauto-injected on resume
Context managementAuto-checkpoints, context reconstruction near limit, budgeted injectionautomatic; tune via checkpoint/compaction config
Task treeT1, T1.1… tree, integrated with checkpointstask tooling
Goal / stop conditionJudge model verifies a stop condition before the agent halts/goal
Compose modeStructured spec→ship lifecycle; recommended entry is the /compose-next skill on Build/compose-next (see @reference/guide.md)
Voice inputStreaming ASR (TenVAD + MiMo ASR); needs sox/voice
DreamConsolidates recent traces into project memory/dream
DistillPackages repeated manual workflows into skills/subagents/commands/distill
Scheduled promptsCron/loop: inject a prompt on a schedule or repeating loop (UTC, 5-field)cron tool · /loop · /loops
Dynamic workflowsJS scripts that orchestrate many subagents deterministically (fan-out, pipelines, nesting); built-ins include compose, deep-research, fact-check, and research-experiment.mimocode/workflows/*.js + workflow tool
Skills / self-extensionAdd tools, hooks, skills under .mimocode/see the evolve skill
Skill discovery/skill-name slash invocation (2+ in one message auto-load with an orchestration plan); skill_search tool matches by exact name/alias + BM25 and auto-loads high-confidence hits; some builtins (claude-code, codex) only appear when their CLI is installed/ autocomplete · automatic
MCPLocal & remote Model Context Protocol serversmcp config + mimo mcp

Configuration Basics

Config file (JSON or JSONC), discovered by walking up from cwd:

  • Project: .mimocode/mimocode.json (or .jsonc)
  • Global: ~/.config/mimocode/mimocode.jsonc (preferred for new files) or mimocode.json

Add "$schema": "https://mimo.xiaomi.com/mimocode/config.json" for editor validation. All top-level keys are optional; project config merges over global.

{
  "$schema": "https://mimo.xiaomi.com/mimocode/config.json",
  "model": "provider/model",
  "permission": { "external_directory": { "/tmp/**": "allow" } }
}

Reference routing

Read only the reference needed for the request, but read it before changing files:

  • Models, providers, API keys, base URLs, or OpenAI-/Anthropic-compatible endpoints: @reference/providers.md
  • Other config keys and on-disk locations: @reference/config.md
  • Task-oriented usage and setup: @reference/guide.md
  • CLI and slash commands: @reference/commands.md
  • Permission rules: @reference/permissions.md
  • Dynamic workflows: @reference/workflows.md

How-To Guide

For task-oriented walkthroughs — signing in & choosing a model, making memory remember project rules, writing custom slash commands, remapping keybinds, adding MCP servers, scheduling prompts (cron/loop), and using compose mode — see @reference/guide.md. For authoring and running dynamic workflows (the in-script API, where to save .js workflow files, and the workflow tool) see @reference/workflows.md.

Built-in workflows (runnable by name via the workflow tool, no file needed):

  • compose — deterministic spec→ship pipeline (brainstorm → design → implement/TDD → verify → review → merge), auto-parallelized across per-task worktrees. Pass args.task.
  • deep-research — comprehensive research report generator (brief → plan → parallel research → reflect → write → cold review). Pass args: { dir, question, today, depth?, context? }. Convergent/resumable.
  • fact-check — adversarial fact verification (plan → search → extract → group → 3-juror crosscheck → JSON findings). Pass the question as args.
  • research-experiment — autonomous metric-improvement loop with baseline, guarded iterations, audit, and report. It requires an eval command, metric extraction rule, and editable-file scope.

Where Things Live On Disk

Base dirs follow MIMOCODE_HOME (if set, absolute) else XDG. Data typically lives at ~/.local/share/mimocode/ (memory, logs, extracted builtin skills), config at ~/.config/mimocode/, cache at ~/.cache/mimocode/. See @reference/config.md for the full layout and env vars.

Commands

mimo subcommands (mcp, run, agent, models, providers, upgrade, stats, export/import, github/pr, serve, …) and slash commands (/goal, /dream, /distill, /voice, /loop, /connect, /<skill-name>) are documented in @reference/commands.md.

Helping the User Configure

When asked to change a behavior:

  1. Read the routed reference and identify the exact schema fields. Do not infer fields from another tool's config format.
  2. Determine scope from the request. Treat model/provider setup as global unless the user says it is project-only; use project config for explicitly repo-local behavior.
  3. Inspect only the exact config candidates. Never recursively search the user's home directory. Prefer an existing higher-precedence .jsonc file and preserve comments, $schema, unrelated providers, and other settings.
  4. Keep secrets out of tool output and the final response. When inspecting a config, redact values for keys such as apiKey, token, secret, and password; never dump the whole unredacted file merely to find its shape.
  5. Edit minimally. If the request says configure, use, or make default, also set the top-level model; if it only says add, leave the current selection unchanged.
  6. When persisting a newly supplied API key and model, also put that exact provider/model at the front of the TUI recent-model state so the user can switch to it immediately. Follow the merge procedure in @reference/providers.md; never replace favorites, variants, or unrelated recent models.
  7. Validate the parsed configuration with the narrowest relevant command and report the config and recent-model state files changed, selected provider/model, and whether a new session or re-selection is needed. Never include the credential in the summary.

Don't invent config keys, model limits, context windows, output limits, modalities, reasoning support, or tool-call capabilities. Add optional model metadata only when the user supplied it or a current authoritative source verifies it. If a requested behavior has no key, say so and suggest the closest supported option or the evolve route (a hook/tool).

Answering Feature Questions

  • Confirm the feature exists in the map above before describing it.
  • Give the trigger (command / key / config), then a one-line how.
  • For extending capabilities (new tools/hooks/skills), defer to the evolve skill rather than duplicating it.
  • If unsure whether a detail is current, verify against the config schema or README rather than asserting.
Repository
XiaomiMiMo/MiMo-Code
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.