Ghostty vs Kitty:为了跑 Claude Code,我做了这个决定

用 Ghostty 跑 Claude Code(cc)的时候,遇到个头疼的问题:内存爆了。

我的使用习惯是开多个 Ghostty 窗口跑 cc,同时处理不同的任务。大概每隔 2 天,Mac 就会弹出"内存不足"的提示,然后系统开始一个一个停止正在运行的应用------先是浏览器的标签页,然后是 VS Code,最后连 Finder 都卡死。每次都得强制重启,手头的工作全断了。

搜了一圈,发现不少人有类似的问题,Ghostty 1.2.1 版本确实存在内存泄漏,官方在 1.2.2 修复了一部分,但 TUI 应用(比如 Claude Code 这种)跑久了还是容易出问题。

Ghostty 本身是个很棒的终端------GPU 加速、原生 macOS 体验、开箱即用的配色都很舒服。Mitchell Hashimoto(HashiCorp 创始人)做的东西,品质确实没话说。但内存问题实在影响日常使用,只能换个终端试试。

选了 Kitty。同样是 GPU 加速,性能口碑不错,而且高度可配置。

为什么是 Kitty

在选择替代方案的时候,对比了几个主流的 GPU 加速终端:

终端 GPU 加速 特点 顾虑
Alacritty OpenGL 极简,性能顶级 功能太少,没有 Tab/分屏
WezTerm OpenGL 功能丰富,Lua 配置 配置复杂,启动略慢
Kitty OpenGL 功能/性能平衡,配置简单 -

最后选 Kitty,主要看中几点:

  1. 性能靠谱官方性能测试显示,Kitty 在 macOS 上的输入延迟和 Terminal.app 并列最低,吞吐量测试也是最快的。通过 GPU 缓存字符的 alpha mask 并行渲染,CPU 占用低。

  2. 功能够用 :Tab、分屏、图片显示、超链接点击都有,还支持自己的图形协议

  3. 配置简单 :一个 kitty.conf 文件搞定,不像 WezTerm 需要写 Lua。

  4. 稳定:项目成熟,用的人多,踩坑少。

迁移的痛点

换过来之后发现,Kitty 的默认配置和 Ghostty 差别挺大的。用惯了 Ghostty 的体验,切到 Kitty 各种不适应。

逐个解决:

痛点 1:颜色不对,Claude Code 输出看着别扭

第一个发现的问题:Claude Code 的输出颜色看起来不太对,有些文字颜色和 Ghostty 里不一样。

对比了一下,发现是 ANSI 颜色配置不同。Ghostty 用的是自己的 StyleDark 主题,Kitty 默认是另一套配色。

ghostty +show-config --default 可以导出 Ghostty 的默认配置,把颜色值搬过来:

bash 复制代码
# Ghostty 默认主题色
background #282c34
foreground #ffffff

# ANSI 颜色 - 完全匹配 Ghostty
color0  #1d1f21
color1  #cc6666
color2  #b5bd68
color3  #f0c674
color4  #81a2be
color5  #b294bb
color6  #8abeb7
color7  #c5c8c6
color8  #666666
color9  #d54e53
color10 #b9ca4a
color11 #e7c547
color12 #7aa6da
color13 #c397d8
color14 #70c0b1
color15 #eaeaea

痛点 2:选中文字直接消失

选中一段文字,发现整块变成白色,完全看不见选了啥。

原因是 Kitty 默认的选区颜色有问题。改成 none 让它自动处理反色:

bash 复制代码
selection_background none
selection_foreground none

痛点 3:字体比 Ghostty 粗

切过来总觉得字体比 Ghostty 粗一点,看久了眼睛累。

查了下,Ghostty 默认 font-thicken = false,而 Kitty 在 macOS 上有字体加粗渲染。禁用掉:

bash 复制代码
macos_thicken_font 0
text_composition_strategy platform

痛点 4:快捷键全废了

Ghostty 默认支持的几个常用快捷键,Kitty 都没有或者行为不同:

快捷键 Ghostty Kitty 默认
Cmd+T 新建 Tab,继承当前目录 新建 Tab,回到 home
Cmd+数字 切换 Tab 不生效
Cmd+W 关闭 Tab 不生效
Cmd+D 垂直分屏 不生效
Cmd+K 清屏 不生效

手动配置:

bash 复制代码
# Tab 操作
map cmd+t new_tab_with_cwd
map cmd+w close_tab
map cmd+1 goto_tab 1
map cmd+2 goto_tab 2
map cmd+3 goto_tab 3
map cmd+4 goto_tab 4
map cmd+5 goto_tab 5
map cmd+6 goto_tab 6
map cmd+7 goto_tab 7
map cmd+8 goto_tab 8
map cmd+9 goto_tab 9

# 分屏
map cmd+d launch --location=vsplit --cwd=current
map cmd+shift+d launch --location=hsplit --cwd=current
map cmd+[ previous_window
map cmd+] next_window

# 其他
map cmd+k clear_terminal scroll active
map cmd+equal change_font_size all +1.0
map cmd+minus change_font_size all -1.0
map cmd+0 change_font_size all 0
map cmd+, edit_config_file
map cmd+shift+, load_config_file

痛点 5:行为细节不一致

还有一些小差异让人不适应:

功能 Ghostty Kitty 默认
窗口内边距 2px 更大
选中自动复制 开启 关闭
关闭确认 没有
bash 复制代码
window_padding_width 2
copy_on_select yes
confirm_os_window_close 1

完整配置

这是我修改配置后的 ~/.config/kitty/kitty.conf,直接复制就能用:

