logo
0
0
WeChat Login

Claude Code V1

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

运行

# 开发模式, 看到版本号 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

工具 — 始终可用

工具状态说明
BashToolShell 执行,沙箱,权限检查
FileReadTool文件 / PDF / 图片 / Notebook 读取
FileEditTool字符串替换式编辑 + diff 追踪
FileWriteTool文件创建 / 覆写 + diff 生成
NotebookEditToolJupyter Notebook 单元格编辑
AgentTool子代理派生(fork / async / background / remote)
WebFetchToolURL 抓取 → Markdown → AI 摘要
WebSearchTool网页搜索 + 域名过滤
AskUserQuestionTool多问题交互提示 + 预览
SendMessageTool消息发送(peers / teammates / mailbox)
SkillTool斜杠命令 / Skill 调用
EnterPlanModeTool进入计划模式
ExitPlanModeTool (V2)退出计划模式
TodoWriteToolTodo 列表 v1
BriefTool简短消息 + 附件发送
TaskOutputTool后台任务输出读取
TaskStopTool后台任务停止
ListMcpResourcesToolMCP 资源列表
ReadMcpResourceToolMCP 资源读取
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 环境变量
ConfigToolUSER_TYPE === 'ant'(永远为 false)

工具 — Feature Flag 关闭(全部不可用)

工具Feature Flag
SleepToolPROACTIVE / KAIROS
CronCreate/Delete/ListToolAGENT_TRIGGERS
RemoteTriggerToolAGENT_TRIGGERS_REMOTE
MonitorToolMONITOR_TOOL
SendUserFileToolKAIROS
OverflowTestToolOVERFLOW_TEST_TOOL
TerminalCaptureToolTERMINAL_PANEL
WebBrowserToolWEB_BROWSER_TOOL
SnipToolHISTORY_SNIP
WorkflowToolWORKFLOW_SCRIPTS
PushNotificationToolKAIROS
SubscribePRToolKAIROS_GITHUB_WEBHOOKS
ListPeersToolUDS_INBOX
CtxInspectToolCONTEXT_COLLAPSE

工具 — Stub / 不可用

工具说明
TungstenToolANT-ONLY stub
REPLToolANT-ONLY,isEnabled: () => false
SuggestBackgroundPRToolANT-ONLY,isEnabled: () => false
VerifyPlanExecutionToolCLAUDE_CODE_VERIFY_PLAN=true 环境变量,且为 stub
ReviewArtifactToolstub,未注册到 tools.ts
DiscoverSkillsToolstub,未注册到 tools.ts

斜杠命令 — 可用

命令状态说明
/add-dir添加目录
/advisorAdvisor 配置
/agents代理列表/管理
/branch分支管理
/btw快速备注
/chromeChrome 集成
/clear清屏
/colorAgent 颜色
/compact压缩对话
/config (/settings)配置管理
/context上下文信息
/copy复制最后消息
/cost会话费用
/desktopClaude Desktop 集成
/diff显示 diff
/doctor健康检查
/effort设置 effort 等级
/exit退出
/export导出对话
/extra-usage额外用量信息
/fast切换 fast 模式
/feedback反馈
/files已跟踪文件
/heapdumpHeap dump(调试)
/help帮助
/hooksHook 管理
/ideIDE 连接
/init初始化项目
/install-github-app安装 GitHub App
/install-slack-app安装 Slack App
/keybindings快捷键管理
/login / /logout登录 / 登出
/mcpMCP 服务管理
/memoryMemory / CLAUDE.md 管理
/mobile移动端 QR 码
/model模型选择
/output-style输出风格
/passes推荐码
/permissions权限管理
/plan计划模式
/plugin插件管理
/pr-commentsPR 评论
/privacy-settings隐私设置
/rate-limit-options限速选项
/release-notes更新日志
/reload-plugins重载插件
/remote-env远程环境配置
/rename重命名会话
/resume恢复会话
/review代码审查(本地)
/ultrareview云端审查
/rewind回退对话
/sandbox-toggle切换沙箱
/security-review安全审查
/session会话信息
/skillsSkill 管理
/stats会话统计
/status状态信息
/statusline状态栏 UI
/stickers贴纸
/tasks任务管理
/theme终端主题
/think-back年度回顾
/upgrade升级 CLI
/usage用量信息
/insights使用分析报告
/vimVim 模式

斜杠命令 — Feature Flag 关闭

命令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

斜杠命令 — 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 serverDIRECT_CONNECT flag
claude ssh <host>SSH_REMOTE flag
claude open <cc-url>DIRECT_CONNECT flag
claude auto-modeTRANSCRIPT_CLASSIFIER flag
claude remote-controlBRIDGE_MODE + DAEMON flag
claude assistantKAIROS flag
claude up/rollback/log/error/export/task/completionANT-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-napi997 行完整 TypeScript 实现(语法高亮 diff)
audio-capture-napistub,isNativeAudioAvailable() 返回 false
image-processor-napistub,getNativeModule() 返回 null
modifiers-napistub,isModifierPressed() 返回 false
url-handler-napistub,waitForUrlEvent() 返回 null
@ant/claude-for-chrome-mcpstub,createServer() 返回 null
@ant/computer-use-mcpstub,buildTools() 返回 []
@ant/computer-use-inputstub,仅类型声明
@ant/computer-use-swiftstub,仅类型声明

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:bundlefeature() 在构建时注入 feature flag,由 GrowthBook 等 A/B 实验平台控制灰度发布。本项目中 feature() 被 polyfill 为始终返回 false,因此以下 30 个 flag 全部关闭。

自主 Agent

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 所有。

About

No description, topics, or website provided.
Language
TypeScript99.9%
JavaScript0.1%