Claude Code 源码分析Claude Code 源码分析
首页
源码统计
系统架构
UML 图表
工具系统
CodeGraph
首页
源码统计
系统架构
UML 图表
工具系统
CodeGraph
  • 概览

    • Claude Code 源码分析
    • 源码统计
    • CodeGraph 图谱
  • 架构

    • 系统架构
    • UML 图表索引
    • 查询引擎
    • 核心流程
    • 消息系统
    • 状态管理
  • 功能模块

    • 工具系统
    • 斜杠命令
    • 服务层
    • MCP 协议
    • Skills 技能
    • 子代理系统
  • 分层深度

    • 入口层
    • UI / Ink 层
    • utils 基础设施
    • 桥接 / 远程
    • 上下文压缩
  • 原理与安全

    • 底层原理
    • 技术难点
    • 权限与安全
    • 内部机制
    • 遥测与分析
  • 深度专题

    • Hooks 系统
    • 插件系统
    • 记忆系统
    • API 通信层
    • Ink 终端 UI
    • 认证系统
    • 构建与发布
    • 术语表
  • 调用分析

    • 调用链分析
    • 核心文件索引
  • 模块详解

    • utils

      • 模块: utils
      • messages · 消息工厂与规范化
      • session-storage · JSONL 会话持久化
      • permissions · 工具权限决策
      • shell-hooks · 用户 Shell Hook 系统
    • components

      • 模块: components
      • REPL · 主屏编排
      • messages · 消息行渲染
      • PermissionRequest · 权限弹窗
      • PromptInput · 底部输入
    • services

      • 模块: services
      • api-claude · Anthropic API 流式与重试
      • mcp-client · MCP 连接与工具调用
      • compact · 上下文压缩与自动触发
      • analytics · GrowthBook、Datadog 与 1P 事件
    • tools

      • 模块: tools
      • tool-interface · Tool 契约与注册表
      • bash-tool · Shell 执行与权限
      • streaming-executor · 流式工具并发调度
      • agent-tool · 子 Agent 委派
    • commands

      • 模块: commands
      • command-registry · commands.ts 注册与分派
      • model-command · /model 模型选择
      • mcp-commands · /mcp 服务器管理
      • compact-memory-commands · /compact 与 /memory
    • ink

      • 模块: ink
      • Ink 渲染管线 · Screen 与终端输出
      • 终端事件 · resize、paste、stdin
      • Ink Hooks · 输入、搜索、终端状态
      • Ink 组件 · Box、Text、ScrollBox 原语
    • hooks

      • 模块: hooks
      • useCanUseTool · 权限 UI 接缝
      • 输入与快捷键 Hook
      • 合并态 Hook(MCP + 本地)
      • notifs 通知 Hook
    • bridge

      • 模块: bridge
      • repl-bridge · REPL 桥初始化与传输
      • bridge-messaging · 桥消息路由与入站处理
      • remote-bridge-core · env-less 核心与守护主循环
      • bridge-permissions-ui · 权限、API 与 TUI
    • cli

      • 模块: cli
      • Structured IO · NDJSON SDK 协议
      • CLI Transports · Session Ingress 传输层
      • CLI Handlers · 子命令懒加载实现
      • Update & Upload · 自更新与串行上传原语
    • screens

      • 模块: screens
      • REPL 屏 · Screen 类型与顶层路由
      • ResumeConversation · 会话恢复选择器
      • Doctor · 安装诊断全屏
    • entrypoints

      • 模块: entrypoints
      • cli-entrypoint · Bootstrap 与快路径
      • sdk-types · core / control / runtime 类型体系
      • mcp-entrypoint · MCP stdio 服务器
      • sandbox-types · 沙箱配置单一真相源
    • skills

      • 模块: skills
      • skills-loading · 磁盘加载与 bundled 注册表
      • bundled-skills · 内置 skill 与 initBundledSkills
      • mcp-skills · MCP prompt 转 skill
      • skill-tool-integration · SkillTool 与命令注册
    • types

      • 模块: types
      • message-types · Message 联合与 content blocks
      • tool-permission-types · Tool、Permission、Command 类型
      • api-sdk-types · API 与 Hooks 协议类型
      • misc-types · ids、plugin、generated 与其余类型
    • tasks

      • 模块: tasks
      • local-agent-task · 本地 Agent 与主会话后台化
      • remote-agent-task · 远程 CCR 与 In-Process Teammate
      • shell-workflow-tasks · Bash 后台、Workflow 与 stopTask
      • dream-monitor-tasks · Dream、Monitor MCP 与 pill 文案
    • keybindings

      • 模块: keybindings
      • keybinding-registry · 注册、Provider 与 useKeybinding
      • default-bindings · 默认键位表与平台差异
      • command-bindings · command:* 动态斜杠命令绑定
      • vim-bindings · Vim 模式与 keybindings 边界
    • memdir

      • 模块: memdir
      • memdir-core · 路径、加载与 MEMORY.md
      • memory-extraction · extractMemories 与 SessionMemory
      • memdir-commands · /memory、/remember 与命令集成
    • state

      • 模块: state
      • app-state-core · store、AppState 类型与 Provider
      • app-state-selectors · selectors 与 onChangeAppState
      • teammate-state · 队友视图与 swarm 状态
      • state-boundaries · bootstrap、sessionStorage、FileStateCache
    • query

      • 模块: query
      • query config 与 deps · 配置快照与依赖注入
      • query tokenBudget · +500k 自动续跑
      • query transitions · Continue / Terminal 状态机
      • query stopHooks · Stop 事件与 turn 结束编排
  • 模块详解(扩展)

    • messages · 消息工厂与规范化
    • session-storage · JSONL 会话持久化
    • permissions · 工具权限决策
    • shell-hooks · 用户 Shell Hook 系统
    • REPL · 主屏编排
    • messages · 消息行渲染
    • PermissionRequest · 权限弹窗
    • PromptInput · 底部输入
    • api-claude · Anthropic API 流式与重试
    • mcp-client · MCP 连接与工具调用
    • compact · 上下文压缩与自动触发
    • analytics · GrowthBook、Datadog 与 1P 事件
    • tool-interface · Tool 契约与注册表
    • bash-tool · Shell 执行与权限
    • streaming-executor · 流式工具并发调度
    • agent-tool · 子 Agent 委派
    • command-registry · commands.ts 注册与分派
    • model-command · /model 模型选择
    • mcp-commands · /mcp 服务器管理
    • compact-memory-commands · /compact 与 /memory
    • Ink 渲染管线 · Screen 与终端输出
    • 终端事件 · resize、paste、stdin
    • Ink Hooks · 输入、搜索、终端状态
    • Ink 组件 · Box、Text、ScrollBox 原语
    • useCanUseTool · 权限 UI 接缝
    • 输入与快捷键 Hook
    • 合并态 Hook(MCP + 本地)
    • notifs 通知 Hook
    • repl-bridge · REPL 桥初始化与传输
    • bridge-messaging · 桥消息路由与入站处理
    • remote-bridge-core · env-less 核心与守护主循环
    • bridge-permissions-ui · 权限、API 与 TUI
    • Structured IO · NDJSON SDK 协议
    • CLI Transports · Session Ingress 传输层
    • CLI Handlers · 子命令懒加载实现
    • Update & Upload · 自更新与串行上传原语
    • REPL 屏 · Screen 类型与顶层路由
    • ResumeConversation · 会话恢复选择器
    • Doctor · 安装诊断全屏
    • cli-entrypoint · Bootstrap 与快路径
    • sdk-types · core / control / runtime 类型体系
    • mcp-entrypoint · MCP stdio 服务器
    • sandbox-types · 沙箱配置单一真相源
    • skills-loading · 磁盘加载与 bundled 注册表
    • bundled-skills · 内置 skill 与 initBundledSkills
    • mcp-skills · MCP prompt 转 skill
    • skill-tool-integration · SkillTool 与命令注册
    • message-types · Message 联合与 content blocks
    • tool-permission-types · Tool、Permission、Command 类型
    • api-sdk-types · API 与 Hooks 协议类型
    • misc-types · ids、plugin、generated 与其余类型
    • local-agent-task · 本地 Agent 与主会话后台化
    • remote-agent-task · 远程 CCR 与 In-Process Teammate
    • shell-workflow-tasks · Bash 后台、Workflow 与 stopTask
    • dream-monitor-tasks · Dream、Monitor MCP 与 pill 文案
    • keybinding-registry · 注册、Provider 与 useKeybinding
    • default-bindings · 默认键位表与平台差异
    • command-bindings · command:* 动态斜杠命令绑定
    • vim-bindings · Vim 模式与 keybindings 边界
    • memdir-core · 路径、加载与 MEMORY.md
    • memory-extraction · extractMemories 与 SessionMemory
    • memdir-commands · /memory、/remember 与命令集成
    • app-state-core · store、AppState 类型与 Provider
    • app-state-selectors · selectors 与 onChangeAppState
    • teammate-state · 队友视图与 swarm 状态
    • state-boundaries · bootstrap、sessionStorage、FileStateCache
    • query config 与 deps · 配置快照与依赖注入
    • query tokenBudget · +500k 自动续跑
    • query transitions · Continue / Terminal 状态机
    • query stopHooks · Stop 事件与 turn 结束编排
  • 工具详解

    • tool-interface · Tool 契约与注册表
    • tool-permission-types · Tool、Permission、Command 类型
    • 工具: Bash
    • 工具: PowerShell
    • 工具: Agent
    • 工具: LSP
    • 工具: FileEdit
    • 工具: FileRead
    • 工具: Skill
    • 工具: WebFetch
    • 工具: MCP
    • 工具: SendMessage
    • 工具: FileWrite
    • 工具: Config
    • 工具: Grep
    • 工具: Brief
    • 工具: ExitPlanMode
    • 工具: ToolSearch
    • 工具: NotebookEdit
    • 工具: TaskOutput
    • 工具: WebSearch
    • 工具: ScheduleCron

