Claude Code 2.1.88 源码恢复记:一次由 Source Map 引发的技术考古
前几天,我注意到一件很特别的事:@anthropic-ai/claude-code@2.1.88[1] 的 npm 包里,曾经包含 cli.js.map。
基于这份 Source Map,我恢复出了一套可阅读的 TypeScript 源码目录。
虽然它还不是一个可直接构建运行的官方工程副本,但已经足够让我们观察 Claude Code 这类 AI Coding CLI 的大量核心结构:
-
• CLI 启动链路 -
• 命令系统 -
• Tool 系统 -
• Agent / Task 模型 -
• MCP 集成 -
• React + Ink 终端 UI 的组织方式
如果你平时会关注 AI Coding、Agent、CLI 工程,或者对 Claude Code 这类产品的内部实现一直很好奇,那这个项目你大概率会感兴趣。
一次有意思的”源码考古”
Source Map 对前端和 Node 开发者来说并不陌生,它本来是为了帮助调试压缩后的构建产物而存在的。但有时候,Source Map 里会留下足够多的结构信息,让人得以重新观察一套工程的原始组织方式。
基于这份 Source Map,我把 Claude Code 2.1.88 的大量 TypeScript/TSX 源码目录恢复了出来,并整理成了一个可阅读的仓库。
先说明:这不是 Anthropic 官方开源仓库,也不代表官方立场。它更适合作为一个研究、归档和源码阅读项目,而不是”拿下来就能直接跑”的那种完整工程副本。
但即便如此,这份恢复结果的信息量依然很大。
CLI 启动链路
从目前恢复出的代码来看,Claude Code 的整体工程结构已经相当清晰。
现在能看到 src/entrypoints/cli.tsx 和 src/main.tsx 这样的核心入口文件,也能看到初始化流程相关的代码:配置系统启用、环境变量注入、代理与证书预处理、遥测初始化等。
对于理解一个成熟 CLI 工具是如何启动、分流和做环境准备,这部分非常有参考价值。
命令系统
通过 src/commands.ts,可以看到 Claude Code 内部注册了大量命令,并且很多命令采用懒加载和特性开关控制。
像 mcp、review、tasks、plugin、agents、memory、teleport、doctor、config 这些能力,都已经能看到对应痕迹。
单从命令层面,就足以帮助理解它是如何把一个 AI Agent 产品组织成完整 CLI 体验的。
Tool 系统
在 src/tools.ts 里,可以看到很多熟悉的能力模块:
-
• Bash -
• 文件读取与编辑 -
• Web 搜索 -
• MCP -
• Agent -
• Todo -
• Plan Mode -
• Worktree
这份恢复结果已经不仅仅是”命令行壳子”,而是能让人看到 Claude Code 内部工具抽象的一部分。
如果你在做自己的 Coding Agent,或者正在思考”Agent 到底应该如何组织可调用能力”,这一层会特别值得看。
Agent / Task 模型
比如 src/tasks/、src/tools/AgentTool/、src/tools/shared/ 这些目录,已经能看出它在任务编排、多代理协作、本地 Shell 执行和远程能力接入上的一些设计思路。
虽然还不等于完整复原所有细节,但已经足够让人看到一个成熟产品在架构层面的取舍。
终端 UI
很多人会把 CLI 理解成”命令 + 文本输出”,但 Claude Code 这类产品显然不止于此。
从恢复出来的 src/components/ 和 src/ink/ 来看,它大量使用了 React + Ink 去构建复杂终端交互界面。这部分对终端产品设计、交互流组织,以及”如何在命令行里做出应用感”都很有参考意义。
MCP 相关内容
仓库里既能看到 mcp 命令,也能看到 MCPTool、ListMcpResourcesTool、ReadMcpResourceTool 这类实现线索。
对于正在研究 Model Context Protocol 如何真正落地到产品中的人来说,这部分会比单纯看概念更有帮助。
这个项目的边界
当然,这个项目现在依然有很强的”恢复现场”特征。
比如当前仓库根目录里,还没有完整恢复出官方工程级的 package.json、bun.lock、tsconfig、lint/build 配置等文件。源码中还存在 bun:bundle、feature(...)、MACRO.VERSION 等构建期能力,这意味着它并不是一个可以直接本地复刻官方构建流程的仓库。
所以:
-
• 如果你的目标是”阅读源码,分析结构、观察设计” → 这份仓库已经很有价值 -
• 如果你的目标是”直接跑起来” → 它现在还缺不少关键拼图
这个项目最有意思的地方
不只是”恢复出了多少文件”,而是它让我们有机会更近距离地观察一个成熟 AI Coding CLI 产品是怎么组织起来的。
它不是某一个单点功能的实现,而是一整套工程系统:
入口、初始化、命令、工具、任务、代理、终端 UI、MCP、Feature Flags、远程能力 —— 这些东西组合在一起,才构成了 Claude Code。
如果你对以下方向感兴趣
-
• AI Coding Agent 的工程实现方式 -
• CLI 产品的架构设计 -
• 终端 UI 的组织方式 -
• MCP 的实际接入方式 -
• TypeScript 大型工程的模块划分 -
• 单纯喜欢”技术考古”
那这个项目很值得一看。
最后强调
这个项目不是官方开源项目,也不代表官方立场。 原始代码、商标及相关权利归原权利方所有。当前仓库更适合作为归档、研究、结构分析与源码阅读材料。
但仅仅作为”研究样本”,它已经足够有意思了。
如果你对 AI Coding、Agent、MCP 或 CLI 架构感兴趣,欢迎点个在看,或者把这篇文章转给可能感兴趣的朋友。
项目地址:https://github.com/beyondlong/claude_code_sources
免责声明:本文提及项目为非官方研究归档,不代表 Anthropic 官方立场。相关版权、商标及其他权利归原权利方所有。本文仅作技术研究、结构分析与源码阅读分享。
引用链接
[1] claude-code@2.1.88: mailto:claude-code@2.1.88
夜雨聆风