Anthropic 官方 Claude Code CLI 工具的源码反编译/逆向还原项目。目标是将 Claude Code 大部分功能及工程化能力复现。
V1 会完成跑通及基本的类型检查通过;
V2 会完整实现工程化配套设施;
V3 会实现多层级解耦, 很多比如 UI 包, Agent 包都可以独立优化;
V4 会完成大量的测试文件, 以提高稳定性
我不知道这个项目还会存在多久, fork 不好使, git clone 或者下载 .zip 包才稳健;
这个项目更新很快, 后台有 Opus 持续优化, 所以你可以提 issues, 但是 PR 暂时不会接受;
如果你想要私人咨询服务, 那么可以发送邮件到 claude-code-best@proton.me , 备注咨询与联系方式即可; 由于后续工作非常多, 可能会忽略邮件, 半天没回复, 可以多发;
一定要最新版本的 bun 啊, 不然一堆奇奇怪怪的 BUG!!! bun upgrade!!!
Bun >= 1.3.11
Node.js >= 18(部分依赖需要)
有效的 Anthropic API Key(或 Bedrock / Vertex 凭据)
bun install
bun run dev
bun run src/entrypoints/cli.tsx
echo "say hello" | bun run src/entrypoints/cli.tsx -p
bun run build
构建产物输出到 dist/cli.js(~25.75 MB,5326 模块)。
✅ = 已实现 ⚠️ = 部分实现 / 条件启用 ❌ = stub / 移除 / feature flag 关闭
能力 状态 说明 REPL 交互界面(Ink 终端渲染) ✅ 主屏幕 5000+ 行,完整交互 API 通信 — Anthropic Direct ✅ 支持 API Key + OAuth API 通信 — AWS Bedrock ✅ 支持凭据刷新、Bearer Token API 通信 — Google Vertex ✅ 支持 GCP 凭据刷新 API 通信 — Azure Foundry ✅ 支持 API Key + Azure AD 流式对话与工具调用循环 (query.ts) ✅ 1700+ 行,含自动压缩、token 追踪 会话引擎 (QueryEngine.ts) ✅ 1300+ 行,管理对话状态与归因 上下文构建(git status / CLAUDE.md / memory) ✅ context.ts 完整实现权限系统(plan/auto/manual 模式) ✅ 6300+ 行,含 YOLO 分类器、路径验证、规则匹配 Hook 系统(pre/post tool use) ✅ 支持 settings.json 配置 会话恢复 (/resume) ✅ 独立 ResumeConversation 屏幕 Doctor 诊断 (/doctor) ✅ 版本、API、插件、沙箱检查 自动压缩 (compaction) ✅ auto-compact / micro-compact / API compact
工具 状态 说明 BashTool ✅ Shell 执行,沙箱,权限检查 FileReadTool ✅ 文件 / PDF / 图片 / Notebook 读取 FileEditTool ✅ 字符串替换式编辑 + diff 追踪 FileWriteTool ✅ 文件创建 / 覆写 + diff 生成 NotebookEditTool ✅ Jupyter Notebook 单元格编辑 AgentTool ✅ 子代理派生(fork / async / background / remote) WebFetchTool ✅ URL 抓取 → Markdown → AI 摘要 WebSearchTool ✅ 网页搜索 + 域名过滤 AskUserQuestionTool ✅ 多问题交互提示 + 预览 SendMessageTool ✅ 消息发送(peers / teammates / mailbox) SkillTool ✅ 斜杠命令 / Skill 调用 EnterPlanModeTool ✅ 进入计划模式 ExitPlanModeTool (V2) ✅ 退出计划模式 TodoWriteTool ✅ Todo 列表 v1 BriefTool ✅ 简短消息 + 附件发送 TaskOutputTool ✅ 后台任务输出读取 TaskStopTool ✅ 后台任务停止 ListMcpResourcesTool ✅ MCP 资源列表 ReadMcpResourceTool ✅ MCP 资源读取 SyntheticOutputTool ✅ 非交互会话结构化输出
工具 状态 启用条件 GlobTool ✅ 未嵌入 bfs/ugrep 时启用(默认启用) GrepTool ✅ 同上 TaskCreateTool ⚠️ isTodoV2Enabled() 为 true 时TaskGetTool ⚠️ 同上 TaskUpdateTool ⚠️ 同上 TaskListTool ⚠️ 同上 EnterWorktreeTool ⚠️ isWorktreeModeEnabled()ExitWorktreeTool ⚠️ 同上 TeamCreateTool ⚠️ isAgentSwarmsEnabled()TeamDeleteTool ⚠️ 同上 ToolSearchTool ⚠️ isToolSearchEnabledOptimistic()PowerShellTool ⚠️ Windows 平台检测 LSPTool ⚠️ ENABLE_LSP_TOOL 环境变量ConfigTool ❌ USER_TYPE === 'ant'(永远为 false)
工具 — Feature Flag 关闭(全部不可用)
工具 Feature Flag SleepTool PROACTIVE / KAIROSCronCreate/Delete/ListTool AGENT_TRIGGERSRemoteTriggerTool AGENT_TRIGGERS_REMOTEMonitorTool MONITOR_TOOLSendUserFileTool KAIROSOverflowTestTool OVERFLOW_TEST_TOOLTerminalCaptureTool TERMINAL_PANELWebBrowserTool WEB_BROWSER_TOOLSnipTool HISTORY_SNIPWorkflowTool WORKFLOW_SCRIPTSPushNotificationTool KAIROSSubscribePRTool KAIROS_GITHUB_WEBHOOKSListPeersTool UDS_INBOXCtxInspectTool CONTEXT_COLLAPSE
工具 说明 TungstenTool ANT-ONLY stub REPLTool ANT-ONLY,isEnabled: () => false SuggestBackgroundPRTool ANT-ONLY,isEnabled: () => false VerifyPlanExecutionTool 需 CLAUDE_CODE_VERIFY_PLAN=true 环境变量,且为 stub ReviewArtifactTool stub,未注册到 tools.ts DiscoverSkillsTool stub,未注册到 tools.ts
命令 状态 说明 /add-dir✅ 添加目录 /advisor✅ Advisor 配置 /agents✅ 代理列表/管理 /branch✅ 分支管理 /btw✅ 快速备注 /chrome✅ Chrome 集成 /clear✅ 清屏 /color✅ Agent 颜色 /compact✅ 压缩对话 /config (/settings)✅ 配置管理 /context✅ 上下文信息 /copy✅ 复制最后消息 /cost✅ 会话费用 /desktop✅ Claude Desktop 集成 /diff✅ 显示 diff /doctor✅ 健康检查 /effort✅ 设置 effort 等级 /exit✅ 退出 /export✅ 导出对话 /extra-usage✅ 额外用量信息 /fast✅ 切换 fast 模式 /feedback✅ 反馈 /files✅ 已跟踪文件 /heapdump✅ Heap dump(调试) /help✅ 帮助 /hooks✅ Hook 管理 /ide✅ IDE 连接 /init✅ 初始化项目 /install-github-app✅ 安装 GitHub App /install-slack-app✅ 安装 Slack App /keybindings✅ 快捷键管理 /login / /logout✅ 登录 / 登出 /mcp✅ MCP 服务管理 /memory✅ Memory / CLAUDE.md 管理 /mobile✅ 移动端 QR 码 /model✅ 模型选择 /output-style✅ 输出风格 /passes✅ 推荐码 /permissions✅ 权限管理 /plan✅ 计划模式 /plugin✅ 插件管理 /pr-comments✅ PR 评论 /privacy-settings✅ 隐私设置 /rate-limit-options✅ 限速选项 /release-notes✅ 更新日志 /reload-plugins✅ 重载插件 /remote-env✅ 远程环境配置 /rename✅ 重命名会话 /resume✅ 恢复会话 /review✅ 代码审查(本地) /ultrareview✅ 云端审查 /rewind✅ 回退对话 /sandbox-toggle✅ 切换沙箱 /security-review✅ 安全审查 /session✅ 会话信息 /skills✅ Skill 管理 /stats✅ 会话统计 /status✅ 状态信息 /statusline✅ 状态栏 UI /stickers✅ 贴纸 /tasks✅ 任务管理 /theme✅ 终端主题 /think-back✅ 年度回顾 /upgrade✅ 升级 CLI /usage✅ 用量信息 /insights✅ 使用分析报告 /vim✅ Vim 模式
命令 Feature Flag /voiceVOICE_MODE/proactivePROACTIVE / KAIROS/briefKAIROS / KAIROS_BRIEF/assistantKAIROS/bridgeBRIDGE_MODE/remote-control-serverDAEMON + BRIDGE_MODE/force-snipHISTORY_SNIP/workflowsWORKFLOW_SCRIPTS/web-setupCCR_REMOTE_SETUP/subscribe-prKAIROS_GITHUB_WEBHOOKS/ultraplanULTRAPLAN/torchTORCH/peersUDS_INBOX/forkFORK_SUBAGENT/buddyBUDDY
/tag /backfill-sessions /break-cache /bughunter /commit /commit-push-pr /ctx_viz /good-claude /issue /init-verifiers /mock-limits /bridge-kick /version /reset-limits /onboarding /share /summary /teleport /ant-trace /perf-issue /env /oauth-refresh /debug-tool-call /agents-platform /autofix-pr
子命令 状态 说明 claude(默认)✅ 主 REPL / 交互 / print 模式 claude mcp serve/add/remove/list/get/...✅ MCP 服务管理(7 个子命令) claude auth login/status/logout✅ 认证管理 claude plugin validate/list/install/...✅ 插件管理(7 个子命令) claude setup-token✅ 长效 Token 配置 claude agents✅ 代理列表 claude doctor✅ 健康检查 claude update / upgrade✅ 自动更新 claude install [target]✅ Native 安装 claude server❌ DIRECT_CONNECT flagclaude ssh <host>❌ SSH_REMOTE flagclaude open <cc-url>❌ DIRECT_CONNECT flagclaude auto-mode❌ TRANSCRIPT_CLASSIFIER flagclaude remote-control❌ BRIDGE_MODE + DAEMON flagclaude assistant❌ KAIROS flagclaude up/rollback/log/error/export/task/completion❌ ANT-ONLY
服务 状态 说明 API 客户端 (services/api/) ✅ 3400+ 行,4 个 provider MCP (services/mcp/) ✅ 24 个文件,12000+ 行 OAuth (services/oauth/) ✅ 完整 OAuth 流程 插件 (services/plugins/) ✅ 基础设施完整,无内置插件 LSP (services/lsp/) ⚠️ 实现存在,默认关闭 压缩 (services/compact/) ✅ auto / micro / API 压缩 Hook 系统 (services/tools/toolHooks.ts) ✅ pre/post tool use hooks 会话记忆 (services/SessionMemory/) ✅ 会话记忆管理 记忆提取 (services/extractMemories/) ✅ 自动记忆提取 Skill 搜索 (services/skillSearch/) ✅ 本地/远程 skill 搜索 策略限制 (services/policyLimits/) ✅ 策略限制执行 分析 / GrowthBook / Sentry ⚠️ 框架存在,实际 sink 为空 Voice (services/voice.ts) ❌ VOICE_MODE flag 关闭
包 状态 说明 color-diff-napi✅ 997 行完整 TypeScript 实现(语法高亮 diff) audio-capture-napi❌ stub,isNativeAudioAvailable() 返回 false image-processor-napi❌ stub,getNativeModule() 返回 null modifiers-napi❌ stub,isModifierPressed() 返回 false url-handler-napi❌ stub,waitForUrlEvent() 返回 null @ant/claude-for-chrome-mcp❌ stub,createServer() 返回 null @ant/computer-use-mcp❌ stub,buildTools() 返回 [] @ant/computer-use-input❌ stub,仅类型声明 @ant/computer-use-swift❌ stub,仅类型声明
Feature Flags(30 个,全部返回 false)
ABLATION_BASELINE AGENT_MEMORY_SNAPSHOT BG_SESSIONS BRIDGE_MODE BUDDY CCR_MIRROR CCR_REMOTE_SETUP CHICAGO_MCP COORDINATOR_MODE DAEMON DIRECT_CONNECT EXPERIMENTAL_SKILL_SEARCH FORK_SUBAGENT HARD_FAIL HISTORY_SNIP KAIROS KAIROS_BRIEF KAIROS_CHANNELS KAIROS_GITHUB_WEBHOOKS LODESTONE MCP_SKILLS PROACTIVE SSH_REMOTE TORCH TRANSCRIPT_CLASSIFIER UDS_INBOX ULTRAPLAN UPLOAD_USER_SETTINGS VOICE_MODE WEB_BROWSER_TOOL WORKFLOW_SCRIPTS
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 修饰键检测)
│ ├── audio-capture-napi/ # stub
│ ├── image-processor-napi/# stub
│ ├── url-handler-napi/ # stub
│ └── @ant/ # Anthropic 内部包 stub
│ ├── claude-for-chrome-mcp/
│ ├── computer-use-mcp/
│ ├── computer-use-input/
│ └── computer-use-swift/
├── scripts/ # 自动化 stub 生成脚本
├── dist/ # 构建输出
└── package.json # Bun workspaces monorepo 配置
入口文件 src/entrypoints/cli.tsx 顶部注入了必要的 polyfill:
feature() — 所有 feature flag 返回 false,跳过未实现分支
globalThis.MACRO — 模拟构建时宏注入(VERSION 等)
项目采用 Bun workspaces 管理内部包。原先手工放在 node_modules/ 下的 stub 已统一迁入 packages/,通过 workspace:* 解析。
原版 Claude Code 通过 bun:bundle 的 feature() 在构建时注入 feature flag,由 GrowthBook 等 A/B 实验平台控制灰度发布。本项目中 feature() 被 polyfill 为始终返回 false,因此以下 30 个 flag 全部关闭。
Flag 用途 KAIROSAssistant 模式 — 长期运行的自主 Agent(含 brief、push 通知、文件发送) KAIROS_BRIEFKairos Brief — 向用户发送简报摘要 KAIROS_CHANNELSKairos 频道 — 多频道通信 KAIROS_GITHUB_WEBHOOKSGitHub Webhook 订阅 — PR 事件实时推送给 Agent PROACTIVE主动模式 — Agent 主动执行任务,含 SleepTool 定时唤醒 COORDINATOR_MODE协调器模式 — 多 Agent 编排调度 BUDDYBuddy 配对编程功能 FORK_SUBAGENTFork 子代理 — 从当前会话分叉出独立子代理
Flag 用途 BRIDGE_MODE远程控制桥接 — 允许外部客户端远程操控 Claude Code DAEMON守护进程 — 后台常驻服务,支持 worker 和 supervisor BG_SESSIONS后台会话 — ps/logs/attach/kill/--bg 等后台进程管理 SSH_REMOTESSH 远程 — claude ssh <host> 连接远程主机 DIRECT_CONNECT直连模式 — cc:// URL 协议、server 命令、open 命令 CCR_REMOTE_SETUP网页端远程配置 — 通过浏览器配置 Claude Code CCR_MIRRORClaude Code Runtime 镜像 — 会话状态同步/复制
Flag 用途 UDS_INBOXUnix Domain Socket 收件箱 — Agent 间本地通信(/peers)
Flag 用途 CHICAGO_MCPComputer Use MCP — 计算机操作(屏幕截图、鼠标键盘控制) WEB_BROWSER_TOOL网页浏览器工具 — 在终端内嵌浏览器交互 VOICE_MODE语音模式 — 语音输入输出,麦克风 push-to-talk WORKFLOW_SCRIPTS工作流脚本 — 用户自定义自动化工作流 MCP_SKILLS基于 MCP 的 Skill 加载机制
Flag 用途 HISTORY_SNIP历史裁剪 — 手动裁剪对话历史中的片段(/force-snip) ULTRAPLAN超级计划 — 远程 Agent 协作的大规模规划功能 AGENT_MEMORY_SNAPSHOTAgent 运行时的记忆快照功能
Flag 用途 ABLATION_BASELINE科学实验 — 基线消融测试,用于 A/B 实验对照组 HARD_FAIL硬失败模式 — 遇错直接中断而非降级 TRANSCRIPT_CLASSIFIER对话分类器 — auto-mode 命令,自动分析和分类对话记录 UPLOAD_USER_SETTINGS设置同步上传 — 将本地配置同步到云端 LODESTONE深度链接协议处理器 — 从外部应用跳转到 Claude Code 指定位置 EXPERIMENTAL_SKILL_SEARCH实验性 Skill 搜索索引 TORCHTorch 功能(具体用途未知,可能是某种高亮/追踪机制)
本项目仅供学习研究用途。Claude Code 的所有权利归 Anthropic 所有。