本章总览

服务层是横切能力:API、MCP、压缩、OAuth、遥测等 22 个子系统。它们被 query、tools、commands 复用。本章帮你建立服务地图,避免在 services/ 里迷路。

总览图

渲染图表中…

学完本章你应该能

  • 列举 22 服务的职责一句话
  • 理解 services 与 tools 的边界
  • 找到 API 与 compact 两个最核心服务

核心概念(先读懂这些)

Service 不是微服务

这里是进程内模块划分,不是网络服务。命名 services/ 表示「长生命周期、被多处 inject 的能力包」。

依赖方向

query → services/api;tools → services/mcp;compact → services/compact。tools 不应反向依赖 query,保持 DAG。

建议学习步骤

  1. 读服务表并标注已学/未学
  2. 深入 API 与 MCP 两章
  3. 画一张自己的依赖草图

services 协作关系

渲染图表中…

22 个子系统

  • mcp:12,333 行
  • api:10,497 行
  • analytics:4,049 行
  • compact:3,998 行
  • tools:3,117 行
  • lsp:2,470 行
  • teamMemorySync:2,172 行
  • plugins:1,619 行
  • PromptSuggestion:1,516 行
  • oauth:1,070 行
  • SessionMemory:1,029 行
  • remoteManagedSettings:961 行
  • extractMemories:771 行
  • tips:767 行
  • policyLimits:692 行
  • settingsSync:650 行
  • autoDream:554 行
  • MagicDocs:383 行
  • AgentSummary:180 行
  • toolUseSummary:113 行
  • contextCollapse:62 行
  • skillSearch:24 行

