cluade code 源码逆向工程解读分析
github项目概述
Claude Code Best (CCB) 是一个对 Anthropic 官方 Claude Code CLI 工具进行反编译/逆向还原的开源项目。该项目旨在复现 Claude Code 的大部分功能及工程化能力,但技术实现相当完整。

技术定位
Claude Code 被定义为一个 Terminal-native Agentic Coding System(终端原生智能编码系统),具有三个关键特性:
-
1. Terminal-native: 原生 CLI 应用,不是 IDE 插件、Web 界面或 API wrapper -
2. Agentic: 具备 AI 自主决策工具调用链,不是简单的”一问一答”聊天模式 -
3. Coding system: 面向软件工程全流程,不是通用问答工具
核心架构
Claude Code 采用五层架构设计:
┌─────────────────────────────────────────────────────────┐
│ 1. 入口层 (cli.tsx → main.tsx) │
│ feature() = false, MACRO 注入, 启动 Commander.js CLI │
├─────────────────────────────────────────────────────────┤
│ 2. 交互层 (REPL.tsx — React/Ink) │
│ PromptInput 捕获用户输入 → UserMessage 加入会话 │
├─────────────────────────────────────────────────────────┤
│ 3. 编排层 (QueryEngine.ts) │
│ 管理 turn 生命周期、token 预算、compaction 触发 │
├─────────────────────────────────────────────────────────┤
│ 4. 核心循环 (query.ts — Agentic Loop) │
│ 组装上下文 → 调 API → 收流式响应 → 解析工具调用 │
│ → 权限检查 → 执行工具 → 结果回传 → 再次调 API → 循环 │
├─────────────────────────────────────────────────────────┤
│ 5. 工具执行 (BashTool.call / FileEditTool.call / ...) │
│ 实际执行: 读文件、运行命令、搜索代码... │
├─────────────────────────────────────────────────────────┤
│ 6. 通信层 (claude.ts → Anthropic API) │
│ 流式 HTTP, 支持 Bedrock/Vertex/Azure 多 provider │
└─────────────────────────────────────────────────────────┘
功能实现状态
核心系统(已完全实现)
-
• REPL 交互界面(Ink 终端渲染) -
• 多平台 API 通信(Anthropic Direct、AWS Bedrock、Google Vertex、Azure Foundry) -
• 流式对话与工具调用循环 -
• 会话引擎(QueryEngine.ts) -
• 上下文构建(git status / CLAUDE.md / memory) -
• 权限系统(plan/auto/manual 模式) -
• Hook 系统(pre/post tool use) -
• 会话恢复 (/resume) -
• Doctor 诊断 (/doctor) -
• 自动压缩 (compaction)
工具系统
始终可用的工具(✅)
-
• 文件操作: FileReadTool、FileEditTool、FileWriteTool、NotebookEditTool -
• 命令执行: BashTool(带沙箱和权限检查) -
• 网络工具: WebFetchTool、WebSearchTool -
• 代理工具: AgentTool(支持子代理派生) -
• 交互工具: AskUserQuestionTool、SendMessageTool -
• 任务管理: TodoWriteTool、TaskOutputTool、TaskStopTool
条件启用的工具(⚠️)
-
• GlobTool、GrepTool(默认启用) -
• TaskCreate/Get/Update/ListTool(需开启 Todo V2) -
• Enter/ExitWorktreeTool(需开启 Worktree 模式) -
• TeamCreate/DeleteTool(需开启 Agent Swarms) -
• PowerShellTool(仅 Windows) -
• LSPTool(需设置环境变量)
关闭的功能(❌)
项目通过 polyfill 使所有 Feature Flags 返回 false,因此以下功能被关闭:
-
• SleepTool、Cron 工具(AGENT_TRIGGERS 相关) -
• WebBrowserTool、MonitorTool -
• Voice 相关功能(VOICE_MODE) -
• 远程控制功能(BRIDGE_MODE、DAEMON) -
• Anthropic 内部专用功能(ANT-ONLY)
安全机制
Claude Code 实现了多层次的安全保障:
-
1. 权限模型: Allow/Ask/Deny 三级权限体系 -
2. 沙箱机制: 权限之外的第二道防线 -
3. 计划模式: Plan Mode “先看后做”的安全机制 -
4. Hook 系统: 执行前后的拦截协议
项目结构
claude-code/
├── src/
│ ├── entrypoints/
│ │ ├── cli.tsx # 入口文件(含 MACRO/feature polyfill)
│ │ └── sdk/ # SDK 子模块 stub
│ ├── main.tsx # 主 CLI 逻辑(Commander 定义)
│ └── types/
│ ├── global.d.ts # 全局变量/宏声明
│ └── internal-modules.d.ts # 内部 npm 包类型声明
├── packages/ # Monorepo workspace 包
│ ├── color-diff-napi/ # 完整实现(终端 color diff)
│ ├── modifiers-napi/ # stub(macOS 修饰键检测)
│ └── @ant/ # Anthropic 内部包 stub
├── scripts/ # 自动化 stub 生成脚本
├── dist/ # 构建输出
└── package.json # Bun workspaces monorepo 配置
快速开始
环境要求
-
• Bun >= 1.3.11(必须最新版本) -
• Node.js >= 18(部分依赖需要) -
• 有效的 Anthropic API Key(或 Bedrock / Vertex 凭据)
安装与运行
# 安装依赖
bun install
# 开发模式(看到版本号 888 说明正确)
bun run dev
# 直接运行
bun run src/entrypoints/cli.tsx
# 管道模式
echo "say hello" | bun run src/entrypoints/cli.tsx -p
# 构建
bun run build
版本路线图
-
• V1: 完成跑通及基本的类型检查通过 -
• V2: 完整实现工程化配套设施 -
• V3: 实现多层级解耦(UI 包、Agent 包等可独立优化) -
• V4: 完成大量测试文件,提高稳定性
总结
Claude Code Best 项目成功逆向还原了 Anthropic 官方 Claude Code CLI 工具的核心功能,实现了完整的终端原生智能编码系统。它不仅能够理解代码、修改文件、执行命令,还具备完善的安全机制和权限控制系统。虽然部分高级功能(如语音、远程控制、Web 浏览器等)因 Feature Flags 被关闭而不可用,但已实现的功能足以支持日常开发工作流。
该项目展示了 AI 编程助手如何在终端环境中实现真正的自主代理(Agentic)能力,而非简单的问答交互,为开发者提供了一个强大的本地化 AI 编码工具。
夜雨聆风