📌 项目地址:iOfficeAI/AionUi | ⭐ 27,111 颗星 | 🔧 TypeScript | 📜 Apache-2.0
一个窗口同时跑多个 AI 命令行工具
我用 OpenAI 的 openai API、Anthropic 的 claude、Ollama 和 Gemini,需要频繁切换模型、对比回答。以前每个 CLI 占一个终端窗口,输出混在一起,对比要手动对齐行号;跑完结果没存,清屏就丢了;换温度、上下文长度每次敲一长串参数。
AionUi 把多个子进程的 stdout/stderr 并排放在左右面板,自动生成带时间戳的本地日志文件。面板同步滚动,同一个请求的不同回答可以左右对比。项目基于 TypeScript,Apache-2.0 协议,GitHub 27111 星。
我实际用过的两个场景
并排对比模型回答
机器上装了 claude 和 gemini 两个 CLI。在 AionUi 分别配置启动命令,左边跑 Claude,右边跑 Gemini。对同一段 Go 代码请求审查(“review 这段并发代码”),Claude 给了完整实现,Gemini 只给了思路提示。以前两个终端窗口手动对位置,现在左右并列一眼看出差异。日志自动保存,两周后 grep “concurrency” 直接定位。
预设参数一键切换
代码审查用 temperature=0.3、context=32k;翻译用 temperature=0.8、context=4k。在 AionUi 建两个预设,绑定模型名、温度和上下文长度。下拉菜单切换,工具自动拼接参数启动子进程。每天省掉至少 3 次敲命令和翻参数表的时间。编辑预设文件直接生效,不用重启。
三个坑
1. 环境变量不会自动继承
从 macOS 启动台点 AionUi 后,子进程找不到终端里设的 OPENAI_API_KEY。原因是 Electron 进程的环境变量跟 Shell 不同。排查了十分钟认证失败,最后把 key 写进 .zshrc,重启应用才解决。README 没有明确写这件事,第一次用大概率会踩。
2. 部分 CLI 需要额外参数
Ollama 默认进交互模式,AionUi 只有一次性 prompt 输入,子进程会卡住。配置里加 --no-interactive 才行。Llama.cpp 和一些工具输出 ANSI 颜色码,面板显示 [0;32m,要手动传 --no-color。第一次跑就能发现,但如果你不熟悉这些 CLI,可能愣住了。建议配好后先手动跑一次看输出是否正常。
3. 配置文件格式随升级变动
项目近三个月 47 次提交,config.json 的字段会调整。上次升级后自定义预设丢了,因为新版改了解析规则。现在我定期把配置目录打包,或软链接到 Git 仓库,升级后可回滚或 diff。
适合谁用
同时使用两个以上 AI CLI 的人(OpenAI、Claude、Ollama、Gemini 等);需要频繁切换模型或参数的人;希望 AI 输出集中归档、事后翻查的人。用户群不大,但如果你符合条件,AionUi 能省掉来回切换和丢日志的麻烦。
第一次配置大概十分钟,之后顶多多花几分钟调试一两个参数。建议先拿 echo hello 测试面板和日志功能,再换真实 AI 工具。如果被终端窗口和日志丢失折磨过,它值得一试,只要你能接受上面提到的几个小坑。