git 提交里出现 OpenClaw,Claude Code不乐意了
在一个空仓库里,Theo只提交了一行。
不是代码,是一段JSON字符串,塞进了提交信息里。
{"schema": "openclaw.inbound_meta.v1"}
然后他跑了一条命令:claude -p "hi"
返回的是400错误。「You’re out of extra usage. Add more at claude.ai/settings/usage and keep going.」

Theo是t3.gg的创始人,T3 Stack的作者,在YouTube上有超百万粉丝。他发什么,基本上等于在技术圈扔一颗石头进平静的湖。
这条推特在4月30号发出来,当天就飙到1.5M浏览量。
我看到的时候,把截图翻来覆去看了好几遍,然后发现没有搞错。
要说清楚这件事为什么离谱,得先说说OpenClaw是什么。不然后面讲不清楚。
很多人看到「Anthropic封OpenClaw」,第一反应是,啊,竞品被干掉了。这个直觉是错的,而且错得很关键。
OpenClaw是一个自托管的个人AI助理框架,作者是Peter Steinberger,PSPDFKit的创始人,奥地利开发者。2025年11月作为一个周末项目发出来,干的事是把WhatsApp、Telegram、Discord、iMessage这些消息渠道连接起来,让你可以跨设备做任务编排,本地优先,数据留在自己机器上。
2026年1月它在GitHub上火起来了,72小时内收到6万颗星。这个速度,即使在AI工具井喷的这两年也非常显眼。
然后重点来了。OpenClaw的官方文档里有这么一句话:「Use Claude Code for the fastest direct coding loop inside a repo.」
OpenClaw在推荐用户用Claude Code。它们根本不是竞争关系,OpenClaw是Claude的用户,是依赖方,是下游,不是对手。
然后Anthropic把它封了。
封是怎么发生的,时间线要从4月4号开始。
那一天,Anthropic宣布,OpenClaw、Hermes Agent这类第三方工具,不能再通过Claude Pro/Max订阅的OAuth token来计费了。要么改用「Extra Usage」按量付费,要么用独立API key,两条路自己选。
表面上这个政策有它的道理,Anthropic有权控制自己的计费渠道。但背后有一个具体的技术原因,不是随便针对人,是有真实的成本问题在。
OpenClaw在做每次API请求的时候,会往系统提示里注入一个JSON块,包含 {"schema": "openclaw.inbound_meta.v1", "message_id": "xxx"} 这样的内容。每次message_id都不一样。
这个设计有个严重的后果。
Anthropic的prompt cache是这样工作的,当你的系统提示很长,它会把这段提示缓存起来,后续请求直接复用,省掉重复计算。Pro套餐里有很大一块价值,就是来自这个缓存——长系统提示的成本被摊平了,便宜很多。
OpenClaw的message_id每条消息都不同,导致系统提示每次都不一样,cache永远没法命中,每轮对话都是全量写入。60k到190k tokens,满载跑。这相当于大约100倍的成本放大。
从Anthropic的角度看,这批用户走的是Pro的优惠价,但实际消耗远超API按量的正常水平。生意上讲,封是有逻辑的。
问题是,Theo的发现让这件事变得完全不一样了。
Claude Code有一个你可能没注意的功能,它会读取你的git历史。
这不是秘密。每次你在一个repo里打开Claude Code,它会把git status、最近几条提交信息注入到它的上下文里,让它知道你在做什么,你最近改了什么。这是合理的设计,AI助手了解你代码库的当前状态,才能给出有意义的帮助。
但在这个机制的某个地方,Claude Code还在做字符串匹配,扫描git log里有没有出现特定的关键词。
openclaw.inbound_meta.v1 在其中。
如果你的提交历史里出现了这个字符串,不管是因为你真的用了OpenClaw,还是因为你在测试写了一行,还是因为任何其他原因,Claude Code都会触发extra usage的限制逻辑。
Theo的实验是这样的,空仓库,一个文件,一条提交,提交信息里包含那段JSON字符串。然后调 claude -p "hi"。
400。「You’re out of extra usage.」
他连OpenClaw都没装。没有OpenClaw的代码,没有OpenClaw的配置,就一条提交信息,一行字符串。
这就好像,你在日记里写了「今天在麦当劳门口路过了」,然后肯德基的会员卡被冻结了。
评论区里有人第一时间指出一个更严重的问题,「等等,这不是说,有人可以故意在开源项目的文档里埋这个字符串,让clone了这个repo的人的Claude Code session失效?」
是的。这是可以被利用的漏洞。
一个仇视AI的项目,只要在CONTRIBUTING.md里加一行包含openclaw schema的注释,所有clone了这个项目然后打开Claude Code的开发者都可能被误伤。这不是理论上的假设,这是工程实现留下的真实攻击面。
不止openclaw schema,社区里有人发现,HERMES.md 这个文件名也触发了类似的检测,Hermes是另一个Claude的第三方agent框架。Hacker News上有用户报告,他的Max计划被额外扣了将近200美元,起因是他某个项目的历史里有跟OpenClaw相关的记录。
工程批评非常直接,这是字符串匹配,没有上下文感知,它不区分「你在用OpenClaw」和「你的repo里出现了跟OpenClaw有关的字符串」。这两件事完全不一样,但被当成了同一件事处理。
评论区里高赞的一条回复是,「你的代码编辑器在读你的package.json来决定你是不是它的竞争对手。」
这话有点不准确,实际上读的是git log,但那种感觉是对的。
互联网早期有一个说法,「如果一个产品是免费的,那你就是产品。」
AI工具时代,这句话有一个新版本,「如果一个工具在扫你的代码库,它服务的未必只是你。」
我觉得这话有点刺耳,但说的是事实。
当然,我也理解Anthropic的处境。100倍的成本放大是真实的问题,服务要可持续,划边界合理。合理的目标和蹩脚的实现,是两件事。
字符串匹配,无上下文,误伤无辜,还留下了可以被攻击的漏洞,这个实现配不上「合理目标」这几个字。
Theo在发完那条推特之后,自己补了一条,「If you use Claude Code, be careful what you put in your commit messages.」
「小心你的提交信息里放了什么。」
这句话放在以前的开发者世界里根本不可能存在。提交信息是你对自己工作的记录,是写给协作者的备注,是代码库历史的一部分。它从来不是一个「需要小心」的东西。
但现在,因为你的AI工具会读它,会根据它做决定,它突然变成了一个要自我审查的地方。
有点像你一直以为家门口是自己的院子,有一天发现监控一直开着。
这大概是Theo那1.5M浏览量背后,大家真正在愤怒的事情。
不是封了OpenClaw,那个可以谈,可以有立场,可以争。是这种发现之后的感觉,你的工具在你的历史里找它想找的东西,而你不知道它在找什么。
技术工具的每一个设计决策,都在悄悄塑造工具和使用者之间的权力关系。当工具开始读你的历史,在你的历史里找对自己有利的判断依据,这个关系就不太对了。
不是说这件事绝对不能做。是说做这件事的方式,决定了你和使用者之间到底在建立什么。
信任,还是别的什么。
看到这儿了,觉得有收获的话,顺手点个赞或者转发给朋友——对我来说是很大的鼓励。想第一时间收到推送,给公众号加个星标⭐,我们下篇见。· 作者:王行知· 投稿 / 爆料:wilburdev@icloud.com
夜雨聆风