claude-code
Anthropic 官方 Claude Code CLI 工具的源码反编译/逆向还原项目。目标是将 Claude Code 大部分功能及工程化能力复现。虽然很难绷, 但是它叫做 CCB(踩踩背)...
V1 会完成跑通及基本的类型检查通过;
V2 会完整实现工程化配套设施;
V3 会实现多层级解耦, 很多比如 UI 包, Agent 包都可以独立优化;
V4 会完成大量的测试文件, 以提高稳定性
我不知道这个项目还会存在多久, fork 不好使, git clone 或者下载 .zip 包才稳健;
这个项目更新很快, 后台有 Opus 持续优化, 所以你可以提 issues, 但是 PR 暂时不会接受;
存活记录: 开源后 12 小时: 愚人节, star 破 1k, 并且牢 A 没有发邮件搞这个项目
如果你想要私人咨询服务, 那么可以发送邮件到 claude-code-best@proton.me, 备注咨询与联系方式即可; 由于后续工作非常多, 可能会忽略邮件, 半天没回复, 可以多发;
快速开始
环境要求
一定要最新版本的 bun 啊, 不然一堆奇奇怪怪的 BUG!!! bun upgrade!!!
- Bun >= 1.3.11
- 常规的配置 CC 的方式, 各大提供商都有自己的配置方式
安装
bun install
运行
# 开发模式, 看到版本号 888 说明就是对了
bun run dev
# 构建
bun run build
构建产物会输出到 dist/cli.js, 构建出的版本 bun 和 node 都可以启动, 你 publish 到私有源可以直接启动
能力清单
✅ = 已实现 ⚠️ = 部分实现 / 条件启用 ❌ = 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 |
工具 — Stub / 不可用
| 工具 | 说明 |
|---|---|
| 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 关闭
| 命令 | 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 |
斜杠命令 — ANT-ONLY(不可用)
/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
CLI 子命令
| 子命令 | 状态 | 说明 |
|---|---|---|
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 关闭 |
内部包 (packages/)
| 包 | 状态 | 说明 |
|---|---|---|
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 配置
技术说明
运行时 Polyfill
入口文件 src/entrypoints/cli.tsx 顶部注入了必要的 polyfill:
feature()— 所有 feature flag 返回false,跳过未实现分支globalThis.MACRO— 模拟构建时宏注入(VERSION 等)
Monorepo
项目采用 Bun workspaces 管理内部包。原先手工放在 node_modules/ 下的 stub 已统一迁入 packages/,通过 workspace:* 解析。
Feature Flags 详解
原版 Claude Code 通过 bun:bundle 的 feature() 在构建时注入 feature flag,由 GrowthBook 等 A/B 实验平台控制灰度发布。本项目中 feature() 被 polyfill 为始终返回 false,因此以下 30 个 flag 全部关闭。
自主 Agent
| 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 所有。
