1. 项目定位与用途
Claude Code Source 是 Anthropic 官方 AI 编程助手 Claude Code 的本地源码版本,版本号 v2.1.88。它从官方 npm 包的源码映射文件中完整还原了 TypeScript 源代码,支持本地编译和运行。该项目的主要用途是为开发者提供一个可 inspect、修改和扩展 Claude Code 的开放环境,便于进行功能定制、架构研究或二次开发。与官方二进制版本不同,源码版本允许开发者直接访问和修改所有实现细节,同时保持与官方版本的功能兼容性,共享认证信息和配置。
2. 解决的问题
官方 Claude Code 以预编译 npm 包形式分发,存在几个关键限制:无法直接查看和调试源码;难以进行功能定制或实验性修改;构建过程不透明,无法理解内部机制。本项目通过从 cli.js.map 源码映射中完整还原 TypeScript 源代码,彻底解决了这些问题。开发者现在可以本地编译、运行和修改 Claude Code,实现深度定制。同时,项目通过自动创建私有包存根和 commander 补丁,解决了 Anthropic 内部包缺失和命令行解析兼容性问题,确保源码能够顺利构建运行。
3. 适用场景
该项目适用于多种开发者场景:一是需要深度定制 Claude Code 功能,如添加新命令、修改 UI 或集成自定义工具;二是进行学术或技术研究,分析 AI 编程助手的架构设计与实现细节;三是在隔离环境中测试实验性功能,不影响正式版使用;四是基于 Claude Code 进行二次开发,构建专用开发工具或工作流。此外,对于希望理解大型 TypeScript CLI 项目构建方式的开发者,该项目也是优秀的参考案例。由于支持与官方版本共存,它也非常适合在生产环境使用官方版的同时,在开发环境使用定制版。
4. 安装方式
安装 Claude Code Source 需要准备 Bun(>=1.3.5)和 Node.js(>=18)环境。首先安装 Bun,可通过 curl 脚本或 Homebrew 完成。然后克隆项目仓库,进入项目目录执行 `bun install` 安装依赖。此步骤会自动运行 postinstall 脚本,创建 5 个 Anthropic 内部私有包的功能存根,并打补丁修复 commander 的多字符短选项兼容性问题。依赖安装完成后,执行 `bun run build` 使用 Bun bundler 进行构建,生成单文件可执行产物 dist/cli.js(约 21MB)。整个安装构建过程完全自动化,无需额外配置。
5. 使用方式
构建完成后,通过 `bun dist/cli.js` 启动 CLI,或使用 `bun start` 快捷命令。首次运行需完成认证:若已安装官方版且登录,则直接共享认证;否则可通过 `bun dist/cli.js auth` 执行 OAuth 登录,或设置 ANTHROPIC_API_KEY 环境变量。CLI 启动后进入交互式 REPL 会话,可直接输入自然语言与 AI 助手对话。同时支持丰富的斜杠命令,如 `add-dir` 添加工作目录、`bridge`(别名 rc)进行 IDE 远程控制、`chrome` 配置浏览器扩展、`clear` 清除历史等。若需与官方版共存,可在 shell 配置中添加别名(如 `alias claude-dev="bun /path/to/claude-code-source/dist/cli.js"`),分别使用 `claude` 和 `claude-dev` 命令。
6. 补充说明或实现特点
项目在实现上具有多个技术亮点:构建系统使用 Bun bundler 并通过自定义 plugin 处理特性开关,将 90+ 个 feature flag 替换为编译期常量实现死代码消除;通过 define 注入 MACRO.VERSION、MACRO.BUILD_TIME 等编译期常量;支持将 .md 和 .txt 文件作为字符串导入;自动排除 .node 原生模块和可选云 SDK 为 external。源码组织上,约 1902 个文件采用模块化设计,核心包括 CLI 入口、主 REPL、工具系统、任务管理、查询引擎、助手会话、IDE 桥接、斜杠命令等。命令模块普遍采用懒加载策略优化启动性能,并通过特性标志和条件函数控制启用与可见性。vendor/ 目录包含 4 个原生模块的 TypeScript 加载层,因缺少对应二进制文件而自动降级,不影响核心功能。