让 AI 写完界面,还能自己截图检查:opencode 团队开源了 Rust 界面框架 Rune
Rune 来自 Anomaly 团队,也就是做开源编程智能体 opencode 的那家。仓库 anomalyco/rune 建于 10 月 22 日,我核对时(11 月 7 日)已有约 2750 颗星、69 个 fork,MIT 许可证。它是一个用 Rust 写界面的框架,目标平台是 macOS、Windows、Linux 和网页。
01它不借系统控件,所有东西自己画
常见的跨平台界面方案要么套一层网页(Electron),要么调用各系统自带的按钮和输入框。Rune 走第三条路:渲染、文字排版、布局、弹簧动画全部自己实现,用显卡(GPU)逐帧绘制,README 的目标是做到类似 iOS 上 SwiftUI 那种 120 Hz 的顺滑感。代价是界面不会长得像各个系统的原生样子;官方设计文档明确写了,Rune 应用在每个平台上带自己的设计风格,包括 Mac。输入法、无障碍、剪贴板、窗口管理这些“行为”则交给系统原生处理。
代码风格是写一个返回界面元素的函数,README 首页的例子是一个开关:点一下,圆点滑到另一侧,文字在“Lights on / Lights off”之间切换。状态变了,界面函数重新运行,框架对比前后差异再播动画。
02“无头”才是它给 AI 准备的那一份礼物
README 开头第二句就讲了:每个应用都可以无头运行,智能体可以把界面渲染成 PNG、导出元素树,再用脚本化的输入去操作它。换句话说,让 AI 做界面的闭环变成了:写代码,渲染出图,看图和元素树,发现按钮错位就自己改。
官方推荐的用法是直接把仓库交给你的编程智能体,提示词模板是:“用 Rune 给我做一个 <东西>,从 examples/hello 开始,并用无头方式检查你自己的工作。”入门材料是 examples/hello 和 核心库说明。
03现在能不能拿来做正经项目
先看官方自己的说明:Rune 还是预发布版本,依赖时要在 Cargo.toml 里写死 dev 分支的某个提交号(rev),官方保证 dev 不会被改写历史。写法是:
rune = { git = "https://github.com/anomalyco/rune", rev = "<dev rev>" }有三处限制值得先知道。第一,网页端目前标为实验性质,用 WebGPU 在一块画布上渲染;按 WEB.md 的说法,网页版内置的只有 Inter 和 IBM Plex Mono 两款字体,缺失的 emoji 和中日韩文字会显示成方框,不会自动下载字体。要做中文界面的话,这一点要先确认。第二,仓库的问题列表里还挂着 Linux 下不支持系统拖放文件之类的缺口。第三,团队不收 PR,希望你让自己的智能体去提 issue,由他们的智能体来处理。
所以我的判断是:想看看“AI 写界面、AI 自己验收”这条路怎么走,或者想用 Rust 做一个自带风格的桌面小工具,现在可以拉下来跑 examples 试试;要做面向普通用户的中文产品,建议等网页端字体和 Linux 的缺口补上再说。


DeepSeek
Claude Code
Timestral