Claude Code 源码文档 - 其他模块
版本: 2.1.88 | 覆盖: hooks, ink, buddy, remote, screens, voice, vim, memdir, migrations, constants, types, coordinator
1. Hooks 系统 (src/hooks/)
104 个自定义 React Hook 文件,是 Claude Code 终端 UI 的核心逻辑层。
关键 Hook 示例:
useCanUseTool- 工具权限检查useSettingsChange- 设置变更监听- 以及大量 UI 交互 Hook
2. Ink 终端 UI (src/ink/)
96 个文件,基于 Ink 的终端 React 渲染引擎。
- 自定义 Ink 渲染器
- 终端布局组件
- ANSI 输出处理
- 焦点管理、键盘导航
3. Buddy 系统 (src/buddy/)
Claude Code 的吉祥物/伴侣系统:
| 文件 | 职责 |
|---|---|
CompanionSprite.tsx | 精灵动画渲染 |
companion.ts | 伴侣逻辑 |
prompt.ts | 伴侣提示词 |
sprites.ts | 精灵定义 |
types.ts | 类型 |
useBuddyNotification.tsx | 通知 Hook |
4. Remote 远程会话 (src/remote/)
| 文件 | 职责 |
|---|---|
RemoteSessionManager.ts | 远程会话管理 |
remotePermissionBridge.ts | 远程权限桥接 |
sdkMessageAdapter.ts | SDK 消息适配 |
SessionsWebSocket.ts | WebSocket 会话 |
5. Screens 屏幕 (src/screens/)
| 文件 | 屏幕 |
|---|---|
REPL.tsx | 主 REPL 交互界面 |
Doctor.tsx | 诊断界面 |
ResumeConversation.tsx | 恢复对话 |
6. Voice 语音 (src/voice/)
| 文件 | 职责 |
|---|---|
voiceModeEnabled.ts | 语音模式启用检测 |
语音功能大部分在 services/voice.ts、services/voiceStreamSTT.ts、services/voiceKeyterms.ts 中。
7. Vim 模式 (src/vim/)
终端 Vim 键绑定支持:
| 文件 | 功能 |
|---|---|
motions.ts | 移动命令 |
operators.ts | 操作命令 |
textObjects.ts | 文本对象 |
transitions.ts | 模式转换 |
types.ts | 类型定义 |
8. Memdir 记忆目录 (src/memdir/)
管理 Claude Code 的记忆/知识文件:
| 文件 | 职责 |
|---|---|
memdir.ts | 记忆目录核心逻辑 |
findRelevantMemories.ts | 查找相关记忆 |
memoryAge.ts | 记忆老化 |
memoryScan.ts | 记忆扫描 |
memoryTypes.ts | 记忆类型 |
paths.ts | 记忆文件路径 |
teamMemPaths.ts | 团队记忆路径 |
teamMemPrompts.ts | 团队记忆提示 |
9. Migrations 数据迁移 (src/migrations/)
版本升级时的自动迁移:
| 文件 | 迁移内容 |
|---|---|
migrateAutoUpdatesToSettings.ts | 自动更新设置迁移 |
migrateBypassPermissionsAcceptedToSettings.ts | 权限绕过设置迁移 |
migrateEnableAllProjectMcpServersToSettings.ts | MCP 服务器设置迁移 |
migrateFennecToOpus.ts | Fennec→Opus 模型迁移 |
migrateLegacyOpusToCurrent.ts | 旧版 Opus 迁移 |
migrateOpusToOpus1m.ts | Opus→Opus1m 迁移 |
migrateReplBridgeEnabledToRemoteControlAtStartup.ts | Bridge→Remote 迁移 |
migrateSonnet1mToSonnet45.ts | Sonnet1m→Sonnet4.5 迁移 |
migrateSonnet45ToSonnet46.ts | Sonnet4.5→Sonnet4.6 迁移 |
resetAutoModeOptInForDefaultOffer.ts | 自动模式重置 |
resetProToOpusDefault.ts | Pro→Opus 默认重置 |
10. Constants 常量 (src/constants/)
| 文件 | 内容 |
|---|---|
apiLimits.ts | API 限制 |
betas.ts | Beta 功能 |
common.ts | 公共常量 |
cyberRiskInstruction.ts | 安全风险指令 |
errorIds.ts | 错误 ID |
figures.ts | 图标字符 |
files.ts | 文件相关常量 |
github-app.ts | GitHub App 常量 |
keys.ts | 快捷键 |
messages.ts | 消息常量 |
oauth.ts | OAuth 常量 |
outputStyles.ts | 输出样式 |
product.ts | 产品信息 |
prompts.ts | 提示词常量 |
spinnerVerbs.ts | 加载动画动词 |
systemPromptSections.ts | 系统提示词段落 |
system.ts | 系统常量 |
toolLimits.ts | 工具限制 |
tools.ts | 工具常量 |
turnCompletionVerbs.ts | 回合完成动词 |
xml.ts | XML 标签常量 |
11. Types 类型 (src/types/)
| 文件 | 类型内容 |
|---|---|
command.ts | 命令类型 |
hooks.ts | Hook 类型 |
ids.ts | ID 类型 |
logs.ts | 日志类型 |
permissions.ts | 权限类型 |
plugin.ts | 插件类型 |
textInputTypes.ts | 文本输入类型 |
generated/ | 自动生成的类型(事件、protobuf) |
12. Coordinator (src/coordinator/)
| 文件 | 职责 |
|---|---|
coordinatorMode.ts | 协调者模式(多Agent协作时的中央协调) |