Ghostty 终端黑洞:用实时光线追踪吃掉 Claude Code 的上下文
刷推的时候看到一张动图:Ghostty 终端里飘着一只黑洞,慢慢长大,把屏幕里的字一点点吃掉。
这只黑洞的食量,是 Claude Code 的上下文窗口。

你和 Claude Code 聊天的时候,聊着聊着,上下文就顶到上限了。模型自己会默默执行一次 /compact,前面半个项目的细节一下子便模糊掉了。每次都特别突兀。
后来有个开源项目给它加了一个动画:只要你在终端里用 Claude Code,上下文越满,这只黑洞就越大。
一开始它只是右上角一粒米那么小,接着慢慢长,长到能吞下半个屏幕。你完全不用抬头看进度条,余光里就知道该 /compact 了。
这是个什么东西
ghostty-blackhole,是给 Ghostty 终端做的一个插件。
Ghostty 本身是一个口碑相当不错的开源终端,GitHub 上已经有超过 5 万的 Star。

Ghostty 从 1.0 开始开放了自定义 Shader 接口,允许你写一段 GLSL 代码,对整个终端画面再后期处理一遍。理论上你可以用它做出水波纹、CRT 扫描线、赛博朋克霓虹,几乎什么效果都能实现。这个项目就利用这个接口,往画面里塞了一颗黑洞。
它的灵感来自 Eric Bruneton 的 black hole shader,那个项目是借助预计算的查找表和光线追踪,直接在 GPU 里渲染黑洞。每一帧、每一个像素,都在 GPU 中实时计算,非常硬核。
GitHub 上的项目简介也直白得要命:
Ghostty Blackhole puts a real, ray-traced black hole inside your terminal. It grows as Claude Code’s context window fills up, live.

这个项目最离谱的地方就在于:你在屏幕上看到的所有元素——视界、光子环、黑洞吸盘、被弯曲的文字——全都是光线追踪“算”出来的涌现结果,而不是手动画上去或贴图拼上去的。换句话说,这个项目真的在 GPU 里去演算时空如何弯曲、光线如何偏折,屏幕上每一个像素的颜色,都是从物理公式里长出来的。
于是你看到的效果就是:黑洞离你的字越近,那些字就被扭曲得越厉害。眼瞅着自己写的代码,在黑洞边缘被拉成了一根根意大利面,那一刻的感觉极其上头。
实际表现
安装完成后,大致是这样的画面:

- 新会话刚开始时:黑洞缩在右上角,只有米粒大小,大概占屏幕面积的 0.06%。
- 上下文慢慢涨起来之后:黑洞越长越大,它漂移的范围也从一开始的角落,逐渐占到整个屏幕的上方。等快要满的时候,能占到 80% 甚至更多。黑洞的吸盘和光子环也跟着明显亮起来,肉眼可见。
- 100% 满了:整块屏幕都会被吞掉。
- 执行 /compact 或开启新会话:那只黑洞会立刻弹回到角落里,接着完全消失,就像什么都没发生过,变回一个普普通通的终端。
装一下试试
需要 Ghostty 1.3 及以上的版本。
第一步,克隆仓库:
git clone https://github.com/s0xDk/ghostty-blackhole
第二步,在 Ghostty 配置里挂载 shader。
macOS 的配置路径是 ~/Library/Application Support/com.mitchellh.ghostty/config,添加:
custom-shader = /path/to/blackhole.glsl
custom-shader-animation = true
然后 reload 一下,macOS 的快捷键是 cmd+shift+,,新开一个窗口,就能在角落里看到那粒米了。
第三步,要想让黑洞真的跟着上下文一起涨,还需要把 claude-token.py 接入 Claude Code。
编辑 ~/.claude/settings.json,加入:
{
"statusLine": {
"type": "command",
"command": "/path/to/claude-token.py"
},
"hooks": {
"SessionStart": [{
"hooks": [{
"type": "command",
"command": "/path/to/claude-token.py"
}]
}],
"SessionEnd": [{
"hooks": [{
"type": "command",
"command": "/path/to/claude-token.py"
}]
}]
}
}
新开一个 Claude Code 会话,光标会变成琥珀色,黑洞也就开始随着上下文一起慢慢长大了。