Claude Code源码泄露且几乎被完整还原,附源码和分析文档
将二进制空间安全设为”星标⭐️”
第一时间收到文章更新
事件背景
Claude Code是Anthropic官方的CLI编程助手,本次泄露的源码版本为:@anthropic-ai/claude-code v2.1.88,该编程助手基于TypeScript开发,使用React Ink进行终端UI渲染。整个程序打包为单个cli.js文件(13MB),源码包含1906个自有源文件和2850个第三方依赖文件。至于为什么会被泄露,答案见下图:

技术栈及工具架构
Claude Code编程语言采用TypeScript开发,运行时使用Node.js(Bun构建);终端UI采用React Ink(自定义fork);状态管理使用Zustand;API客户端为:@anthropic-ai/sdk;CLI框架为Commander.js;搜索引擎为ripgrep(内置二进制);协议扩展为MCP(Model Context Protocol)。
Claude Code源码主要包含5大核心工作模块, tools模块包含40+个工具目录,每个工具一个子目录; services模块包含15+个服务目录,包括API、MCP、分析、OAuth等; components模块包含100+组件,主要是React Ink UI组件; utils模块包含200+工具文件,包含权限、Bash解析、设置等; commands模块包含90+个命令。
Claude Code工具的系统架构如下图:

该架构采用自上而下、职责分层的设计: 最上层由PromptInput承接用户输入,作为会话入口;随后进入以 query.ts 为核心的主消息循环,在同一轮对话中完成系统提示拼装、多轮消息规范化以及上下文裁剪与压缩,把可发送给模型的状态收敛到可控规模。中间层由 claude.ts充当 Anthropic API 客户端,在流式传输、失败重试与回退以及Direct / Bedrock / Vertex / Azure 等多后端路由之间统一抽象,保证调用路径一致、可观测且可恢复。模型若产出工具调用,则由 StreamingToolExecutor作为工具执行编排层:依据各工具的并发安全性在并行(上限约束)与串行之间分流,驱动Bash、读写检索、子Agent等工具链落地,并把结果回注对话。最底层由基于React Ink 的UI渲染层负责消息流展示、敏感操作权限确认与后台任务面板,把异步、长耗时与需人工裁决的行为与主交互界面贯通,从而形成从「输入—推理—工具—反馈」到「终端呈现与治理」的闭环。
目录结构与模块关系
src/src/ 源码文件包含入口(entrypoints、bootstrap)、主界面(screens 里的 REPL.tsx)、各类 UI 组件(消息、权限、输入、差异对比、任务、MCP、创建代理等)、四十多种工具实现(如 Bash、文件编辑、网页抓取),到服务层(与 Anthropic 通信、工具编排、上下文压缩、MCP 客户端、遥测、OAuth)、斜杠命令、生命周期 Hook、Zustand/React Context 状态、后台任务执行器(本地/远程 Shell 与代理任务),以及技能、插件、多代理协调与远程会话等模块,其中 utils 下包含了体量很大的权限引擎与 Bash AST 解析、模型与配置、沙盒、遥测、Git 与 Hook 加载等,其整理结构关系如下图 :


源码和分析文档地址:
https://github.com/ghboke/claude-code-reverse
另一个非官方整理版:
https://github.com/ChinaSiro/claude-code-sourcemap
无需CLI依赖的Agent-SDK:
https://github.com/shipany-ai/open-agent-sdk
(全文完)
夜雨聆风