这个Skill解决什么具体问题
AI编码代理(如Claude、Cursor Agent)在运行长任务时,经常需要同时监控多个终端:编译输出、测试结果、日志流、文件监听。水平标签页随着会话增多会挤占代码区域,而通知容易遗漏。cmux用Ghostty的垂直标签+通知机制解决了这个痛点。你能直接学到的是:用Ghostty一个配置,让AI代理的每个任务拥有独立的垂直标签,并通过系统通知及时反馈结果。
触发条件和适用场景
- 你正在使用AI代理生成代码,代理需要多次运行编译/测试/部署命令。
- 你需要同时查看多个长期运行的终端输出(比如watch模式、tail日志、Web本地服务)。
- 你希望每个任务完成后能被立即感知,而不是手动切回每个标签刷屏。
完整Skill结构(GHOSTTY配置模板)
Ghostty的配置文件是一个纯文本的~/.config/ghostty/config,你可以直接复制以下内容。核心思想是:每个垂直标签对应一个AI子任务,并在任务结束时触发系统通知。
# ~/.config/ghostty/config
font-size = 14
font-family = "JetBrains Mono"
# 启用垂直标签(cmux的核心设计)
tab-position = left
tab-show-close-button = false
tab-overflow = "truncate"
# 让每个标签自动名称化,方便AI读取
window-title = "AI Session"
# 关键:通知绑定
# 当终端被标记为“完成”时,发送macOS通知
# 需要在shell里手动调用 notify-send 或 osascript
配合一个shell函数,让每个任务结束时自动发通知:
# 放在 ~/.zshrc 或 ~/.bashrc
notify_when_done() {
"$@"
osascript -e "display notification \"任务完成\" with title \"${SHELL}\""
}
# 使用例子:
alias build="notify_when_done make"
alias test="notify_when_done go test ./..."
alias run="notify_when_done cargo run"
实际案例演示
差Prompt(低效方式):
帮我开三个终端,一个编译项目,一个跑测试,一个看日志。
结果:AI可能直接启动三个独立的Terminal窗口,你需要手动排列,且无法知道哪个完成了。
好Prompt(使用你的Skill):
你在我的Ghostty环境中工作。请分别为以下三个命令创建垂直标签,并在每个标签内执行对应的命令,确保标签标题能区分任务:
编译: 运行notify_when_done make测试: 运行notify_when_done go test -v ./...日志: 运行tail -f /var/log/app.log
当任何一个notify_when_done触发通知,告诉我结果。
效果:AI通过Ghostty的ghostty quit-window-after-last-tab等内建机制(或自家Agent框架)创建垂直标签,你一眼看到任务名称,通知弹出后即时切换查看。
背后原理
为什么垂直标签比水平标签更适合AI代理?
- 屏幕利用率:垂直标签只占左侧窄条(约60px),而水平标签占顶栏(约30px),但垂直方向滚动文本更自然,且多标签时垂直排列更易阅读标题。
- 任务隔离:每个垂直标签独立环境,避免AI代理的多个命令互相干扰(比如环境变量冲突、进程抢占)。
- 通知与标签联动:通过
osascript发通知时携带标签ID,你可以用ghostty --focus-tab <ID>快速定位——虽然cmux没直接提供,但你可以用AppleScript扩展。
个人观点:cmux用Swift重写Ghostty的一半功能有点过重。我更推荐直接使用原生Ghostty配置+少量shell扩展,因为Ghostty本身就支持tab-position = left。你真正需要的是一个任务-标签映射协议,让AI代理知道创建什么标签、怎么命名、怎么收通知。
复用和组合技巧
- 组合tmux:如果你已经在用tmux,可以在Ghostty内开一个全屏tmux会话,再用垂直标签切换不同tmux窗口?不推荐——嵌套会产生混乱。建议去其一。
- 与AI Agent框架集成:写一个Ghostty Skills的Prompt模板,让AI主动管理标签。
扩展用法:自动创建标签并执行
# 函数:创建命名标签并执行命令
ghostty_new_tab() {
local title="$1"
shift
# 使用 Ghostty CLI(需要安装 ghostty 在 PATH)
ghostty launch --title "$title" -- bash -c "$*; osascript -e 'display notification \"$title 完成\" with title \"Task\"'"
}
# 示例
ghostty_new_tab "编译" "make"
ghostty_new_tab "测试" "go test ./..."
ghostty_new_tab "日志" "tail -f /var/log/system.log"
将这个函数放进你的AI代理工作流,它就能用一次对话开启多个垂直标签任务,并接收通知。
- 进一步改进:让每个标签执行完毕后自动关闭(
ghostty close-tab),或动态调整顺序(暂不支持)。目前最好的替代是设置ghostty quit-after-last-window-closed为false,保持会话持久。
总结
cmux本质上是一个定制版Ghostty,但它的垂直标签+通知设计思路完全可以被普通Ghostty配置复刻。你不需要安装另一个终端模拟器,只需要把本文的配置模板和shell函数加入你的开发环境,就能让AI代理的终端管理效率提升一个台阶。下次让AI帮忙跑任务时,试试用垂直标签隔离,你会发现混乱消失了。