miao AI 编程代理

模型由你选,工作持续推进,少浪费上下文。

miao 是一个开源 AI 编程代理,让你在终端里完成真实工程任务,也看清任务消耗了多少时间和费用。使用你选择的模型,让代理理解仓库、修改代码、执行命令并验证结果。

miao 把重点放在模型周围的工程能力上:上下文效率、持久化会话、代理协作,以及长任务的执行控制。

macOS / Linux

curl -fsSL https://mtty.dev/miao/install | bash

Windows (PowerShell)

irm https://mtty.dev/miao/install.ps1 | iex

macOS 与 Linux · Windows 已有构建 · MIT

当前 miao 终端界面:示例代码审阅、行内编辑 diff、回复和上下文遥测。
Build 代理 · 行内代码改动与上下文遥测 · 示例会话

01 中途调整,不必重来

它在干活时,你仍然可以补充要求。

新输入会先持久化保存,再调度执行,在下一个安全的模型轮次边界带入会话。当前的工具调用不会被打断,你打字比它思考还快也不会丢。

显式排队的输入会等到当前工作即将空闲时再处理;任何新输入被采纳后,代理的轮次额度都会重置。

  1. ›

    找到这个测试失败的原因,修复它,运行相关检查,并解释代码差异。

  2. ›

    保持公共 API 不变,不引入新的运行时依赖。

    steer · 已保存,在下一个轮次边界并入
  3. ›

    然后写一份草稿 PR 描述。

    queue · 等会话即将空闲时再处理

02 为什么选择 miao

功夫花在模型周围。

  1. 01

    按任务选择模型

    在同一个界面连接多个供应商,随时切换会话模型,也可以为专门的代理设置各自的模型和权限。按推理能力、响应速度或价格做选择,不必围着某一家重建工作流。

  2. 02

    专项工作交给独立上下文

    把范围明确的任务委派给子代理,之后还能继续同一个子会话。借助 list_sessions 和 send_message,代理能在权限约束下发现并联系同项目的其他会话。

  3. 03

    看清 token 和费用花在哪里

    逐轮用量、估算费用、首 token 延迟和提示缓存遥测。Context Epoch 保持系统上下文基线不变、把变化按时间顺序引入,帮助复用缓存前缀。

  4. 04

    工作记录可以继续

    持久化输入与事件记录保存会话:可查看、重新打开、分叉和导出。过大的工具输出在上下文中受到限制,完整内容在可用时保留到临时文件。

费用按配置的模型费率估算,实际扣费以供应商账单为准。保存历史不代表崩溃后自动续跑:未完成的模型执行需要显式恢复。

03 日常工程

平常的一天,它能做什么。

你要完成的事miao 提供的能力
理解陌生仓库文件读取、搜索、项目指令、技能、专项子代理
实现功能并验证文件编辑与补丁、Shell 命令、可选 LSP 诊断和格式化
比较模型而不换工具会话内模型切换、自定义供应商、按代理配置模型、受支持模型的推理档位
推进较大的任务待办、中途补充要求、持久化会话、可选自治续跑
接入自己的工具本地与远程 MCP、自定义命令、技能、插件
检查并复用工作成果差异查看、会话分叉、历史导出、权限确认
接入其他应用HTTP 服务、浏览器界面、CLI 自动化、工作区内生成的客户端

04 界面

代理,跑在你已经用的终端里。

审阅改动,选择模型示例代码审阅会话中直接查看 diff 和上下文遥测;打开模型选择,无需离开当前会话。放大查看 ↗
自带模型服务商打开供应商选择器,浏览可用服务;连接 OpenAI、Anthropic、GitHub Copilot、Google 或自己的端点。放大查看 ↗
同一个会话,也能在浏览器里看在 miao 浏览器界面展开编辑 diff、打开文件审阅面板;与终端截图使用同一个示例会话。放大查看 ↗
紧凑的交互模式开发构建中可选的 mini 界面:任务进度、编辑 diff 和多选问题,使用内置演示模式录制。放大查看 ↗
mini 界面的编辑权限确认展示拟议 diff,以及单次允许、始终允许和拒绝选项。来自内置演示模式。
允许编辑前,先看清改动mini 界面的编辑权限确认展示拟议 diff,以及单次允许、始终允许和拒绝选项。来自内置演示模式。放大查看 ↗
当前终端启动界面,输入框旁直接显示所选代理、模型和推理档位。
从一个提示开始当前终端启动界面,输入框旁直接显示所选代理、模型和推理档位。放大查看 ↗

05 长任务,有边界

让它继续推进 —— 在预算之内。

自治续跑需要手动开启。只要还有未完成的待办,它就继续,并受迭代上限和停滞检测保护。会话估算费用达到阈值后,费用预算会停止调度新的模型轮次。

预算不是供应商账单的硬上限,也不会中止已经发出的那一轮。项目级配置放在 .miao/miao.jsonc,全局配置放在 ~/.config/miao/miao.jsonc。

// .miao/miao.jsonc
{
  "loop": { "enabled": true, "max_iterations": 25 },
  "cost": { "budget_usd": 5 },
  "compaction": { "prune": true },
}

06 实测

CPU 密集的地方用 Rust。

miao 内置 Rust 加速模块,并与本仓库早先的 TypeScript 实现做对比。同一台机器、release 构建、取中位数。

编辑模糊匹配,12k 行1.9×

TypeScript0.76 msRust0.39 ms

补丁 Unicode 规范化,20k 行2.5×

TypeScript13.06 msRust5.21 ms

Git status,10 个文件12.3×

TypeScript12.3 msRust1.00 ms

这些是组件基准,不代表端到端任务提速,也不是与上游当前版本的比较。原生编辑/补丁属于兼容工具路径;进程内 Git 仍是原型,默认不启用。

07 现状

1.0 之前,哪些能用说清楚。

能力可用性
持久化会话、输入接收、Context Epoch、项目内会话消息已实现
自治续跑、费用预算、输出裁剪与压缩调优可选开启
Code Mode实验性
原生编辑/补丁与内核沙箱兼容运行时
生成的客户端与嵌入式宿主API 仍在演进

08 快速开始

三条命令,开始第一个会话。

$ curl -fsSL https://mtty.dev/miao/install | bash        # macOS / Linux
PS> irm https://mtty.dev/miao/install.ps1 | iex        # Windows
$ miao providers login   # 选择供应商,连接账户或 API Key
$ cd /path/to/project
$ miao                   # 启动终端界面

# 一次性执行,不进 TUI
$ miao run "Explain this repository's architecture"
$ miao web               # 打开浏览器界面
$ miao upgrade           # 更新正式版

在 TUI 内用 ctrl+p 打开命令面板,用 ctrl+x m 选择模型。miao models 可以列出可用模型。

模型自己选,终端照旧用。