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 凭据)
# 开发模式, 看到版本号 888 说明就是对了
bun run dev
# 直接运行
bun run src/entrypoints/cli.tsx
# 管道模式(-p)
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 / KAIROS
CronCreate/Delete/ListTool
AGENT_TRIGGERS
RemoteTriggerTool
AGENT_TRIGGERS_REMOTE
MonitorTool
MONITOR_TOOL
SendUserFileTool
KAIROS
OverflowTestTool
OVERFLOW_TEST_TOOL
TerminalCaptureTool
TERMINAL_PANEL
WebBrowserTool
WEB_BROWSER_TOOL
SnipTool
HISTORY_SNIP
WorkflowTool
WORKFLOW_SCRIPTS
PushNotificationTool
KAIROS
SubscribePRTool
KAIROS_GITHUB_WEBHOOKS
ListPeersTool
UDS_INBOX
CtxInspectTool
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
/voice
VOICE_MODE
/proactive
PROACTIVE / KAIROS
/brief
KAIROS / KAIROS_BRIEF
/assistant
KAIROS
/bridge
BRIDGE_MODE
/remote-control-server
DAEMON + BRIDGE_MODE
/force-snip
HISTORY_SNIP
/workflows
WORKFLOW_SCRIPTS
/web-setup
CCR_REMOTE_SETUP
/subscribe-pr
KAIROS_GITHUB_WEBHOOKS
/ultraplan
ULTRAPLAN
/torch
TORCH
/peers
UDS_INBOX
/fork
FORK_SUBAGENT
/buddy
BUDDY
/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 flag
claude ssh <host>
❌
SSH_REMOTE flag
claude open <cc-url>
❌
DIRECT_CONNECT flag
claude auto-mode
❌
TRANSCRIPT_CLASSIFIER flag
claude remote-control
❌
BRIDGE_MODE + DAEMON flag
claude assistant
❌
KAIROS flag
claude 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
用途
KAIROS
Assistant 模式 — 长期运行的自主 Agent(含 brief、push 通知、文件发送)
KAIROS_BRIEF
Kairos Brief — 向用户发送简报摘要
KAIROS_CHANNELS
Kairos 频道 — 多频道通信
KAIROS_GITHUB_WEBHOOKS
GitHub Webhook 订阅 — PR 事件实时推送给 Agent
PROACTIVE
主动模式 — Agent 主动执行任务,含 SleepTool 定时唤醒
COORDINATOR_MODE
协调器模式 — 多 Agent 编排调度
BUDDY
Buddy 配对编程功能
FORK_SUBAGENT
Fork 子代理 — 从当前会话分叉出独立子代理
Flag
用途
BRIDGE_MODE
远程控制桥接 — 允许外部客户端远程操控 Claude Code
DAEMON
守护进程 — 后台常驻服务,支持 worker 和 supervisor
BG_SESSIONS
后台会话 — ps/logs/attach/kill/--bg 等后台进程管理
SSH_REMOTE
SSH 远程 — claude ssh <host> 连接远程主机
DIRECT_CONNECT
直连模式 — cc:// URL 协议、server 命令、open 命令
CCR_REMOTE_SETUP
网页端远程配置 — 通过浏览器配置 Claude Code
CCR_MIRROR
Claude Code Runtime 镜像 — 会话状态同步/复制
Flag
用途
UDS_INBOX
Unix Domain Socket 收件箱 — Agent 间本地通信(/peers)
Flag
用途
CHICAGO_MCP
Computer 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_SNAPSHOT
Agent 运行时的记忆快照功能
Flag
用途
ABLATION_BASELINE
科学实验 — 基线消融测试,用于 A/B 实验对照组
HARD_FAIL
硬失败模式 — 遇错直接中断而非降级
TRANSCRIPT_CLASSIFIER
对话分类器 — auto-mode 命令,自动分析和分类对话记录
UPLOAD_USER_SETTINGS
设置同步上传 — 将本地配置同步到云端
LODESTONE
深度链接协议处理器 — 从外部应用跳转到 Claude Code 指定位置
EXPERIMENTAL_SKILL_SEARCH
实验性 Skill 搜索索引
TORCH
Torch 功能(具体用途未知,可能是某种高亮/追踪机制)
本项目仅供学习研究用途。Claude Code 的所有权利归 Anthropic 所有。