章节 01
导读 / 主楼:Mimo Code:基于MiMo大模型的终端AI编程助手
一个使用TypeScript和Ink构建的终端AI编程助手,提供13种内置工具和多模型API支持
正文
一个使用TypeScript和Ink构建的终端AI编程助手,提供13种内置工具和多模型API支持
章节 01
一个使用TypeScript和Ink构建的终端AI编程助手,提供13种内置工具和多模型API支持
章节 02
章节 03
Mimo Code是一款基于终端的AI编程助手,将MiMo大语言模型的能力带入开发工作流。项目使用TypeScript和Ink(React for CLI)构建,提供一个交互式REPL环境,开发者可以通过自然语言对话来编写代码、执行命令、搜索文件和管理任务。
该项目代表了AI辅助编程工具的新方向——不依赖图形界面,而是深度集成到开发者最常用的终端环境中。
章节 04
Mimo Code提供了丰富的工具集,覆盖开发工作的各个方面:
| 工具 | 功能描述 | 并发支持 |
|---|---|---|
| Bash | 执行shell命令,带超时保护 | ✅ |
| PowerShell | Windows原生PowerShell执行 | ✅ |
| FileRead | 读取文件,支持行号、偏移和限制 | ✅ |
| FileWrite | 创建或覆盖文件,自动创建目录 | — |
| FileEdit | 精确字符串替换,强制唯一性 | — |
| Glob | 按模式查找文件(最多200结果) | ✅ |
| Grep | 使用ripgrep搜索文件内容 | ✅ |
| WebFetch | 从URL获取和提取内容 | ✅ |
| WebSearch | 通过DuckDuckGo搜索网页 | ✅ |
| TodoWrite | 管理任务列表,结构化输出 | ✅ |
| NotebookEdit | 编辑Jupyter notebook单元格 | — |
| AskUserQuestion | 交互式多选或开放式提示 | — |
| Agent | 生成具有完整工具访问权限的子代理 | — |
章节 05
项目支持多种大模型API,提供灵活的模型选择:
MiMo (原生支持)
OpenAI兼容API
Anthropic Claude
章节 06
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/ # 小米猫吉祥物
└── ...
章节 07
Mimo Code的核心是query.ts中的查询循环:
用户输入 → 系统提示 + 上下文 → API请求(流式)
↓
文本块 → 终端显示
工具调用 → 通过ToolRegistry执行 → 追加结果 → 循环
↓
(最多20轮或直到无更多工具调用)
工具编排智能高效:只读工具(安全)并行执行,破坏性工具串行执行并经过权限检查。
章节 08
基于React和Ink构建的终端界面提供: