清凤小栈
← 返回日志
技术 AI

Claude Code 开源了,然后呢?

黑盒本来就不是秘密

· 清凤 · 1,829 字 · -- 次阅读

内容都是我和 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 工具的设计感兴趣,与其花时间读一个刚泄露的源码,不如直接用这些工具用到眼睛开始觉得累,然后问问自己:是哪里不对?

答案大概率比源码更有价值。

评论