跳到主要内容

项目结构

Claude Code 的源码组织清晰,采用功能导向的目录结构。以下是主要目录和文件的详细说明。

顶层结构

src/
├── main.tsx # 主入口 (4,683 行)
├── QueryEngine.ts # LLM 查询引擎 (1,295 行)
├── query.ts # 查询管道 (1,729 行)
├── Tool.ts # 工具类型定义 (792 行)
├── commands.ts # 命令注册表 (754 行)
├── tools.ts # 工具注册表 (354 行)
├── cost-tracker.ts # Token 成本追踪 (323 行)
├── context.ts # 上下文管理 (189 行)
├── history.ts # 会话历史 (464 行)
├── setup.ts # 初始化逻辑 (477 行)
└── interactiveHelpers.tsx # 交互辅助 (365 行)

核心目录

commands/ — 命令系统 (189 文件)

包含 101+ 斜杠命令的实现,每个命令是一个独立模块:

commands/
├── commit.ts # /commit
├── diff.ts # /diff
├── review.ts # /review
├── doctor.ts # /doctor
├── config.ts # /config
├── tasks.ts # /tasks
├── memory.ts # /memory
├── mcp.ts # /mcp
├── skills.ts # /skills
├── compact.ts # /compact
├── resume.ts # /resume
├── share.ts # /share
└── ... # 更多命令

tools/ — 工具系统 (184 文件)

43+ Agent 工具的实现,每个工具包含输入 Schema、权限和执行逻辑:

tools/
├── BashTool/ # Shell 命令执行
├── FileReadTool/ # 文件读取
├── FileWriteTool/ # 文件写入
├── FileEditTool/ # 文件编辑
├── GlobTool/ # 文件搜索
├── GrepTool/ # 内容搜索
├── AgentTool/ # 子 Agent 派遣
├── MCPTool/ # MCP 工具调用
├── WebFetchTool/ # 网页抓取
├── WebSearchTool/ # 网页搜索
├── NotebookEditTool/ # Jupyter 编辑
├── EnterWorktreeTool/ # Git Worktree
├── EnterPlanModeTool/ # 计划模式
├── TaskCreateTool/ # 任务创建
├── SendMessageTool/ # 消息发送
└── ...

components/ — UI 组件 (389 文件)

基于 React + Ink 的终端 UI 组件库:

components/
├── Message/ # 消息渲染
├── Tool/ # 工具调用展示
├── Permission/ # 权限提示
├── Input/ # 用户输入
├── StatusBar/ # 状态栏
├── Spinner/ # 加载动画
├── CodeBlock/ # 代码块
├── Diff/ # 差异展示
├── Markdown/ # Markdown 渲染
└── ...

hooks/ — React Hooks (104 文件)

自定义 React Hooks 管理各种状态和逻辑:

hooks/
├── usePermission.ts # 权限管理
├── useTools.ts # 工具状态
├── useMessages.ts # 消息流
├── useSuggestions.ts # 建议提示
├── useTheme.ts # 主题切换
├── useKeyboard.ts # 键盘输入
└── ...

services/ — 服务层 (130 文件)

外部集成和内部子系统:

services/
├── api/ # Anthropic API 客户端
├── mcp/ # MCP 服务器管理
├── lsp/ # LSP 集成
├── oauth/ # OAuth 2.0 认证
├── compression/ # 上下文压缩
├── analytics/ # GrowthBook 分析
├── memory/ # 自动记忆提取
├── plugins/ # 插件加载器
├── telemetry/ # OpenTelemetry
├── rateLimit/ # 速率限制
├── voice/ # 语音处理
├── notifications/ # 通知系统
└── ...

bridge/ — IDE 桥接 (31 文件)

与 IDE 的双向通信:

bridge/
├── vscode/ # VS Code 扩展
├── jetbrains/ # JetBrains IDE
├── repl/ # REPL 桥接
├── auth/ # JWT 认证
├── permissions/ # 权限回调
└── runner/ # 会话运行器

其他重要目录

目录文件数说明
utils/331工具函数库
ink/50+Ink 渲染引擎定制
state/6全局状态管理
memdir/10持久化记忆目录
tasks/12任务管理系统
skills/20技能系统
keybindings/14快捷键配置
context/11上下文收集
constants/23常量和配置
types/8TypeScript 类型定义
migrations/13配置迁移脚本
vim/8Vim 模式支持
voice/5语音输入
remote/5远程会话
server/3服务器模式
screens/3全屏界面(Doctor, REPL, Resume)
coordinator/1多 Agent 协调器
buddy/8伴侣精灵系统

关键文件大小排名

文件行数职责
main.tsx4,683应用入口,CLI 配置
query.ts1,729查询管道
QueryEngine.ts1,295LLM API 引擎
Tool.ts792工具类型系统
commands.ts754命令注册表
setup.ts477初始化流程
history.ts464会话历史管理
interactiveHelpers.tsx365交互辅助函数
tools.ts354工具注册表
cost-tracker.ts323成本追踪