本仓库保存的是一份通过 npm 分发产物中的 source map 暴露出来的 Claude Code
src/源码快照,仅用于安全研究、供应链分析、架构学习与教学讨论。
这不是 Anthropic 官方开源仓库,而是一份基于公开可访问构建产物整理出的源码镜像。
- 暴露时间:
2026-03-31 - 主要内容:Claude Code CLI 的
src/源码快照 - 技术栈:TypeScript + Bun + React + Ink
- 仓库定位:安全研究 / 架构考古 / Agent CLI 设计参考
Claude Code 本质上是一个面向软件工程任务的终端 Agent:
- 能读写文件
- 能执行 Shell
- 能搜索代码库
- 能调工具 / MCP / LSP
- 能跑子代理、技能、计划模式、远程桥接
如果你想研究“现代 Agent CLI 到底怎么组织起来”,这个仓库是很高价值的样本。
2026-03-31,公开分发的 npm 产物中存在 source map 暴露问题,进一步指向了可直接下载的 TypeScript 源码文件,因此这份 src/ 快照在公网可访问。
公开讨论可参考:
本仓库的维护目标是:
- 研究构建产物泄露带来的供应链风险
- 学习成熟 Agent CLI 的模块拆分方式
- 分析权限系统、工具系统、上下文系统的实现思路
- 给安全研究、终端产品、AI 编程工具设计提供真实样本
本仓库不声称拥有原始代码版权,也不应被理解为官方发布渠道。
请把它理解为一份研究样本,而不是官方 SDK 或正式发行版源码仓库。
适合的用途:
- 安全研究
- 架构分析
- 教学演示
- 终端 Agent 设计参考
- 供应链与发布流程复盘
不适合的用途:
- 伪装成官方仓库对外分发
- 混淆版权归属
- 将快照内容包装成官方支持版本
如果你是按 TCD 的方式看代码,不建议一上来全量乱翻,建议按下面三条主线拆:
先看 Claude Code 如何把“用户输入 -> 模型响应 -> 工具调用 -> 权限确认 -> 再回到模型”串起来:
src/main.tsxsrc/query.tssrc/QueryEngine.tssrc/Tool.tssrc/tools.ts
这条线解决的是:
- CLI 怎么进入主循环
- 模型工具调用怎么调度
- 流式输出怎么组织
- 工具结果怎么回灌给模型
再看它如何把“能做什么”和“允许做什么”分开:
src/tools/src/hooks/toolPermission/src/components/permissions/src/services/tools/
这条线最值得研究的是:
- 每个工具的 schema 和执行逻辑如何定义
- 权限弹窗与自动放行模式如何落地
- Shell / 文件 / Web / MCP 工具如何统一抽象
最后看它如何变成一个可扩展平台,而不只是一个单体 CLI:
src/skills/src/plugins/src/commands/src/services/mcp/src/services/lsp/src/bridge/src/remote/
这条线对应的是:
- Skill 如何加载
- Plugin 如何发现与安装
- MCP 如何接入外部系统
- IDE / Remote / Bridge 如何和 CLI 打通
src/
├── main.tsx # CLI 入口与初始化
├── commands.ts # 命令注册总表
├── tools.ts # 工具注册总表
├── Tool.ts # 工具抽象与类型
├── QueryEngine.ts # 模型调用与工具循环核心
├── query.ts # 主查询/主回合编排
├── context.ts # 上下文收集
├── cost-tracker.ts # 成本统计
│
├── commands/ # 用户命令
├── tools/ # 工具实现
├── components/ # Ink UI 组件
├── hooks/ # React Hook
├── services/ # 服务集成层
├── screens/ # 全屏界面
├── types/ # 类型定义
├── utils/ # 工具函数
│
├── bridge/ # IDE / 桥接协议
├── remote/ # 远程会话
├── coordinator/ # 多代理协调
├── plugins/ # 插件系统
├── skills/ # 技能系统
├── server/ # 服务端模式
├── memdir/ # 持久记忆目录
├── tasks/ # 任务系统
├── state/ # 状态管理
├── migrations/ # 配置迁移
├── schemas/ # Zod Schema
└── upstreamproxy/ # 代理配置
src/tools/ 是 Claude Code 的核心资产之一。这里能直接看到一个成熟 Agent CLI 常见的工具模型:
BashToolFileReadToolFileWriteToolFileEditToolGlobToolGrepToolWebFetchToolWebSearchToolAgentToolSkillToolMCPToolLSPToolTaskCreateToolTaskUpdateTool
研究价值在于:
- 工具 schema 如何约束模型输出
- 工具权限如何单独控制
- UI、执行器、结果格式化如何分层
src/commands/ 负责 CLI 命令层,能看到它如何把交互命令做成可扩展体系:
/review/config/doctor/memory/skills/tasks/mcp/resume/diff
如果你在做自己的 AI CLI,这部分非常值得对照。
这是 Claude Code 从“命令行工具”走向“平台”的关键:
src/skills/:技能加载、前置发现、动态激活src/plugins/:插件装配src/services/mcp/:MCP 连接、配置、认证、权限
这一层很适合拿来回答两个问题:
- Agent 平台怎么做可扩展性?
- 本地 Prompt 技能、插件、外部工具协议,怎么统一到一个 CLI 里?
如果你第一次看这个仓库,建议按顺序读:
src/main.tsxsrc/query.tssrc/QueryEngine.tssrc/Tool.tssrc/tools/BashTool/src/services/tools/src/hooks/toolPermission/src/skills/loadSkillsDir.tssrc/services/mcp/src/bridge/
这样能先抓住主干,再看扩展层,不容易迷路。
- 想做 Agent CLI / Coding Agent 的工程师
- 想研究 AI 工具调用与权限系统的安全研究者
- 想研究终端 UI + Agent 交互设计的产品/前端工程师
- 想复盘供应链泄露事件的安全从业者
- 想学习大型 TypeScript CLI 项目组织方式的人
关注:
- source map 暴露
- 构建产物是否带出源码引用
- 静态资源、R2、CDN 与 npm 包之间的边界
关注:
- 模型循环
- 工具协议
- 权限判定
- 技能与插件装配
- 远程会话与 IDE 桥接
关注:
- 大型 TypeScript CLI 如何拆模块
- React + Ink 在终端里的组织方式
- 状态、命令、工具、权限、服务之间的边界
本仓库仅用于研究、教学与防御性分析。
- 不代表官方立场
- 不提供官方支持
- 不保证与任何正式发行版本完全一致
- 不应被当作官方开源项目引用
如果原始权利方提出合理要求,仓库维护方应按实际情况处理。
这不是“Claude Code 官方源码”,而是一份极有研究价值的真实 Agent CLI 源码快照;如果你关心 AI 编程工具、终端 Agent、安全供应链和可扩展架构,这个仓库值得细读。