为什么写这个插件呢,也是因为我是 Alfred 和 Ghostty 的重度用户,而且开了很多的 tab 和分屏使用 coding agent tui 。曾经考虑过实现 Alfred workflow ,但是早期版本的 ghostty 实现起来太麻烦也不够优雅就放弃了。Ghostty 1.4.0 发布时,没有宣传自带了完整的 AppleScript 字典。今天在另一篇帖子,有人问起 Ghostty 多 tab 的切换有没有捷径,我去查了 Ghostty 文档才知道有了这个字典。
然后直接 vibe 了这个 workflow 。我本人不用 Raycast ,不过也给它提了 PR 覆盖 gt 命令的功能: https://github.com/raycast/extensions/pull/33013 。
Ghostty 用得多了以后,tab 和分屏一多,鼠标点选、⌘+数字 都不够用,想找个跑着特定进程的分屏更是没辙。alfred-browser-tabs 解决了浏览器 tab 的这个问题,我就照着同样的思路给 Ghostty 做了一个:
https://github.com/addozhang/alfred-ghostty
两个命令:
gt — 列出当前所有窗口 × tab × 分屏,按 终端标题 / 工作目录 / 正在运行的进程 / tty 模糊检索,多关键词空格分隔取交集:
- 回车:窗口置前 + 选中 tab + 聚焦到那个分屏(切 tab 和切分屏是同一个动作)
- ⌃回车:复制该分屏的完整工作目录
- ⌘C:复制路径
go — 打开目录:
- 不带参数,默认打开 Finder 当前目录
go ~/Workspaces/xxx目录补全,Tab 逐级下钻,回车开新 tab ,⌘回车开新窗口- Ghostty 没运行时会自动拉起并开到目标目录
实现上没什么黑魔法:Ghostty 1.4 起原生自带 AppleScript 字典( windows → tabs → terminals ),workflow 全程走这套字典,所以不需要辅助功能权限,只要允许 Alfred 控制 Ghostty 一次。每个分屏的完整 cwd 、前台进程 PID (反查进程名)都能直接读到,"按进程搜分屏"就是这么来的——比如敲 htop 直接定位到跑着 htop 的那个窗格。
要求:macOS + Alfred 5 Powerpack + Ghostty ≥ 1.4 。
下载:Release 页 双击导入。仓库里有完整的三层测试和发布流水线,欢迎 issue / PR 。
