Skip to content

Repository files navigation

Claude Code 源码还原

npm versionTypeScriptBunLicense

从 source map 还原并可本地运行的 Claude Code CLI 完整 TypeScript 源码。

Claude Code CLI

Warning

本仓库为非官方版本,基于公开 npm 发布包 source map 还原,仅供研究学习,不代表 Anthropic 内部开发仓库结构。部分模块已用兼容 shim 替代。


快速开始

bun install # 安装依赖
bun run dev # 启动 CLI(交互式)
bun run version # 验证版本号

要求:Bun ≥ 1.3.5、Node.js ≥ 24


项目结构

.
├── src/ # 核心源码(1,987 个 TS/TSX 文件)
│ ├── entrypoints/ # CLI 入口
│ ├── main.tsx # 主初始化(auth / MCP / settings)
│ ├── dev-entry.ts # 开发入口
│ │
│ ├── tools/ # 工具实现(53 个)
│ ├── commands/ # 斜杠命令(87 个)
│ ├── services/ # 后端服务(API / MCP / analytics)
│ ├── utils/ # 工具函数(git / permissions / model)
│ │
│ ├── components/ # 终端 UI 组件(React + Ink)
│ ├── hooks/ # 自定义 React Hooks
│ ├── ink/ # Ink 终端渲染器(自定义分支)
│ ├── vim/ # Vim 模式引擎
│ ├── keybindings/ # 快捷键
│ │
│ ├── coordinator/ # 多 Agent 协调
│ ├── bridge/ # 远程桥接控制
│ ├── remote/ # 远程会话
│ ├── server/ # IDE 直连服务器
│ ├── skills/ # 技能系统
│ ├── plugins/ # 插件系统
│ ├── voice/ # 语音交互
│ ├── buddy/ # 伴侣精灵
│ └── assistant/ # KAIROS 助手模式
│
├── shims/ # 原生模块兼容替代
├── vendor/ # 原生绑定源码
├── package.json
├── tsconfig.json
└── bun.lock

架构

启动流程

cli.tsx → main.tsx → REPL (React/Ink)
│ │
│ └─ 完整初始化:认证 → GrowthBook → MCP → Settings → Commander.js
└─ 快速路径:--version / daemon / ps / logs

核心模块

模块说明
query.ts流式 API 调用、工具执行循环、自动压缩、消息规范化
QueryEngine.ts会话生命周期、持久化、权限、SDK 集成
commands.ts斜杠命令注册(/commit/review/config/compact/memory/plan 等)

工具系统(53 个工具)

类别工具
文件FileReadFileWriteFileEditGlobGrep
执行BashREPLPowerShellNotebookEdit
网络WebFetchWebSearchWebBrowser
AgentAgentSendMessageTeamCreateTeamDelete
任务TaskCreateTaskGetTaskListTaskUpdateTaskStop
MCPMCPMcpAuthListMcpResourcesReadMcpResource
工作流EnterPlanModeExitPlanModeEnterWorktreeExitWorktree
其他SkillConfigScheduleCronMonitorWorkflowAskUserQuestion

服务层

服务职责
services/api/Anthropic API 客户端、重试、速率限制、用量追踪
services/mcp/MCP 协议客户端/服务端、OAuth、通道管理
services/compact/会话自动压缩策略
services/analytics/GrowthBook 特性开关、Datadog、事件日志

UI 架构

基于 React + Ink 的终端 UI:

  • ink/ — 自定义 Ink 分支(布局 / 焦点 / ANSI / 虚拟滚动 / 点击检测)
  • components/(148 文件)— 消息、输入、diff、权限对话框、状态栏
  • hooks/(87 文件)— 工具 / 语音 / IDE / vim / 会话 / 任务
  • vim/ — 完整 Vim 键绑定引擎(动作、操作符、文本对象)

还原说明

Source map 无法 100% 还原原始仓库,以下内容可能缺失或降级:

类型说明
纯类型文件type-only .d.ts 文件可能缺失
构建产物构建时生成的代码不在 source map 中
原生绑定私有 native 模块用 shims/ 替代
动态资源动态导入和资源文件可能不完整

声明

  • 源码版权归 Anthropic 所有
  • 仅用于技术研究与学习,请勿用于商业用途
  • 如有侵权,请联系删除

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages