Interaction & Input

MiMo Code provides an interactive terminal interface or TUI for working on your projects with an LLM. This page covers how to enter messages, reference files, run commands, and steer the model while you work in the TUI.

Running MiMo Code starts the TUI for the current directory.

mimo

Or you can start it for a specific working directory.

mimo /path/to/project

Once you're in the TUI, you can prompt it with a message.

Give me a quick summary of the codebase.

To run MiMo Code programmatically from the command line instead, see Command Line.


Input basics

Type your message in the input box at the bottom and press enter to send.

  • New line: press shift+enter, ctrl+j, ctrl+return, or alt+return to insert a line break without sending.
  • In-line editing: the input box supports common cursor and deletion shortcuts, e.g. ctrl+a / ctrl+e to jump to the start/end of the line, ctrl+w to delete the previous word, ctrl+u to delete to the start of the line. See the full list in Keybinds.
  • Exit: press ctrl+c or ctrl+d, or use the /exit command.
TIP

Most actions use the ctrl+x leader key: press ctrl+x first, then the action key. For example, start a new session with ctrl+x then n. Learn more.


File references

You can reference files in your messages using @. This does a fuzzy file search in the current working directory.

How is auth handled in @packages/functions/src/api/index.ts?

The content of the file is added to the conversation automatically.


Image input

MiMo Code can scan images you provide and add them to your prompt. Just drag and drop the image into the terminal window.

none
[Image #1] Take a look at this image and use it as a reference.

Image support depends on whether the selected model supports multimodal input.


Bash commands

Start a message with ! to run a shell command.

none
!ls -la

The output of the command is added to the conversation as a tool result.


Slash commands

Type / followed by a command name to quickly execute actions. For example:

none
/help

Most commands also have a keybind using ctrl+x as the leader key. For the full list of built-in commands, see Slash Commands; for keybinds, see Keybinds.


Mode switching and interrupts

MiMo Code provides two built-in working modes, Build and Plan. Build mode can read and write files and run commands directly; Plan mode only outputs an action plan without modifying files, which suits complex or high-risk tasks.

  • Switch modes: press tab during a session to toggle between Build and Plan.
  • Interrupt a response: while the model is streaming output or calling tools, press esc to interrupt the current turn.

For more on configuring and customizing modes, see Modes.


Configure

You can customize TUI behavior through tui.json (or tui.jsonc).

tui.json
{
  "$schema": "https://mimo.xiaomi.com//tui.json",
  "theme": "mimocode",
  "keybinds": {
    "leader": "ctrl+x"
  },
  "scroll_speed": 3,
  "scroll_acceleration": {
    "enabled": true
  },
  "diff_style": "auto",
  "mouse": true
}

This is separate from mimocode.json, which configures server/runtime behavior.

Options

  • theme - Sets your UI theme. Learn more.
  • keybinds - Customizes keyboard shortcuts. Learn more.
  • scroll_acceleration.enabled - Enable macOS-style scroll acceleration for smooth, natural scrolling. When enabled, scroll speed increases with rapid scrolling gestures and stays precise for slower movements. This setting takes precedence over scroll_speed and overrides it when enabled.
  • scroll_speed - Controls how fast the TUI scrolls when using scroll commands (minimum: 0.001, supports decimal values). Defaults to 3. Note: This is ignored if scroll_acceleration.enabled is set to true.
  • diff_style - Controls diff rendering. "auto" adapts to terminal width, "stacked" always shows a single-column layout.
  • mouse - Enable or disable mouse capture in the TUI (default: true). When disabled, the terminal's native mouse selection/scrolling behavior is preserved.

Use MIMOCODE_TUI_CONFIG to load a custom TUI config path.