# Mimo Code：基于MiMo大模型的终端AI编程助手

> 一个使用TypeScript和Ink构建的终端AI编程助手，提供13种内置工具和多模型API支持

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-05-30T06:11:39.000Z
- 最近活动: 2026-05-30T06:25:48.112Z
- 热度: 163.8
- 关键词: AI编程助手, CLI工具, MiMo, TypeScript, Ink, 终端UI, REPL, MCP, 多模型支持, 开发者工具
- 页面链接: https://www.zingnex.cn/forum/thread/mimo-code-mimoai
- Canonical: https://www.zingnex.cn/forum/thread/mimo-code-mimoai
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者**: raaaaap
- **来源平台**: GitHub
- **原始标题**: mimo-code: A CLI coding agent powered by the MiMo large language model
- **原始链接**: https://github.com/raaaaap/mimo-code
- **发布时间**: 2026-05-30

## 项目简介

Mimo Code是一款基于终端的AI编程助手，将MiMo大语言模型的能力带入开发工作流。项目使用TypeScript和Ink（React for CLI）构建，提供一个交互式REPL环境，开发者可以通过自然语言对话来编写代码、执行命令、搜索文件和管理任务。

该项目代表了AI辅助编程工具的新方向——不依赖图形界面，而是深度集成到开发者最常用的终端环境中。

## 核心特性

### 13种内置工具

Mimo Code提供了丰富的工具集，覆盖开发工作的各个方面：

| 工具 | 功能描述 | 并发支持 |
|------|----------|----------|
| Bash | 执行shell命令，带超时保护 | ✅ |
| PowerShell | Windows原生PowerShell执行 | ✅ |
| FileRead | 读取文件，支持行号、偏移和限制 | ✅ |
| FileWrite | 创建或覆盖文件，自动创建目录 | — |
| FileEdit | 精确字符串替换，强制唯一性 | — |
| Glob | 按模式查找文件(最多200结果) | ✅ |
| Grep | 使用ripgrep搜索文件内容 | ✅ |
| WebFetch | 从URL获取和提取内容 | ✅ |
| WebSearch | 通过DuckDuckGo搜索网页 | ✅ |
| TodoWrite | 管理任务列表，结构化输出 | ✅ |
| NotebookEdit | 编辑Jupyter notebook单元格 | — |
| AskUserQuestion | 交互式多选或开放式提示 | — |
| Agent | 生成具有完整工具访问权限的子代理 | — |

### 多提供商API支持

项目支持多种大模型API，提供灵活的模型选择：

**MiMo (原生支持)**
- mimo-v2.5-pro: 1T参数，$1-2/M输入，1M上下文窗口
- mimo-v2.5: $0.40-0.80/M输入
- 支持自动压缩和长上下文处理

**OpenAI兼容API**
- 完整的OpenAI兼容API支持
- 流式SSE响应

**Anthropic Claude**
- 直接Claude API集成

## 技术架构

### 项目结构

```
src/
├── entrypoints/      # CLI入口点
├── main.tsx          # Commander CLI设置
├── query.ts          # 核心代理循环
├── QueryEngine.ts    # 对话生命周期管理
├── context.ts        # 系统上下文收集
├── screens/          # REPL屏幕(React/Ink)
├── components/       # UI组件
│   ├── Messages/     # 对话渲染
│   ├── PromptInput/  # 用户输入处理
│   ├── Mimo/         # 虚拟形象显示
│   └── ...
├── tools/            # 13种内置工具实现
├── services/
│   ├── api/          # API客户端适配器
│   ├── tools/        # 工具执行引擎
│   ├── permissions/  # 权限检查系统
│   └── mcp/          # MCP客户端
├── plugins/          # 事件驱动插件架构
├── commands/         # 15+斜杠命令
├── skills/           # 技能系统
├── buddy/            # 小米猫吉祥物
└── ...
```

### 核心查询循环

Mimo Code的核心是query.ts中的查询循环：

```
用户输入 → 系统提示 + 上下文 → API请求(流式)
    ↓
文本块 → 终端显示
工具调用 → 通过ToolRegistry执行 → 追加结果 → 循环
    ↓
(最多20轮或直到无更多工具调用)
```

工具编排智能高效：只读工具(安全)并行执行，破坏性工具串行执行并经过权限检查。

## 交互式功能

### 丰富的终端UI

基于React和Ink构建的终端界面提供：

- **语法高亮**: 代码块的美化显示
- **差异对比**: 文件修改的结构化差异视图
- **进度指示器**: 长时间操作的视觉反馈
- **小米猫吉祥物**: 动画ASCII形象，根据代理状态变化(空闲→思考→编码→成功/错误)

### 权限系统

5种权限模式满足不同安全需求：

| 模式 | 描述 |
|------|------|
| default | 破坏性操作需请求权限 |
| acceptEdits | 自动批准文件读写编辑 |
| bypassPermissions | 自动批准所有操作(谨慎使用) |
| plan | 只读模式，不写入或执行 |
| auto | 基于规则的自动处理，失败时询问 |

### 斜杠命令

15+内置命令用于会话控制：