bash 复制代码
# ===== 字体设置 =====
font_family      Menlo
font_size        13.0

# ===== 窗口设置 - 匹配 Ghostty =====
window_padding_width 2
macos_titlebar_color background

# ===== 颜色 - Ghostty 默认主题 =====
background #282c34
foreground #ffffff

# 光标
cursor #ffffff
cursor_text_color #282c34

# 选区 - 自动颜色
selection_background none
selection_foreground none

# ANSI 颜色 - 完全匹配 Ghostty
color0  #1d1f21
color1  #cc6666
color2  #b5bd68
color3  #f0c674
color4  #81a2be
color5  #b294bb
color6  #8abeb7
color7  #c5c8c6
color8  #666666
color9  #d54e53
color10 #b9ca4a
color11 #e7c547
color12 #7aa6da
color13 #c397d8
color14 #70c0b1
color15 #eaeaea

# ===== 行为设置 =====
# 选中自动复制
copy_on_select yes

# 关闭确认
confirm_os_window_close 1

# scrollback
scrollback_lines 10000000

# ===== macOS 优化 =====
macos_option_as_alt yes

# ===== Tab 栏设置 =====
tab_bar_edge bottom

# ===== 快捷键 - 匹配 Ghostty =====
# Tab 操作
map cmd+t new_tab_with_cwd
map cmd+w close_tab
map cmd+1 goto_tab 1
map cmd+2 goto_tab 2
map cmd+3 goto_tab 3
map cmd+4 goto_tab 4
map cmd+5 goto_tab 5
map cmd+6 goto_tab 6
map cmd+7 goto_tab 7
map cmd+8 goto_tab 8
map cmd+9 goto_tab 9

# 分屏
map cmd+d launch --location=vsplit --cwd=current
map cmd+shift+d launch --location=hsplit --cwd=current
map cmd+[ previous_window
map cmd+] next_window

# 清屏
map cmd+k clear_terminal scroll active

# 字号调整
map cmd+equal change_font_size all +1.0
map cmd+minus change_font_size all -1.0
map cmd+0 change_font_size all 0

# 打开配置
map cmd+, edit_config_file

# 重载配置
map cmd+shift+, load_config_file

# ===== 字体渲染 - 匹配 Ghostty =====
# 禁用 macOS 字体加粗
macos_thicken_font 0

# 使用平台原生渲染策略
text_composition_strategy platform

性能对比

关于 Ghostty 和 Kitty 的性能,网上有不少讨论。简单总结:

维度 Ghostty Kitty
IO 吞吐 号称比 Kitty 快 4x(纯文本读取) 也很快,实际体感差不多
输入延迟 优秀 macOS 最低延迟之一
渲染 Metal(macOS 原生) OpenGL
内存 TUI 应用有泄漏风险 稳定

Mitchell Hashimoto 自己也说过,"在大多数 benchmark 里 Ghostty 比 Kitty 好,但实际使用中(比如跑 Htop、Helix)你感觉不出差别"。

对我来说,选 Kitty 的核心原因就一个:稳定。跑 Claude Code 长任务不会 OOM,这比快那么一点点重要多了。

迁移后的体验

用了几天,内存问题确实没了。Kitty 跑 Claude Code 长时间任务也很稳定,内存占用保持在合理范围。

配置完成后,使用体验和 Ghostty 基本一致:

  • 颜色、字体渲染都对上了
  • 快捷键习惯不用改
  • 分屏、Tab 管理都正常

唯一的遗憾是 Ghostty 的 UI 确实更好看一点,原生 macOS 的感觉更强。但稳定性是第一位的,颜值可以妥协。

如果你也被 Ghostty 的内存问题困扰,Kitty 是个靠谱的替代方案。希望这份配置能帮你少踩点坑。


如果你觉得这篇文章有帮助,欢迎关注我的 GitHub,下面是我的一些开源项目:

Claude Code Skills (按需加载,意图自动识别,不浪费 token,介绍文章):

全栈项目(适合学习现代技术栈):

  • prompt-vault - Prompt 管理器,用的都是最新的技术栈,适合用来学习了解最新的前端全栈开发范式:Next.js 15 + React 19 + tRPC 11 + Supabase 全栈示例,clone 下来配个免费 Supabase 就能跑
  • chat_edit - 双模式 AI 应用(聊天+富文本编辑),Vue 3.5 + TypeScript + Vite 5 + Quill 2.0 + IndexedDB
相关推荐
魔鬼筋肉人7772 天前
必须掌握的命令行工具之curl
命令行
課代表2 天前
bat 批处理脚本中的字符串
字符串·脚本·命令行·bat·批处理·字符串截取·延迟变量
汤姆Tom3 天前
硬核指南:Volta —— 重新定义 JavaScript 工具链管理
前端·敏捷开发·命令行
柒儿吖8 天前
命令行esh在开源鸿蒙PC平台的工程实践
开源·harmonyos·命令行
柒儿吖8 天前
命令行critic.sh在开源鸿蒙PC平台的实现解析
鸿蒙·命令行
特立独行的猫a8 天前
cpp-linenoise介绍——让命令行拥有猫一般的敏捷
c++·ui·命令行·cpp-linenoise
課代表15 天前
Windows 批处理 bat 变量扩展名
windows·命令行·bat·批处理·扩展名·递归遍历·后缀名
一点都不方女士18 天前
Windows系统提示“找不到ffmpeg.dll”?3种下载修复指南
windows·ffmpeg·dll·命令行·动态链接库·运行库
課代表1 个月前
Windows 文本搜索命令 findstr
windows·正则表达式·命令行·文本·匹配·搜索·findstr