乐于分享
好东西不私藏

git 提交里出现 OpenClaw,Claude Code不乐意了

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