Claude Code 开源了,然后呢?
黑盒本来就不是秘密
内容都是我和 claude 聊了很久聊出来的…我的方向实在是太散了,只能让 claude 帮我 summary 和写文章了
以下均为ai重写,如果不喜欢ai可以不看,但是内容是我实打实聊出来的
Claude Code 源码泄露了,然后呢?
今天 Anthropic 的一个开发者在发 NPM 包的时候,忘了把 source map 过滤掉,Claude Code 的源码就这样出来了。HN 上立刻炸了,我刷到好多人说”今天要去 reverse Claude Code 源码”,搞得像什么了不得的大事。
我用了一下午想这件事,说说我的感受:没什么意思。
Prompt 早就不是秘密了
先说最核心的一层。Claude Code 的 system prompt,其实早就在各种 leak 仓库里躺着了。Prompt 是所有 agent 工具里最容易泄露的东西——你架一个 LLM proxy 在中间,所有请求过一遍,什么都出来了,根本不需要等哪天源码泄露。
如果你真的在做一个类似 Claude Code 的东西,你第一步就会这么干,这是基本操作。
所以今天泄露的 source map,在”了解 Claude Code 的 prompt 设计”这件事上,提供的增量信息接近于零。
TUI 设计本来就能逆向
再说 UI 层。Claude Code 是 TUI,用的是 Ink(React for CLI)这个生态,这是公开的。它的交互逻辑、渲染方式,有经验的前端开发者对着用几个小时基本就能猜个七七八八。我在做 Arkloop 的时候,没有任何源码参考,该想到的也都想到了。
TUI 不是 GUI,没有那么多视觉层面的”黑魔法”,结构相对透明。你想知道 Claude Code 的 spinner 是怎么做的?就是几个 ASCII 字符来回切换,['·', '✢', '✳', '∗', '✻', '✽'],这个早就有人扒出来了。
所以”通过源码学 TUI 设计”这件事,意义也不大。
那这次泄露唯一有价值的地方在哪?
我觉得只有一个:验证 Claude Code 有没有在悄悄把你的客户端信息上传给 Anthropic。
之前一直有人担心这件事,说被封号是不是因为 Claude Code 把什么环境信息透传上去了。这个担忧以前没办法证伪,只能靠猜。现在源码在手,可以对账了——看看 telemetry 的边界在哪,有没有什么没有在文档里说明的数据收集行为。
这是唯一一个”看了源码才能确认”的问题。其他的,真的不用等这次泄露。
但大家为什么还是在吹?
因为”禁断之物”的感觉。
黑盒变透明这件事有一种天然的吸引力,哪怕打开之后里面什么都没有。对很多人来说,Claude Code 是一个神秘的东西,今天忽然”能看了”,就会本能地觉得重要。但对那些自己造过类似东西的人来说,这个黑盒里有什么,早就猜得差不多了,看源码只是在确认已知的事情。
信息差的幻觉。大多数人的兴奋,来自于他们以为这里面有秘密。
那 Claude Code 真正厉害在哪?
讲到这里我想说一件更重要的事,也是我在做 Arkloop 之前没能说清楚、做了之后才想明白的东西。
Claude Code 真正厉害的地方,不是它的工具设计,不是 auto 权限模式,不是什么 agentic loop 的实现——这些东西你参考 Codex 和 OpenCode 都能做出来,它们开源、社区成熟、exec 稳定性经过大量真实用户验证,比 reverse 一个刚泄露的源码实用多了。
Claude Code 真正的东西是:信息密度控制。
你用 Claude Code 的时候,眼睛不累。每一行输出都是你需要的。tool call 执行的时候,它会给你一句”let me check the file structure first”,这句话技术上没有任何意义,但它在帮你建立一个心智模型——agent 现在在哪、在干什么、为什么这么干。你是跟着它走的,不是站在旁边干等。
然后我今天用了一下 Droid。Droid 的 agent 能力其实很强,很多人说它对某些模型的驾驭甚至比 Claude Code 还好。但我用起来一直有一种说不出来的割裂感,想了一下才想明白——它的 agent output 几乎是没有的。用户输入进去,然后就是 tool call、tool call、tool call,中间没有 assistant 在说话。执行能力在,叙事断了。结果就是你只能看到”在执行”,却完全不知道 agent 在哪个阶段,在想什么。
体验上就是一个黑盒在跑,非常难受。
再对比 Copilot。很多人说 Copilot 的 UI 做得比 Claude Code 好看,某种程度上也没错,视觉上确实更精致。但我每次用都觉得累——progress bar、文件路径、状态标签、角标,每一个单独看都有意义,叠在一起就是噪音。我的眼睛一直在被无意义的信息侵占。
这个问题的根源是:设计者在加每个 feature 的时候是在局部视角里做判断的,没有人在某个时刻以用户的眼睛整体扫一遍,问”这一屏到底哪些东西是我现在真正需要的”。
为什么其他人没注意到这件事?
我自己反思了一下,我能感知到这个,很大程度上是因为做 Arkloop 的时候一直在抠 COP 渲染、tool call 折叠这些细节,脑子里已经建立了一套审美标准,再拿这套标准去看任何 TUI 都会觉得别人的东西吵。
但更多做 CLI 工具的人,哪怕每天用十几个小时,也没有感知到这个问题。我想了一下,大概是因为:他们在用,但没有在看。用工具的时候大脑会自动过滤噪音,时间长了就接受了那个噪音的存在,甚至开始觉得”信息丰富”是好事。
只有你同时在做 UI 设计,才会把”我眼睛累”这个感受拆解成一个可以被解决的问题。
你真的要复刻 Claude Code 的话……
其实路径很简单:去 Prompt Lake 仓库拿 Claude Code 的 prompt,参考 OpenCode 或者 Codex 的工具设计和 exec 逻辑,自己写渲染层。三件事拼在一起,功能上已经覆盖 Claude Code 的绝大多数了。
不需要等今天这个 source map。
Claude Code 真正的护城河是最后那一点——信息密度的审美判断,叙事节奏的设计直觉,什么时候 collapse、什么时候 inline、什么时候让 agent 开口说话。这个东西拼不出来,也抄不走,因为它不在任何仓库里,它在做这件事的人的判断里。
今天泄露的,是前 90%。那 90% 本来就不是秘密。
今天很多人说要去 reverse Claude Code,我觉得如果你真的对 agent 工具的设计感兴趣,与其花时间读一个刚泄露的源码,不如直接用这些工具用到眼睛开始觉得累,然后问问自己:是哪里不对?
答案大概率比源码更有价值。