mtty 终端 · 编辑器 · 代理
AI 原生的终端与编辑器,本地与远程同样顺手。
终端、文件、远程主机和你的 AI 编程代理,放进同一个快速的原生窗口,共用同一套标签与分屏。用 Rust 编写,GPU 渲染,由性能门把关。不需要账号,不强制上云:mtty 托管你选择的代理,自己从不调用模型。
应用以 mtty 的名字发布(v0.0.5 及之前名为 miaotty),源码在 mtty 仓库。
- macOSApple 芯片 · Intel
- Linux.deb · AppImage · tar
- WindowsMSI · zip
预发布。API 尚未稳定。macOS 是主要平台;Windows 与 Linux 已构建、测试,并在真实桌面上验收。Apple 公证与 Windows MSI 签名尚未完成。

- 终端与远程
- GPU 渲染的标签与分屏,主机库、SFTP、端口转发与跳板机,走你自己的 OpenSSH。
- 编辑器
- 内置查看与编辑器,Markdown 与 Mermaid 实时预览,在 100 MB 文件上设有性能门。
- 代理工作台
- Claude Code、Codex、OpenCode 与 miao 上报四种状态,变成标签徽章、通知与提示队列。
00 三根支柱
终端、编辑器与代理,同在一个窗口。
终端与远程
吸收 Termius 与 PuTTY现在. GPU 渲染的终端、标签与分屏、会话恢复。主机库、密钥、SFTP 与 FTP、端口转发、跳板机、命令片段与广播输入,经由你自己的 OpenSSH。
接下来. 串口、Telnet 与原始 TCP 会话,.ppk 密钥;正在评估 Rust 原生的 SSH 实现。
编辑器
一流的编辑器,而非附属功能现在. 内置查看与编辑,带 Markdown 与 Mermaid 预览。编辑内核——rope 缓冲区、多光标、撤销、搜索——已完成,并在 100 MB 文件上设有性能门。
接下来. 与终端并列的编辑器窗格:tree-sitter 高亮、LSP,大文件也全速。
代理工作台
吸收 Superset,AI 原生现在. 来自 Claude Code、Codex、OpenCode 与 miao 的状态;需要你时的徽章与通知;提示队列;每个任务一个 git worktree 并审阅 diff;可脚本化的控制面。
接下来. 代理的修改以可撤销的 diff 在行内审阅、ACP 客户端,一步把选区、诊断或终端输出交给代理。
01 引擎优先
引擎与应用,刻意分开。
依赖只向内指:宿主 → 渲染 → 内核。内核不含任何窗口或 GPU 代码,因此可以嵌入别的程序。应用是引擎的第一个使用者,而不是它的主人。
热路径不加锁,每帧零分配。
mtty-widgetwinit + wgpu 渲染循环,在同一帧合成 egui 界面mtty-renderwgpu + glyphon 字形网格,四边形与图像管线mtty-corePTY、VT 解析、网格与回滚、选择、搜索、OSC、输入编码mtty-graphicsmtty-configmtty-mtpmtty-ui02 实测
性能预算,由 CI 把关。
每项指标都有留足余量的绝对预算:数量级的退化会让构建失败,运行器抖动不会。
VT 解析吞吐
73 MB/s
预算 ≥ 25 MB/s
屏幕快照,30 行
0.012 ms
预算 ≤ 2 ms
每帧行构建
0.12 ms
预算 ≤ 4 ms
命令面板排序,1 万条
2.0 ms
预算 ≤ 100 ms
基线为 M 系列 Mac 上的 release 构建。帧时间与按键到字形的延迟需要真实窗口和 GPU,因此手动测量,不作为 CI 门槛。
03 工作台
不只是一个带提示符的窗口。
标签与分屏
⌘D ⇧⌘D递归分屏树,分隔条可拖动。标签可以加标记、分组,重启后依然保留。
快速打开
⌘K一个面板覆盖标签、代理、命令片段、主机、当前目录的文件、最近文件和命令。
详情面板
⌥⌘D信息、代理、大纲、Git、文件、端口、队列,就在终端旁边。
阅读器与编辑器
⌘-打开行号、可选的极简 vim 模式、用你自己的编辑器「在标签中编辑」,以及内置 Mermaid 子集的 CommonMark 渲染。
内联图像
默认开启Sixel、Kitty、iTerm2 图像直接画进网格,随内容滚动、按窗格裁剪。
真正的终端行为
⌘F基于 alacritty_terminal 的 VT、CJK 排版与系统字体回退、带高亮的查找、kitty 键盘协议。
沿用你的配置
config.toml首次运行自动导入 ghostty 和 alacritty 的设置。zsh 集成经由 ZDOTDIR 垫片完成,绝不修改你的 dotfiles。
通过 ssh 编辑远程文件
ssh借助窗格的 ssh ControlMaster 连接查看和编辑远程文件,terminfo 零安装引导。
代理状态,一眼可见
hook代理 CLI 上报 idle、processing、awaiting、error 四种状态,并体现在标签徽章、Agent 面板、通知与提示队列上。
窗格自己的任务清单
⌥⌘D大纲面板保留本窗格执行过的命令及其目录,一次会话做过的事就在旁边一目了然。
04 界面
每个功能,都在真实应用里。
使用独立示例项目,从当前开发构建重新采集:代理徽章、实时预览、行内改动审阅、主机库、分屏和详情面板。代理状态事件与改动提议通过真实控制面驱动;主机地址为示例。





05 为代理而造
它知道每个窗格里的代理在做什么。
代理上报 idle、processing、awaiting 或 error 四种状态。mtty 把它变成标签上的徽章、代理需要你时的系统通知、代理工作时的防休眠,以及在窗格空闲后自动发送下一条消息的提示队列。
- miao
- 通过内置集成上报状态,无需任何配置。
- 其他代理 CLI
- mtty 能识别它们,安装状态钩子脚本,并复制好需要你自己添加的配置片段。绝不替你改动代理的配置。
- Composer ⌘⇧E
- 多行提示编辑器,发送到当前窗格。
06 可脚本化
一个其他程序也能驱动的控制面。
MTP 通过仅属主可访问的每用户套接字(Windows 上为命名管道)收发按行分隔的 JSON。每个响应都带状态版本号;客户端可以阻塞等待它变化,或订阅事件流,而不必轮询。
通过 TCP 提供服务必须设置令牌,还可以用能力白名单限制可接受的请求。控制面会在你的 shell 中执行命令,请妥善保管令牌。
$ mtty-cli pane list
$ mtty-cli pane run --pane ID --data "cargo test"
$ mtty-cli events --topic agent.state
$ mtty-cli wait --since 42
$ mtty-cli view ./README.md
$ mtty-cli file read --path /etc/hosts # ≤ 2 MB07 键盘
快捷键
- ⌘T
- 新标签
- ⌘D / ⇧⌘D
- 向右 / 向下分屏
- ⌘K
- 快速打开
- ⌘F
- 查找
- ⌥⌘D
- 详情面板
- ⌘⇧E
- Composer
- ⌘⇧T
- Quick Terminal
- ⌘⇧Z
- 重新打开关闭的标签
- ⌘,
- 设置
macOS 上为 ⌘,其他平台使用对应的主修饰键。
试试预览版。
或者自己构建
$ git clone https://github.com/oxdingzg/mtty.git && cd mtty
$ cargo run --release -p mtty-app