mcp

12,333 行 · 23 文件

文件
services\mcp\auth.ts
services\mcp\channelAllowlist.ts
services\mcp\channelNotification.ts
services\mcp\channelPermissions.ts
services\mcp\claudeai.ts
services\mcp\client.ts
services\mcp\config.ts
services\mcp\elicitationHandler.ts
services\mcp\envExpansion.ts
services\mcp\headersHelper.ts
services\mcp\InProcessTransport.ts
services\mcp\MCPConnectionManager.tsx
services\mcp\mcpStringUtils.ts
services\mcp\normalization.ts
services\mcp\oauthPort.ts

说明

MCP 客户端:连接 stdio/SSE/HTTP 服务器,发现 tools/resources,auth 状态机。

api

10,497 行 · 20 文件

文件
services\api\adminRequests.ts
services\api\bootstrap.ts
services\api\claude.ts
services\api\client.ts
services\api\dumpPrompts.ts
services\api\emptyUsage.ts
services\api\errors.ts
services\api\errorUtils.ts
services\api\filesApi.ts
services\api\firstTokenDate.ts
services\api\grove.ts
services\api\logging.ts
services\api\metricsOptOut.ts
services\api\overageCreditGrant.ts
services\api\promptCacheBreakDetection.ts

说明

Anthropic API 封装:streaming messages、retry/backoff、usage 统计、prompt cache 管理。

analytics

4,049 行 · 9 文件

文件
services\analytics\config.ts
services\analytics\datadog.ts
services\analytics\firstPartyEventLogger.ts
services\analytics\firstPartyEventLoggingExporter.ts
services\analytics\growthbook.ts
services\analytics\index.ts
services\analytics\metadata.ts
services\analytics\sink.ts
services\analytics\sinkKillswitch.ts

说明

遥测管道:GrowthBook 特性开关 + Datadog + 1P event logging。

compact

3,998 行 · 15 文件

