Ghostty:一个让你不用再做选择题的终端模拟器
用终端的人,大概都经历过一段「选终端」的纠结期。
macOS 自带的 Terminal.app 能用但功能太基础。iTerm2 功能强大但偶尔觉得有点重。Alacritty 飞快但得配合 tmux 才完整。Kitty 什么都能干但配置文件能写到怀疑人生。WezTerm 用 Lua 写配置很酷但也意味着你在维护一个小型软件工程。
每个选择都是在「速度」「功能」「原生体验」这三个维度里做取舍。有没有一个终端能同时把这三件事做好?
Ghostty 就是冲着这个目标来的。
谁在做这件事
Ghostty 的作者是 Mitchell Hashimoto——对,就是那个 HashiCorp 的联合创始人,Vagrant、Terraform、Consul 背后的人。
不过 Ghostty 跟 HashiCorp 没关系。这是 Mitchell 2022 年出于个人兴趣启动的项目,最初的动机很纯粹:想学 Zig,想做图形编程,想深入理解终端模拟器到底是怎么回事。他自己说过,一开始甚至没打算把它做成产品发布。
但写着写着,他发现了一个让他不满意的现状:市面上的终端模拟器都在迫使用户做三选二——要么快但功能少(Alacritty),要么功能强但不够原生(Kitty),要么原生但不快(iTerm2)。他想做一个在三个维度上都有竞争力的终端。
项目经历了两年多的闭门开发和私测(结束时约 5000 名测试者),最终在 2024 年 12 月以 MIT 许可证发布了 1.0。截至今天(2026 年 4 月),版本已经迭代到 1.3.1,GitHub 上有超过 51,000 个 star,430 多位贡献者。
三根柱子:原生、功能、速度
Ghostty 的设计围绕三个核心展开。
原生
这里的「原生」不是指「看起来像系统应用」,而是「就是系统应用」。
macOS 上,Ghostty 的 GUI 用 Swift + AppKit + SwiftUI 写。标签页、分屏、弹窗都是系统原生组件,不是自己画的。键盘快捷键默认就是 macOS 的惯例(Cmd+T 新标签、Cmd+W 关闭),不需要额外适应。
Linux 上,GUI 用 Zig + GTK4 写,选择性地使用 Adwaita,所以它在 GNOME、KDE 等桌面环境下都能融入。
两个平台的 GUI 共享同一个核心:一个叫 libghostty 的跨平台 C-ABI 兼容库,用 Zig 写的,负责终端模拟、字体处理和渲染。这个架构让 Ghostty 能在保持原生感的同时共享底层能力。
macOS 上还有一些专属集成值得一提:Quick Look(三指轻点预览 URL)、安全键盘输入(输入密码时自动启用 SecureInput API)、AppleScript 字典、窗口状态恢复,这些都是调用 macOS 原生 API 实现的。
功能丰富
Ghostty 的功能分两类来看。
面向用户的功能:原生多窗口、标签页和分屏(不需要 tmux);数百套内置主题并支持随系统亮暗模式自动切换;Quake 式下拉终端(Quick Terminal);Shell 集成(自动注入 bash/zsh/fish/elvish/nushell);终端内搜索;只读模式等等。
面向终端应用开发者的功能:支持 Kitty 图形协议(终端里直接渲染图片)、Kitty 键盘协议、同步渲染(防止 Neovim 等 TUI 应用画面撕裂)、亮暗模式通知、超链接等。这让在 Ghostty 里跑 Neovim、Zellij 这类工具的体验比在很多其他终端里更好。
速度
Mitchell 在性能上的表态比较克制:他不说 Ghostty 是「最快的」,只说目标是跟最快的终端处于同一档次。
不过第三方测评数据比他谦虚。DevToolReviews 的 2026 对比测试中,在 M3 芯片的测试环境下:
| 指标 | Ghostty | Kitty | Alacritty | iTerm2 |
|---|---|---|---|---|
| cat 100K 行 | 0.7s | 0.8s | 0.9s | 2.4s |
| 输入延迟 | ~2ms | ~3ms | ~3ms | ~12ms |
| 空闲内存(单标签) | 28 MB | 35 MB | 22 MB | 85 MB |
GPU 加速渲染是性能的底层支撑:macOS 上用 Metal,Linux 上用 OpenGL。
当然,正如 unixy.io 的分析所指出的:对于日常「敲命令看输出」的工作流,GPU 终端相比传统终端的可感知收益其实有限。真正能感受到差异的场景是大量日志流、长时间滚动、CPU 资源紧张等情况。不过 Mitchell 提到一个有趣的现象——很多新用户反馈说速度的提升「比预想中明显得多」。
安装
macOS
最简单的方式是 Homebrew:
brew install --cask ghostty
或者去 官方下载页 下载 DMG(通用二进制,Apple Silicon 和 Intel 都支持,签名并公证),拖进 Applications 就好。
要求 macOS 13(Ventura)或更高。
Linux
主流发行版基本都有了。Arch 用户直接:
pacman -S ghostty
其他发行版也都有对应的包管理方式:Gentoo 用 emerge、NixOS 用 pkgs.ghostty、Void 用 xbps-install、Snap 用 snap install ghostty --classic。Fedora 可以通过 COPR 源安装,Ubuntu 和 Debian 有社区维护的安装脚本,也有 AppImage 可选。
唯一的例外是 openSUSE——因为发行版策略不允许包固定依赖某个特定版本的 Zig,所以 Ghostty 已从 openSUSE 官方源移除,需要源码构建。
从源码构建
需要注意 Zig 的版本匹配——Ghostty 1.3.x 需要 Zig 0.15.2,1.2.x 需要 0.14.1。优先用官方的 source tarball 而不是 GitHub 自动生成的 Source code 包。
zig build -Doptimize=ReleaseFast
Linux 上需要 GTK4、libadwaita、pkg-config 等依赖。macOS 上需要完整的 Xcode(不仅是 Command Line Tools)。
Windows
还没有。官方文档写的是「Windows support is planned for the future」。GitHub 上的跟踪 issue 列出了从 OpenGL MVP 到 DirectX、原生 Windows GUI 等分阶段任务,但没有明确的发布日期。目前更适合理解为一个持续推进的平台工程项目。
配置:零配置也是一种态度
Ghostty 有一个明确的理念叫「零配置(Zero Configuration)」——大多数用户不需要写任何配置就能用得很舒服。
它内置了 JetBrains Mono 作为默认字体,甚至还内置了 Nerd Fonts。主题默认也是可用的。如果你什么都不配,打开就能用。
但如果你想定制,配置文件在 ~/.config/ghostty/config.ghostty(macOS 还支持 ~/Library/Application Support/com.mitchellh.ghostty/config.ghostty),格式极其简洁:
font-family = Fira Code
font-size = 14
theme = dark:Catppuccin Mocha,light:Catppuccin Latte
background-opacity = 0.95
没有 JSON 的括号嵌套,没有 TOML 的分节,没有 Lua 的函数调用。就是 key = value,一行一项。
几个实用配置方向:
字体。font-family 可以写多个做回退。想关闭编程连字,加一行 font-feature = -calt。用 ghostty +list-fonts 能看到所有可用字体。
主题。数百套内置主题(来源于 iterm2-color-schemes,每周同步)。用 ghostty +list-themes 浏览。支持 theme = dark:主题A,light:主题B 随系统亮暗自动切换。
热加载。改完配置后按 macOS Cmd+Shift+, 或 Linux Ctrl+Shift+, 即可热加载,不需要重启。不过不是所有选项都支持运行时生效,部分只对新建的终端窗口有效。
配置文件拆分。可以用 config-file 引入其他文件,方便按机器或场景组织。加 ? 前缀表示可选文件(不存在就忽略)。
键绑定
键绑定的设计值得单独说一下,因为做得确实灵活。
基础语法:
keybind = ctrl+shift+t=new_tab
keybind = cmd+d=new_split:right
keybind = ctrl+a>n=new_window
最后一条是序列键(chord),按完 ctrl+a 再按 n 触发新窗口——有 tmux 前缀键那个味道。
几个有意思的机制:
全局快捷键。加 global: 前缀可以在 Ghostty 没有焦点的时候也能触发。最常见的用法是呼出 Quick Terminal:
keybind = global:cmd+`=toggle_quick_terminal
macOS 上需要给 Ghostty 辅助功能(Accessibility)权限。Linux 上需要桌面环境支持 Global Shortcuts portal(KDE Plasma 可以,GNOME 看版本)。
unconsumed: 前缀。默认情况下键绑定会「吃掉」按键不传给终端程序。加这个前缀可以在执行动作的同时把按键也发给程序——有些场景很有用。
performable: 前缀。只在动作可以执行的时候才拦截按键。比如 performable:cmd+c=copy_to_clipboard,没有选中文本的时候 Cmd+C 会正常发 SIGINT 而不是尝试拷贝空内容。
用 ghostty +list-keybinds --default 看所有默认键位,ghostty +list-actions 看所有可用动作。
几个值得展开的特性
Quick Terminal
这是一个 Quake 式的下拉终端。按快捷键从屏幕边缘滑入,再按一次滑出。跟普通窗口不同,它是一个单实例——隐藏的时候状态保留,再唤出来还是之前的会话。
非常适合「快速跑个命令」的场景,不需要切到终端窗口,用完就藏起来。
macOS 上体验最好。Linux 上需要 Wayland 且 compositor 支持 wlr-layer-shell,实践中 GNOME 用户可能用不了这个功能。
Shell 集成
Ghostty 会自动向 bash、zsh、fish、elvish、nushell 注入集成脚本(不需要你手动改 .zshrc)。注入后获得的能力:
- 新标签/分屏自动继承当前工作目录
- 提示符处关闭窗口不弹确认(因为知道没有在跑的命令)
- Ctrl/Cmd+三击可以精准选中一整条命令的输出(而不是按行选)
jump_to_prompt在上下文中跳转到上一个/下一个提示符- 复杂提示符在终端 resize 时由 shell 重绘而不是 reflow 出乱码
还有两个可选的 SSH 增强功能(默认关闭):ssh-env 让远程服务器感知 Ghostty 特有环境变量,ssh-terminfo 自动在远程安装 Ghostty 的 terminfo 文件。不过 SSH 包装是通过 shell 函数实现的,在脚本或子进程中调用 ssh 时不会生效,有场景局限。
主题生态
主题在 Ghostty 里就是一个普通的配置文件片段,通常只设颜色相关的选项。自定义主题放在 ~/.config/ghostty/themes/ 下即可按名引用。
内置主题来自 iterm2-color-schemes 项目,每周同步更新,数量有几百套。支持在 theme 中同时指定亮色和暗色主题,跟随系统自动切换——这个在 macOS 上的体验非常丝滑。
有一点需要注意:主题文件可以包含任意配置项(不仅是颜色),所以如果你从不信任的来源下载主题,值得先看一眼内容。
跟其他终端怎么选
不想做一个简单的打分表,因为每个人的工作流不一样。聊聊几个典型场景。
如果你是 macOS 用户,想要一个「用起来就像系统自带应用」的现代终端,Ghostty 大概是目前最好的选择。原生 UI、低延迟、开箱即用、配置简单。
如果你重度依赖 iTerm2 的原生 tmux 集成、Triggers、Python 自动化脚本,Ghostty 目前还替代不了 iTerm2 在深度自动化方面的能力。但如果你用 iTerm2 只是因为它比 Terminal.app 好,那 Ghostty 值得一试。
如果你是极简主义者,已经有完善的 tmux 工作流,Alacritty 可能更适合你——它专注做好一件事:渲染。
如果你需要 Windows 支持,现在只能选 WezTerm 或 Alacritty。Ghostty 的 Windows 还在路上。
如果你需要可编程能力和高度定制,Kitty(kittens 扩展)和 WezTerm(Lua 配置)在这方面走得更远。Ghostty 的理念更偏向「把默认做好,少配置」。
我觉得值得关注的事
Ghostty 让我印象深刻的不只是它现在已经做到的这些,还有它的架构思路。
libghostty 的独立化是一个很有想象力的方向。如果终端模拟、字体处理和渲染变成一个通用的、稳定的、可嵌入的库,其他终端项目就可以站在这个基础上去创新 UI 和交互方式,而不是每次都从零实现终端模拟。Mitchell 在 2025 年 9 月的博客中详细讲了这个计划,第一步是 libghostty-vt(零依赖的 VT 解析与状态管理),目标平台包括 macOS、Linux、Windows 和 WASM。
另一个值得注意的是项目的治理方式。2025 年底 Ghostty 通过 Hack Club 的 501(c)(3) 财政赞助运作,捐赠可以抵税,账本公开透明。但技术决策权仍然在 Mitchell 手上。这种「非营利财务 + 核心维护者主导」的模式在开源项目中不算常见,长期效果值得观察。
对我来说,Ghostty 代表了一种值得推崇的工程态度:不试图做所有事,但在选定的目标上做到极致。它不提供插件系统,不搞 Lua 脚本,不追求无限可定制——它选择把「开箱即用的体验」做到足够好,让大多数人不需要配置就能满意。
如果你还在纠结用哪个终端,不妨试试 Ghostty。一行 brew install --cask ghostty 就能开始。
参考资料
- Ghostty 官方文档
- About Ghostty
- Ghostty Features
- Configuration
- Keybindings
- Shell Integration
- Color Theme
- Ghostty 1.0 is Coming — Mitchell Hashimoto
- Ghostty: Reflecting on Reaching 1.0
- Libghostty Is Coming
- Ghostty Is Now Non-Profit
- GPU Terminal Wars — unixy.io
- Best Terminal Emulators 2026 — DevToolReviews
- GitHub: ghostty-org/ghostty