我的 AI 智能体编程终端配置
如何用 Ghostty、Yazi、Fish 和 LazyGit 并行运行多个 AI 智能体 - 一套为智能体工作流打造的轻量终端技术栈。
AI 辅助编程的瓶颈已经不再是智能体本身。Claude Code、Aider、Codex CLI 这些工具已经相当强大。真正的制约在于人的能力 - 如何同时操控多个智能体、监控它们的输出、在偏离方向时及时修正、最后将工作成果合并到一起。
我采用了一套终端优先的配置来解决这个问题。四个工具,都很轻量,都可组合:终端用 Ghostty,文件浏览用 Yazi,Shell 用 Fish,Git 操作用 LazyGit。下面说说每个工具为什么不可或缺。
为什么是终端
AI 编程智能体天生就是 CLI 原生的。它们读取文件、执行命令、在终端中输出结果。当你想同时运行三个智能体 - 一个开发功能、一个修复 bug、一个编写测试 - 你需要三个并排显示的 Shell 会话。
IDE 也能做到,但代价不小。VS Code 加上多个集成终端、扩展、语言服务器和编辑器本身,轻松消耗 2-4GB 内存。这些内存本可以留给 AI 智能体使用。每一个上下文 token、每一次 API 调用、每一次文件读取都在争夺同样的系统资源。
轻量级终端配置扭转了这一局面。我使用的这些工具加在一起,资源占用远低于一个 Electron 应用,把系统资源留给真正干活的智能体。
Ghostty - 基础设施
Ghostty 是一款 GPU 加速终端模拟器,macOS 上使用 Metal,Linux 上使用 OpenGL。它用 Zig 编写,速度很快 - 基准测试显示纯文本渲染比 iTerm2 和 Kitty 快约 4 倍,即使在高负载下也能保持约 60fps。
对于智能体工作流来说,关键特性是原生分屏和标签页。不需要 tmux。Ghostty 在应用层处理窗格分割,渲染流畅、字体缩放准确、无需额外配置。打开新分屏,启动智能体,立刻开始工作。
我的典型布局是四个窗格:
- 左上:在功能分支上工作的 Claude Code
- 右上:处理另一个任务的第二个智能体
- 左下:监控文件变化的 Yazi
- 右下:审查和提交代码的 LazyGit
当 LLM 流式输出长回复时,有些终端会在高速输出下卡顿。Ghostty 的 GPU 渲染能够无丢帧、无延迟地处理这种情况,在同时监控多个输出流时尤为重要。
Yazi - 智能体工作时的导航
当三个智能体同时在代码库中修改文件时,你需要一种快速查看变化的方式。Yazi 是用 Rust 编写的终端文件管理器,具有完全异步的 I/O。所有操作都是非阻塞的,浏览大型目录时不会因为后台加载文件预览而卡住。
我在一个窗格中常驻 Yazi,主要用途包括:
- 监控变更 - 实时查看智能体创建和修改的文件
- 文件预览 - 无需打开编辑器,直接在终端中查看语法高亮的代码、图片甚至 PDF
- 批量重命名 - 当智能体生成的文件命名不符合预期时进行调整
- 快速跳转目录 - 利用书签和搜索功能
插件系统(基于 Lua)支持按需定制。我使用了几个 Git 状态显示和快速目录跳转的插件,不过默认配置就已经够用了。
Fish Shell - 降低认知负荷
在四个终端窗格之间来回切换时,认知负荷会快速累积。你瞥一眼窗格,需要想起它在做什么、重新理解上下文、输入命令,然后切到下一个。
Fish 通过开箱即用的功能减轻了这种摩擦:
- 自动建议:Fish 根据历史记录用灰色文本提示命令的后续部分。按右箭头键即可接受。无需插件。
- 语法高亮:有效命令显示一种颜色,无效命令显示另一种颜色。按回车前就能发现拼写错误。
- Tab 补全:Fish 自动解析 man 页面生成补全列表。输入命令按 Tab,即可获得上下文相关的选项。
与 zsh 的关键区别是零配置。不需要安装 oh-my-zsh,不需要维护 .zshrc,不需要更新插件管理器。Fish 安装后立即可用。当你专注于管理智能体时,调试 Shell 配置是最不想做的事情。
LazyGit - 基于工作树的并行开发
这是这套配置在并行智能体工作中真正发光的地方。LazyGit 是一个 Git 终端 UI,它的工作树(worktree)支持让多智能体开发变得切实可行。
模式很简单:每个智能体在独立的 Git 工作树中工作。工作树是仓库的一个链接副本,在不同目录中检出不同分支。智能体 A 在 ./feature-auth/ 目录下的 feat/auth 分支工作,智能体 B 在 ./fix-perf/ 目录下的 fix/performance 分支工作。它们互不触碰对方的文件,因此并行工作时不会产生合并冲突。
LazyGit 让管理这个工作流变得可视化且高效:
- 创建工作树 - 一个按键(
w)搞定 - 切换工作树 - 审查每个智能体的工作成果
- 交互式变基 - 合并前整理智能体的提交历史
- 可视化 diff - 并排比较分支间的变更
- 撤销/重做 - 通过 reflog 集成,智能体产生意外结果时按
z回滚
没有可视化 Git 工具的话,管理多个工作树意味着在不同目录间反复 cd 和查看 git log 输出。LazyGit 将这一切整合到一个可导航的界面中。
全部串联起来
一个典型的工作会话是这样的:打开 Ghostty,分成四个窗格。用 LazyGit 创建两个工作树 - 一个用于功能开发,一个用于 bug 修复。在左上窗格启动指向功能工作树的 Claude Code,在右上窗格启动指向 bug 修复工作树的第二个智能体。左下是 Yazi,可以浏览两个工作树目录并实时预览变更。右下是 LazyGit,用来审查 diff、暂存变更,最终合并两个分支。
关键在于这些工具没有一个会争夺资源。Ghostty、Yazi、Fish、LazyGit 都是编译好的原生程序。没有 Electron 运行时,没有 JVM,没有在后台消耗内存的 Python 解释器。系统资源完整地留给了真正需要算力的 AI 智能体。
总结
最好的 AI 智能体编程环境不取决于你用的是哪个 AI 模型,而取决于人的层面。同时运行多个智能体、监控输出、及时修正方向、干净地合并工作 - 这些能力决定了你的实际产出。
这套技术栈有明确的主张,但保持了精简。渲染用 Ghostty,文件用 Yazi,Shell 用 Fish,Git 用 LazyGit。每个工具都快速、轻量、可组合。如果你在使用 AI 编程智能体但还没试过并行终端工作流,不妨从其中一个工具开始,看看它会如何改变你的工作方式。
订阅通讯
获取关于我最新项目、文章以及 AI 和 Web 开发实验的更新。