文件
services\compact\apiMicrocompact.ts
services\compact\autoCompact.ts
services\compact\cachedMCConfig.ts
services\compact\compact.ts
services\compact\compactWarningHook.ts
services\compact\compactWarningState.ts
services\compact\grouping.ts
services\compact\microCompact.ts
services\compact\postCompactCleanup.ts
services\compact\prompt.ts
services\compact\reactiveCompact.ts
services\compact\sessionMemoryCompact.ts
services\compact\snipCompact.ts
services\compact\snipProjection.ts
services\compact\timeBasedMCConfig.ts

说明

上下文压缩:autoCompact 监控 token 使用率,compactConversation 生成摘要。

tools

3,117 行 · 4 文件

文件
services\tools\StreamingToolExecutor.ts
services\tools\toolExecution.ts
services\tools\toolHooks.ts
services\tools\toolOrchestration.ts

lsp

2,470 行 · 8 文件

文件
services\lsp\config.ts
services\lsp\LSPClient.ts
services\lsp\LSPDiagnosticRegistry.ts
services\lsp\LSPServerInstance.ts
services\lsp\LSPServerManager.ts
services\lsp\manager.ts
services\lsp\passiveFeedback.ts
services\lsp\types.ts

teamMemorySync

2,172 行 · 5 文件

文件
services\teamMemorySync\index.ts
services\teamMemorySync\secretScanner.ts
services\teamMemorySync\teamMemSecretGuard.ts
services\teamMemorySync\types.ts
services\teamMemorySync\watcher.ts

plugins

1,619 行 · 3 文件

文件
services\plugins\pluginCliCommands.ts
services\plugins\PluginInstallationManager.ts
services\plugins\pluginOperations.ts

说明

插件管理:bundled + marketplace 插件。

PromptSuggestion

1,516 行 · 2 文件

文件
services\PromptSuggestion\promptSuggestion.ts
services\PromptSuggestion\speculation.ts

oauth

1,070 行 · 6 文件

文件
services\oauth\auth-code-listener.ts
services\oauth\client.ts
services\oauth\crypto.ts
services\oauth\getOauthProfile.ts
services\oauth\index.ts
services\oauth\types.ts

说明

OAuth 登录:Claude.ai 账号认证流程。

SessionMemory

1,029 行 · 3 文件

文件
services\SessionMemory\prompts.ts
services\SessionMemory\sessionMemory.ts
services\SessionMemory\sessionMemoryUtils.ts

remoteManagedSettings

961 行 · 6 文件

文件
services\remoteManagedSettings\index.ts
services\remoteManagedSettings\securityCheck.jsx
services\remoteManagedSettings\securityCheck.tsx
services\remoteManagedSettings\syncCache.ts
services\remoteManagedSettings\syncCacheState.ts
services\remoteManagedSettings\types.ts

extractMemories

771 行 · 2 文件

文件
services\extractMemories\extractMemories.ts
services\extractMemories\prompts.ts

tips

767 行 · 4 文件

文件
services\tips\tipHistory.ts
services\tips\tipRegistry.ts
services\tips\tipScheduler.ts
services\tips\types.ts

policyLimits

692 行 · 2 文件

文件
services\policyLimits\index.ts
services\policyLimits\types.ts

settingsSync

650 行 · 2 文件

文件
services\settingsSync\index.ts
services\settingsSync\types.ts

autoDream

554 行 · 4 文件

文件
services\autoDream\autoDream.ts
services\autoDream\config.ts
services\autoDream\consolidationLock.ts
services\autoDream\consolidationPrompt.ts

MagicDocs

383 行 · 2 文件

文件
services\MagicDocs\magicDocs.ts
services\MagicDocs\prompts.ts

AgentSummary

180 行 · 1 文件

文件
services\AgentSummary\agentSummary.ts

toolUseSummary

113 行 · 1 文件

文件
services\toolUseSummary\toolUseSummaryGenerator.ts

contextCollapse

62 行 · 3 文件

文件
services\contextCollapse\index.ts
services\contextCollapse\operations.ts
services\contextCollapse\persist.ts

skillSearch

24 行 · 7 文件

文件
services\skillSearch\featureCheck.ts
services\skillSearch\localSearch.ts
services\skillSearch\prefetch.ts
services\skillSearch\remoteSkillLoader.ts
services\skillSearch\remoteSkillState.ts
services\skillSearch\signals.ts
services\skillSearch\telemetry.ts

本章小结与延伸

services/ = 可复用子系统仓库。先 api + mcp + compact,其余按需。 继续学习:

  • API 通信层
  • MCP 协议
Prev
斜杠命令
Next
MCP 协议