| 命令 | 别名 | 功能 |
|------|------|------|
| /help | | 显示可用命令 |
| /clear | | 清屏 |
| /compact | | 压缩对话历史 |
| /config | | 显示当前配置 |
| /commit | /ci | 暂存所有更改并提交 |
| /diff | | 显示git差异 |
| /doctor | | 运行诊断 |
| /model | /m | 显示或切换模型 |
| /theme | /t | 显示当前主题 |
| /usage | | 显示token使用情况 |
| /status | | 显示会话状态 |
| /permissions | /perms | 显示或设置权限模式 |
| /plan | | 进入计划模式 |
| /export | | 导出对话 |
| /session | | 会话管理 |
| /skills | | 列出可用技能 |
| /tasks | | 任务管理 |

### 键盘快捷键

| 按键 | 动作 |
|------|------|
| Enter | 提交输入 |
| Shift+Enter | 换行 |
| Ctrl+C | 取消/退出 |
| Ctrl+D | 退出 |
| Up/Down | 历史导航 |
| Escape | 清除输入 |

## 配置系统

### 分层配置

设置从四个来源合并(优先级从高到低)：

1. **CLI标志**: --model, --api-key等
2. **本地设置**: .mimo/settings.local.json (gitignored)
3. **项目设置**: .mimo/settings.json
4. **用户设置**: ~/.mimo/settings.json

### 环境变量

| 变量 | 描述 |
|------|------|
| MIMO_API_KEY | MiMo API密钥 |
| MIMO_API_ENDPOINT | MiMo API端点 |
| OPENAI_API_KEY | OpenAI API密钥(备选) |
| OPENAI_API_BASE | OpenAI API基础URL(备选) |

### 主题系统

内置5种主题：
- mimo-dark (默认)
- mimo-light
- dracula
- nord
- solarized-dark

## 使用模式

### 交互式REPL (默认)

```bash
mimo
```

### 单次提示模式

```bash
mimo --mode single "解释React hooks的用法"
```

### 管道模式

```bash
echo "这段代码做什么?" | mimo --mode pipe
cat main.ts | mimo --mode pipe "解释这个文件"
```

### CLI选项

```bash
mimo [options] [prompt]

选项:
  -m, --model <model>      使用的模型 (默认: "mimo-v2.5")
  -k, --api-key <key>      API密钥
  --api-endpoint <url>     API端点URL
  --mode <mode>            模式: interactive, single, pipe
  -v, --verbose            详细输出
  --debug                  调试模式
  -o, --output <format>    输出格式: text, json, markdown
  --no-color               禁用颜色
  --theme <theme>          UI主题
  --max-tokens <n>         最大token数 (默认: 4096)
  --temperature <n>        温度参数 (默认: 0.7)
  --permission-mode <mode> 权限模式
  -h, --help               显示帮助
  -V, --version            显示版本
```

## MCP支持

项目实现了Model Context Protocol (MCP)客户端：

- **协议版本**: JSON-RPC 2.0 over stdio
- **功能**: 与外部工具和服务集成
- **扩展性**: 通过MCP服务器扩展功能

## 插件系统

基于EventBus的事件驱动架构：

- **事件总线**: 组件间通信机制
- **插件发现**: 自动加载插件
- **插件管理器**: 生命周期管理

## 测试覆盖

项目包含61个测试文件，覆盖：

- 所有13种工具的单元测试
- API适配器测试(OpenAI, Anthropic, MiMo)
- 查询引擎和对话流测试
- 插件、权限和设置系统测试
- 代理对话流集成测试

运行测试：
```bash
npm test          # 运行所有测试
npm run test:watch # 监视模式
npm run typecheck  # 类型检查
npm run lint       # 代码检查
```

## 技术亮点

1. **React for CLI**: 使用Ink在终端中实现React组件
2. **流式响应**: 支持SSE流式输出，实时显示AI响应
3. **智能工具编排**: 并发安全工具并行执行
4. **分层配置**: 灵活的配置覆盖机制
5. **完整类型支持**: TypeScript全项目覆盖
6. **虚拟形象系统**: 状态感知的ASCII动画

## 应用场景

Mimo Code适用于多种开发场景：

### 快速原型开发
通过自然语言描述快速生成代码框架和实现。

### 代码审查辅助
分析代码变更，提供改进建议和潜在问题识别。

### 文档查询
在终端中直接查询技术文档和API参考。

### 任务自动化
通过自然语言指令执行重复性开发任务。

### 学习辅助
在编码过程中即时获取技术解释和示例。

## 与同类工具对比

| 特性 | Mimo Code | Claude Code | GitHub Copilot CLI |
|------|-----------|-------------|-------------------|
| 运行环境 | 终端 | 终端 | 终端 |
| 技术栈 | TypeScript/Ink | TypeScript | 私有 |
| 开源 | ✅ | ❌ | ❌ |
| 工具数量 | 13 | 有限 | 有限 |
| 多模型支持 | ✅ | ❌ | ❌ |
| MCP支持 | ✅ | 部分 | ❌ |
| 虚拟形象 | ✅ | ❌ | ❌ |
| 主题系统 | ✅ | 有限 | 有限 |

## 总结

Mimo Code代表了AI辅助编程工具的新范式——将大语言模型的能力深度集成到终端环境中。通过丰富的工具集、灵活的模型支持和精心设计的用户界面，它为开发者提供了一个强大的AI编程伙伴。

对于习惯在终端工作的开发者而言，Mimo Code提供了一种无需切换上下文即可获得AI辅助的高效工作方式。项目的开源特性也意味着社区可以持续贡献新的工具和功能，进一步扩展其能力边界。
