犯罪现场

萨拉戈萨,皮拉尔广场酒店的咖啡厅。一杯拿铁,望向大教堂的景色,还有我带着全新的MacBook Air M3,准备在会议前用Claude Code工作几个小时。

两小时后:电池剩余15%。红色警报。恐慌。

但是怎么可能?我只是在终端里写代码。没有视频,没有Zoom,没有任何能够合理解释如此高耗电量的应用。

我打开活动监视器,点击能耗选项卡,罪魁祸首就在那里:Ghostty,在过去12小时内累计消耗了3600。为了让你有个概念,Brave浏览器消耗了125。开着视频的Zoom消耗了99。Claude(桌面应用)消耗了46。

我的终端——一个显示文本的应用程序——消耗的电量比网页浏览器多30倍

荒谬中的荒谬

停下来想想我刚才写的内容。

一个终端。一个VT100模拟器。一项1978年的技术。字面意思上是一个工作就是在屏幕上显示字母的应用程序,这是Commodore 64都能轻松完成的任务。

而在2026年,它需要GPU来运行。

用大白话说:我们正在使用本可以实时渲染《玩具总动员》的计算能力…来显示ls -la

原版VT100终端消耗30W包括CRT显示器。我的MacBook Air,配备专为能效设计的最新芯片,显示一个git status比执行视频通话消耗的电量还要多。

这就像开法拉利去买面包。但更糟糕,因为如果你想开得快,法拉利至少还有意义。这里没有任何实际优势:文本看起来完全一样。

为什么终端需要GPU?

Ghostty、Alacritty、Kitty等是新一代"GPU加速"终端的一部分。承诺:更流畅的渲染,大量输出时更好的性能,更清晰的字体。

现实:它们像没有明天一样耗电,显示的内容和Terminal.app使用CPU显示的完全相同。

问题不仅仅是渲染。当Claude Code运行时,会有持续的输出:旋转器、日志、工具结果。屏幕上出现的每个字符都会触发GPU渲染管道。Metal激活,着色器开始工作,帧被合成…

就为了显示一个旋转的点。

更糟糕的是,这些现代终端无法正确进入"App Nap"状态。macOS有一个暂停后台应用程序的系统,但如果终端正在显示动画旋转器,系统会认为它在做重要的事情并保持其活跃状态。

穷人解决方案:Terminal.app

最简单的解决方案也是最明显的:使用Terminal.app。

是的,就是macOS自带的终端。那个看起来自2005年以来没有变过的终端。那个没有GPU加速、连字或任何现代功能的终端。

1
2
# 打开Terminal.app并运行
claude

功能完全一样。Claude Code不知道也不关心你从哪个终端运行它。而且Terminal.app:

  • 使用CPU渲染(在Apple Silicon上超级高效)
  • 正确进入App Nap状态
  • 消耗电池的一小部分

性感吗?不。有用吗?完美。

改进解决方案:带配置文件的iTerm2

如果你离不开现代终端,iTerm2有一个Ghostty没有的选项:你可以禁用GPU渲染。

步骤1:创建"电池"配置文件

  1. 打开iTerm2
  2. PreferencesProfiles
  3. 复制当前配置文件(点击左下角的+按钮,然后选择Duplicate Profile
  4. 将新配置文件命名为**“Battery”**
  5. 在Battery配置文件中:Terminal → 取消勾选**“GPU Rendering”**

步骤2:手动切换

当使用电池工作时,只需切换到配置文件:

ProfilesBattery(在iTerm2菜单中)

两次点击。你的终端现在像一个负责任的公民一样耗电。

步骤3:自动切换(可选)

如果想要自动切换,将以下内容添加到你的.zshrcconfig.fish

1
2
3
4
# 对于zsh (~/.zshrc)
if [[ $(pmset -g batt | grep -c "Battery Power") -gt 0 ]]; then
    echo -e "\033]50;SetProfile=Battery\a"
fi
1
2
3
4
# 对于fish (~/.config/fish/conf.d/iterm_battery.fish)
if test (pmset -g batt | grep -c "Battery Power") -gt 0
    echo -e "\033]50;SetProfile=Battery\a"
end

每次打开新标签页时,iTerm2会检查你是否在使用电池,并自动切换到高效配置文件。

Ghostty:房间里的大象

如果我想继续使用Ghostty怎么办?

很遗憾没有优雅的解决方案。Ghostty没有禁用GPU渲染的选项。要么GPU要么什么都没有。

你可以尝试:

  • 最小化窗口当不使用时(强制类似App Nap的状态)
  • 减少动画在配置中(cursor-style-blink = false
  • 禁用垂直同步如果你不介意撕裂

但现实是Ghostty是为性能而不是效率设计的。如果你经常使用电池工作,它不是合适的工具。

# ~/.config/ghostty/config
# 减少消耗的绝望尝试
cursor-style-blink = false
mouse-hide-while-typing = true

反思

这一切都有一种深刻的讽刺意味。

1978年,在屏幕上显示文本是微不足道的。2026年,我们成功地将其变成了一项需要最新硬件并消耗比跨洲视频通话更多能源的任务。

他们称之为进步。

下次有人向你推销"优化"和"现代"工具时,问问自己:为什么而优化?因为如果答案是"让字母提前2毫秒出现,代价是烧掉电池",也许进步的方向错了。

与此同时,Terminal.app仍然在那里。丑陋、无聊,但20年来一直完美运行。

有时候旧的东西旧是有原因的。有时候,它就是有用。