|
2 | 2 |
|
3 | 3 | Anthropic 官方 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI 工具的源码反编译/逆向还原项目。目标是将 Claude Code 核心功能跑通,必要时删减次级能力。 |
4 | 4 |
|
5 | | -## 核心能力 |
6 | | - |
7 | | -- API 通信(Anthropic SDK / Bedrock / Vertex) |
8 | | -- Bash / FileRead / FileWrite / FileEdit 等核心工具 |
9 | | -- REPL 交互界面(ink 终端渲染) |
10 | | -- 对话历史与会话管理 |
11 | | -- 权限系统 |
12 | | -- Agent / 子代理系统 |
13 | | - |
14 | | -## 已删减模块 |
15 | | - |
16 | | -| 模块 | 处理方式 | |
17 | | -|------|----------| |
18 | | -| Computer Use (`@ant/computer-use-*`) | stub | |
19 | | -| Claude for Chrome MCP | stub | |
20 | | -| Magic Docs / Voice Mode / LSP Server | 移除 | |
21 | | -| Analytics / GrowthBook / Sentry | 空实现 | |
22 | | -| Plugins / Marketplace / Desktop Upsell | 移除 | |
23 | | -| Ultraplan / Tungsten / Auto Dream | 移除 | |
24 | | -| MCP OAuth/IDP | 简化 | |
25 | | -| DAEMON / BRIDGE / BG_SESSIONS / TEMPLATES 等 | feature flag 关闭 | |
| 5 | +## 能力清单 |
| 6 | + |
| 7 | +> ✅ = 已实现 ⚠️ = 部分实现 / 条件启用 ❌ = stub / 移除 / feature flag 关闭 |
| 8 | +
|
| 9 | +### 核心系统 |
| 10 | + |
| 11 | +| 能力 | 状态 | 说明 | |
| 12 | +|------|------|------| |
| 13 | +| REPL 交互界面(Ink 终端渲染) | ✅ | 主屏幕 5000+ 行,完整交互 | |
| 14 | +| API 通信 — Anthropic Direct | ✅ | 支持 API Key + OAuth | |
| 15 | +| API 通信 — AWS Bedrock | ✅ | 支持凭据刷新、Bearer Token | |
| 16 | +| API 通信 — Google Vertex | ✅ | 支持 GCP 凭据刷新 | |
| 17 | +| API 通信 — Azure Foundry | ✅ | 支持 API Key + Azure AD | |
| 18 | +| 流式对话与工具调用循环 (`query.ts`) | ✅ | 1700+ 行,含自动压缩、token 追踪 | |
| 19 | +| 会话引擎 (`QueryEngine.ts`) | ✅ | 1300+ 行,管理对话状态与归因 | |
| 20 | +| 上下文构建(git status / CLAUDE.md / memory) | ✅ | `context.ts` 完整实现 | |
| 21 | +| 权限系统(plan/auto/manual 模式) | ✅ | 6300+ 行,含 YOLO 分类器、路径验证、规则匹配 | |
| 22 | +| Hook 系统(pre/post tool use) | ✅ | 支持 settings.json 配置 | |
| 23 | +| 会话恢复 (`/resume`) | ✅ | 独立 ResumeConversation 屏幕 | |
| 24 | +| Doctor 诊断 (`/doctor`) | ✅ | 版本、API、插件、沙箱检查 | |
| 25 | +| 自动压缩 (compaction) | ✅ | auto-compact / micro-compact / API compact | |
| 26 | + |
| 27 | +### 工具 — 始终可用 |
| 28 | + |
| 29 | +| 工具 | 状态 | 说明 | |
| 30 | +|------|------|------| |
| 31 | +| BashTool | ✅ | Shell 执行,沙箱,权限检查 | |
| 32 | +| FileReadTool | ✅ | 文件 / PDF / 图片 / Notebook 读取 | |
| 33 | +| FileEditTool | ✅ | 字符串替换式编辑 + diff 追踪 | |
| 34 | +| FileWriteTool | ✅ | 文件创建 / 覆写 + diff 生成 | |
| 35 | +| NotebookEditTool | ✅ | Jupyter Notebook 单元格编辑 | |
| 36 | +| AgentTool | ✅ | 子代理派生(fork / async / background / remote) | |
| 37 | +| WebFetchTool | ✅ | URL 抓取 → Markdown → AI 摘要 | |
| 38 | +| WebSearchTool | ✅ | 网页搜索 + 域名过滤 | |
| 39 | +| AskUserQuestionTool | ✅ | 多问题交互提示 + 预览 | |
| 40 | +| SendMessageTool | ✅ | 消息发送(peers / teammates / mailbox) | |
| 41 | +| SkillTool | ✅ | 斜杠命令 / Skill 调用 | |
| 42 | +| EnterPlanModeTool | ✅ | 进入计划模式 | |
| 43 | +| ExitPlanModeTool (V2) | ✅ | 退出计划模式 | |
| 44 | +| TodoWriteTool | ✅ | Todo 列表 v1 | |
| 45 | +| BriefTool | ✅ | 简短消息 + 附件发送 | |
| 46 | +| TaskOutputTool | ✅ | 后台任务输出读取 | |
| 47 | +| TaskStopTool | ✅ | 后台任务停止 | |
| 48 | +| ListMcpResourcesTool | ✅ | MCP 资源列表 | |
| 49 | +| ReadMcpResourceTool | ✅ | MCP 资源读取 | |
| 50 | +| SyntheticOutputTool | ✅ | 非交互会话结构化输出 | |
| 51 | + |
| 52 | +### 工具 — 条件启用 |
| 53 | + |
| 54 | +| 工具 | 状态 | 启用条件 | |
| 55 | +|------|------|----------| |
| 56 | +| GlobTool | ✅ | 未嵌入 bfs/ugrep 时启用(默认启用) | |
| 57 | +| GrepTool | ✅ | 同上 | |
| 58 | +| TaskCreateTool | ⚠️ | `isTodoV2Enabled()` 为 true 时 | |
| 59 | +| TaskGetTool | ⚠️ | 同上 | |
| 60 | +| TaskUpdateTool | ⚠️ | 同上 | |
| 61 | +| TaskListTool | ⚠️ | 同上 | |
| 62 | +| EnterWorktreeTool | ⚠️ | `isWorktreeModeEnabled()` | |
| 63 | +| ExitWorktreeTool | ⚠️ | 同上 | |
| 64 | +| TeamCreateTool | ⚠️ | `isAgentSwarmsEnabled()` | |
| 65 | +| TeamDeleteTool | ⚠️ | 同上 | |
| 66 | +| ToolSearchTool | ⚠️ | `isToolSearchEnabledOptimistic()` | |
| 67 | +| PowerShellTool | ⚠️ | Windows 平台检测 | |
| 68 | +| LSPTool | ⚠️ | `ENABLE_LSP_TOOL` 环境变量 | |
| 69 | +| ConfigTool | ❌ | `USER_TYPE === 'ant'`(永远为 false) | |
| 70 | + |
| 71 | +### 工具 — Feature Flag 关闭(全部不可用) |
| 72 | + |
| 73 | +| 工具 | Feature Flag | |
| 74 | +|------|-------------| |
| 75 | +| SleepTool | `PROACTIVE` / `KAIROS` | |
| 76 | +| CronCreate/Delete/ListTool | `AGENT_TRIGGERS` | |
| 77 | +| RemoteTriggerTool | `AGENT_TRIGGERS_REMOTE` | |
| 78 | +| MonitorTool | `MONITOR_TOOL` | |
| 79 | +| SendUserFileTool | `KAIROS` | |
| 80 | +| OverflowTestTool | `OVERFLOW_TEST_TOOL` | |
| 81 | +| TerminalCaptureTool | `TERMINAL_PANEL` | |
| 82 | +| WebBrowserTool | `WEB_BROWSER_TOOL` | |
| 83 | +| SnipTool | `HISTORY_SNIP` | |
| 84 | +| WorkflowTool | `WORKFLOW_SCRIPTS` | |
| 85 | +| PushNotificationTool | `KAIROS` | |
| 86 | +| SubscribePRTool | `KAIROS_GITHUB_WEBHOOKS` | |
| 87 | +| ListPeersTool | `UDS_INBOX` | |
| 88 | +| CtxInspectTool | `CONTEXT_COLLAPSE` | |
| 89 | + |
| 90 | +### 工具 — Stub / 不可用 |
| 91 | + |
| 92 | +| 工具 | 说明 | |
| 93 | +|------|------| |
| 94 | +| TungstenTool | ANT-ONLY stub | |
| 95 | +| REPLTool | ANT-ONLY,`isEnabled: () => false` | |
| 96 | +| SuggestBackgroundPRTool | ANT-ONLY,`isEnabled: () => false` | |
| 97 | +| VerifyPlanExecutionTool | 需 `CLAUDE_CODE_VERIFY_PLAN=true` 环境变量,且为 stub | |
| 98 | +| ReviewArtifactTool | stub,未注册到 tools.ts | |
| 99 | +| DiscoverSkillsTool | stub,未注册到 tools.ts | |
| 100 | + |
| 101 | +### 斜杠命令 — 可用 |
| 102 | + |
| 103 | +| 命令 | 状态 | 说明 | |
| 104 | +|------|------|------| |
| 105 | +| `/add-dir` | ✅ | 添加目录 | |
| 106 | +| `/advisor` | ✅ | Advisor 配置 | |
| 107 | +| `/agents` | ✅ | 代理列表/管理 | |
| 108 | +| `/branch` | ✅ | 分支管理 | |
| 109 | +| `/btw` | ✅ | 快速备注 | |
| 110 | +| `/chrome` | ✅ | Chrome 集成 | |
| 111 | +| `/clear` | ✅ | 清屏 | |
| 112 | +| `/color` | ✅ | Agent 颜色 | |
| 113 | +| `/compact` | ✅ | 压缩对话 | |
| 114 | +| `/config` (`/settings`) | ✅ | 配置管理 | |
| 115 | +| `/context` | ✅ | 上下文信息 | |
| 116 | +| `/copy` | ✅ | 复制最后消息 | |
| 117 | +| `/cost` | ✅ | 会话费用 | |
| 118 | +| `/desktop` | ✅ | Claude Desktop 集成 | |
| 119 | +| `/diff` | ✅ | 显示 diff | |
| 120 | +| `/doctor` | ✅ | 健康检查 | |
| 121 | +| `/effort` | ✅ | 设置 effort 等级 | |
| 122 | +| `/exit` | ✅ | 退出 | |
| 123 | +| `/export` | ✅ | 导出对话 | |
| 124 | +| `/extra-usage` | ✅ | 额外用量信息 | |
| 125 | +| `/fast` | ✅ | 切换 fast 模式 | |
| 126 | +| `/feedback` | ✅ | 反馈 | |
| 127 | +| `/files` | ✅ | 已跟踪文件 | |
| 128 | +| `/heapdump` | ✅ | Heap dump(调试) | |
| 129 | +| `/help` | ✅ | 帮助 | |
| 130 | +| `/hooks` | ✅ | Hook 管理 | |
| 131 | +| `/ide` | ✅ | IDE 连接 | |
| 132 | +| `/init` | ✅ | 初始化项目 | |
| 133 | +| `/install-github-app` | ✅ | 安装 GitHub App | |
| 134 | +| `/install-slack-app` | ✅ | 安装 Slack App | |
| 135 | +| `/keybindings` | ✅ | 快捷键管理 | |
| 136 | +| `/login` / `/logout` | ✅ | 登录 / 登出 | |
| 137 | +| `/mcp` | ✅ | MCP 服务管理 | |
| 138 | +| `/memory` | ✅ | Memory / CLAUDE.md 管理 | |
| 139 | +| `/mobile` | ✅ | 移动端 QR 码 | |
| 140 | +| `/model` | ✅ | 模型选择 | |
| 141 | +| `/output-style` | ✅ | 输出风格 | |
| 142 | +| `/passes` | ✅ | 推荐码 | |
| 143 | +| `/permissions` | ✅ | 权限管理 | |
| 144 | +| `/plan` | ✅ | 计划模式 | |
| 145 | +| `/plugin` | ✅ | 插件管理 | |
| 146 | +| `/pr-comments` | ✅ | PR 评论 | |
| 147 | +| `/privacy-settings` | ✅ | 隐私设置 | |
| 148 | +| `/rate-limit-options` | ✅ | 限速选项 | |
| 149 | +| `/release-notes` | ✅ | 更新日志 | |
| 150 | +| `/reload-plugins` | ✅ | 重载插件 | |
| 151 | +| `/remote-env` | ✅ | 远程环境配置 | |
| 152 | +| `/rename` | ✅ | 重命名会话 | |
| 153 | +| `/resume` | ✅ | 恢复会话 | |
| 154 | +| `/review` | ✅ | 代码审查(本地) | |
| 155 | +| `/ultrareview` | ✅ | 云端审查 | |
| 156 | +| `/rewind` | ✅ | 回退对话 | |
| 157 | +| `/sandbox-toggle` | ✅ | 切换沙箱 | |
| 158 | +| `/security-review` | ✅ | 安全审查 | |
| 159 | +| `/session` | ✅ | 会话信息 | |
| 160 | +| `/skills` | ✅ | Skill 管理 | |
| 161 | +| `/stats` | ✅ | 会话统计 | |
| 162 | +| `/status` | ✅ | 状态信息 | |
| 163 | +| `/statusline` | ✅ | 状态栏 UI | |
| 164 | +| `/stickers` | ✅ | 贴纸 | |
| 165 | +| `/tasks` | ✅ | 任务管理 | |
| 166 | +| `/theme` | ✅ | 终端主题 | |
| 167 | +| `/think-back` | ✅ | 年度回顾 | |
| 168 | +| `/upgrade` | ✅ | 升级 CLI | |
| 169 | +| `/usage` | ✅ | 用量信息 | |
| 170 | +| `/insights` | ✅ | 使用分析报告 | |
| 171 | +| `/vim` | ✅ | Vim 模式 | |
| 172 | + |
| 173 | +### 斜杠命令 — Feature Flag 关闭 |
| 174 | + |
| 175 | +| 命令 | Feature Flag | |
| 176 | +|------|-------------| |
| 177 | +| `/voice` | `VOICE_MODE` | |
| 178 | +| `/proactive` | `PROACTIVE` / `KAIROS` | |
| 179 | +| `/brief` | `KAIROS` / `KAIROS_BRIEF` | |
| 180 | +| `/assistant` | `KAIROS` | |
| 181 | +| `/bridge` | `BRIDGE_MODE` | |
| 182 | +| `/remote-control-server` | `DAEMON` + `BRIDGE_MODE` | |
| 183 | +| `/force-snip` | `HISTORY_SNIP` | |
| 184 | +| `/workflows` | `WORKFLOW_SCRIPTS` | |
| 185 | +| `/web-setup` | `CCR_REMOTE_SETUP` | |
| 186 | +| `/subscribe-pr` | `KAIROS_GITHUB_WEBHOOKS` | |
| 187 | +| `/ultraplan` | `ULTRAPLAN` | |
| 188 | +| `/torch` | `TORCH` | |
| 189 | +| `/peers` | `UDS_INBOX` | |
| 190 | +| `/fork` | `FORK_SUBAGENT` | |
| 191 | +| `/buddy` | `BUDDY` | |
| 192 | + |
| 193 | +### 斜杠命令 — ANT-ONLY(不可用) |
| 194 | + |
| 195 | +`/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` |
| 196 | + |
| 197 | +### CLI 子命令 |
| 198 | + |
| 199 | +| 子命令 | 状态 | 说明 | |
| 200 | +|--------|------|------| |
| 201 | +| `claude`(默认) | ✅ | 主 REPL / 交互 / print 模式 | |
| 202 | +| `claude mcp serve/add/remove/list/get/...` | ✅ | MCP 服务管理(7 个子命令) | |
| 203 | +| `claude auth login/status/logout` | ✅ | 认证管理 | |
| 204 | +| `claude plugin validate/list/install/...` | ✅ | 插件管理(7 个子命令) | |
| 205 | +| `claude setup-token` | ✅ | 长效 Token 配置 | |
| 206 | +| `claude agents` | ✅ | 代理列表 | |
| 207 | +| `claude doctor` | ✅ | 健康检查 | |
| 208 | +| `claude update` / `upgrade` | ✅ | 自动更新 | |
| 209 | +| `claude install [target]` | ✅ | Native 安装 | |
| 210 | +| `claude server` | ❌ | `DIRECT_CONNECT` flag | |
| 211 | +| `claude ssh <host>` | ❌ | `SSH_REMOTE` flag | |
| 212 | +| `claude open <cc-url>` | ❌ | `DIRECT_CONNECT` flag | |
| 213 | +| `claude auto-mode` | ❌ | `TRANSCRIPT_CLASSIFIER` flag | |
| 214 | +| `claude remote-control` | ❌ | `BRIDGE_MODE` + `DAEMON` flag | |
| 215 | +| `claude assistant` | ❌ | `KAIROS` flag | |
| 216 | +| `claude up/rollback/log/error/export/task/completion` | ❌ | ANT-ONLY | |
| 217 | + |
| 218 | +### 服务层 |
| 219 | + |
| 220 | +| 服务 | 状态 | 说明 | |
| 221 | +|------|------|------| |
| 222 | +| API 客户端 (`services/api/`) | ✅ | 3400+ 行,4 个 provider | |
| 223 | +| MCP (`services/mcp/`) | ✅ | 24 个文件,12000+ 行 | |
| 224 | +| OAuth (`services/oauth/`) | ✅ | 完整 OAuth 流程 | |
| 225 | +| 插件 (`services/plugins/`) | ✅ | 基础设施完整,无内置插件 | |
| 226 | +| LSP (`services/lsp/`) | ⚠️ | 实现存在,默认关闭 | |
| 227 | +| 压缩 (`services/compact/`) | ✅ | auto / micro / API 压缩 | |
| 228 | +| Hook 系统 (`services/tools/toolHooks.ts`) | ✅ | pre/post tool use hooks | |
| 229 | +| 会话记忆 (`services/SessionMemory/`) | ✅ | 会话记忆管理 | |
| 230 | +| 记忆提取 (`services/extractMemories/`) | ✅ | 自动记忆提取 | |
| 231 | +| Skill 搜索 (`services/skillSearch/`) | ✅ | 本地/远程 skill 搜索 | |
| 232 | +| 策略限制 (`services/policyLimits/`) | ✅ | 策略限制执行 | |
| 233 | +| 分析 / GrowthBook / Sentry | ⚠️ | 框架存在,实际 sink 为空 | |
| 234 | +| Voice (`services/voice.ts`) | ❌ | `VOICE_MODE` flag 关闭 | |
| 235 | + |
| 236 | +### 内部包 (`packages/`) |
| 237 | + |
| 238 | +| 包 | 状态 | 说明 | |
| 239 | +|------|------|------| |
| 240 | +| `color-diff-napi` | ✅ | 997 行完整 TypeScript 实现(语法高亮 diff) | |
| 241 | +| `audio-capture-napi` | ❌ | stub,`isNativeAudioAvailable()` 返回 false | |
| 242 | +| `image-processor-napi` | ❌ | stub,`getNativeModule()` 返回 null | |
| 243 | +| `modifiers-napi` | ❌ | stub,`isModifierPressed()` 返回 false | |
| 244 | +| `url-handler-napi` | ❌ | stub,`waitForUrlEvent()` 返回 null | |
| 245 | +| `@ant/claude-for-chrome-mcp` | ❌ | stub,`createServer()` 返回 null | |
| 246 | +| `@ant/computer-use-mcp` | ❌ | stub,`buildTools()` 返回 [] | |
| 247 | +| `@ant/computer-use-input` | ❌ | stub,仅类型声明 | |
| 248 | +| `@ant/computer-use-swift` | ❌ | stub,仅类型声明 | |
| 249 | + |
| 250 | +### Feature Flags(30 个,全部返回 `false`) |
| 251 | + |
| 252 | +`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` |
26 | 253 |
|
27 | 254 | ## 快速开始 |
28 | 255 |
|
|
0 commit comments