Skip to content

Claude Code 源码文档 - 工具函数 (Utils)

版本: 2.1.88 | 文件数: 564 (329文件 + 子目录) | 源码路径: src/utils/

1. 模块概述

utils/ 是 Claude Code 最大的模块,包含 329 个顶层文件和多个子目录,提供所有共享工具函数。涵盖认证、配置、Git 操作、文件系统、消息处理、权限管理等基础能力。

2. 按功能域分类

🔐 认证与安全 (Auth & Security)

文件职责
auth.ts核心认证逻辑
authFileDescriptor.ts文件描述符认证
authPortable.ts便携式认证
crypto.ts加密工具
mtls.tsmTLS 支持
secureStorage/安全存储
aws.tsAWS 认证
awsAuthStatusManager.tsAWS 认证状态
caCerts.tsCA 证书配置

⚙️ 配置管理 (Config)

文件职责
config.ts全局配置加载
configConstants.ts配置常量
settings/设置管理子目录
env.ts / envUtils.ts环境变量
managedEnv.ts受管环境检测
cliArgs.tsCLI 参数解析

📁 文件操作 (File Operations)

文件职责
file.ts文件工具函数
fileRead.ts / fileReadCache.ts文件读取与缓存
fileHistory.ts文件历史记录
fileStateCache.ts文件状态缓存
fsOperations.ts文件系统操作
readFileInRange.ts按行范围读取
tempfile.ts临时文件管理
diff.ts文件差异计算
glob.tsglob 模式匹配

🔀 Git 操作 (Git)

文件职责
git.tsGit 核心操作
gitDiff.tsGit diff 操作
gitSettings.tsGit 设置
getWorktreePaths.tsWorktree 路径
worktree.tsWorktree 操作
ghPrStatus.tsGitHub PR 状态
github/GitHub 相关工具
commitAttribution.ts提交归属

💬 消息处理 (Messages)

文件职责
messages.ts消息创建/转换
messages/消息处理子目录
attachments.ts附件处理
messageQueueManager.ts消息队列管理
messagePredicates.ts消息过滤谓词
toolResultStorage.ts工具结果存储
controlMessageCompat.ts控制消息兼容

🛡️ 权限管理 (Permissions)

文件职责
permissions/权限工具子目录
classifierApprovals.ts分类器审批
autoModeDenials.ts自动模式拒绝

🧠 会话管理 (Session)

文件职责
sessionStorage.ts会话持久化
sessionState.ts会话状态
sessionStart.ts会话启动
sessionRestore.ts会话恢复
sessionTitle.ts会话标题
sessionUrl.ts会话 URL
sessionActivity.ts会话活跃度
concurrentSessions.ts并发会话管理
listSessionsImpl.ts列出会话
crossProjectResume.ts跨项目恢复

🤖 模型与 API (Model & API)

文件职责
api.tsAPI 调用工具
model/模型管理子目录
modelCost.ts模型成本计算
billing.ts计费工具
tokens.ts / tokenBudget.tsToken 管理
thinking.ts思考模式配置
effort.ts努力等级
fastMode.ts快速模式
completionCache.ts补全缓存

🖥️ 终端与 UI (Terminal & UI)

文件职责
terminal.ts终端工具
terminalPanel.ts终端面板
format.ts文本格式化
ansiToPng.ts / ansiToSvg.tsANSI 转图片/SVG
cliHighlight.tsCLI 高亮
highlightMatch.tsx匹配高亮
markdown.tsMarkdown 渲染
theme.ts主题管理
systemTheme.ts系统主题
hyperlink.ts超链接处理
horizontalScroll.ts水平滚动

📦 工具系统支持 (Tool Support)

文件职责
toolPool.ts工具池管理
toolErrors.ts工具错误处理
toolSchemaCache.ts工具 Schema 缓存
toolSearch.ts工具搜索
toolResultStorage.ts工具结果存储
mcpOutputStorage.tsMCP 输出存储

🔄 Cron 与调度 (Cron)

文件职责
cron.tsCron 核心
cronScheduler.tsCron 调度器
cronTasks.tsCron 任务
cronTasksLock.tsCron 任务锁
cronJitterConfig.tsCron 抖动配置

📊 分析与遥测 (Analytics)

文件职责
telemetry/遥测子目录
stats.ts / statsCache.ts统计信息
profilerBase.ts性能分析基础
headlessProfiler.tsHeadless 性能分析
startupProfiler.ts启动性能分析
queryProfiler.ts查询性能分析
fpsTracker.tsFPS 追踪
heatmap.ts热力图

🔧 进程与执行 (Process)

文件职责
process.ts进程管理
subprocessEnv.ts子进程环境
shell/Shell 操作子目录
Shell.tsShell 工具
ShellCommand.tsShell 命令
shellConfig.tsShell 配置
bash/Bash 相关子目录
powershell/PowerShell 子目录
execFileNoThrow.ts安全执行文件
background/后台任务子目录

🧪 沙盒 (Sandbox)

文件职责
sandbox/沙盒工具子目录
embeddedTools.ts嵌入式工具检测

📋 提示词 (Prompts)

文件职责
systemPrompt.ts系统提示词
systemPromptType.ts系统提示词类型
queryContext.ts查询上下文
promptCategory.ts提示词分类
promptEditor.ts提示词编辑器
claudemd.tsCLAUDE.md 处理
contextAnalysis.ts上下文分析

🧩 插件与技能 (Plugins & Skills)

文件职责
plugins/插件加载子目录
skills/技能工具子目录
mcp/MCP 工具子目录

🕐 时间与日期 (Time)

文件职责
sleep.ts延迟/睡眠
timeouts.ts超时管理
idleTimeout.ts空闲超时
formatBriefTimestamp.ts时间格式化

🗂️ 其他工具

文件职责
array.ts数组工具
hash.ts哈希计算
json.ts / jsonRead.tsJSON 工具
yaml.tsYAML 解析
xml.tsXML 工具
uuid.tsUUID 生成
memoize.ts记忆化
set.tsSet 工具
generators.ts生成器工具
semver.ts语义版本
truncate.ts文本截断
words.ts单词工具
stringUtils.ts字符串工具
treeify.ts树形显示
markdownConfigLoader.tsMarkdown 配置
frontmatterParser.tsFrontmatter 解析
zodToJsonSchema.tsZod→JSON Schema 转换

3. 关键子目录

目录内容
utils/git/Git 高级操作
utils/messages/消息处理细节
utils/hooks/Hook 辅助函数
utils/permissions/权限检查逻辑
utils/memory/内存/记忆管理
utils/model/模型选择与配置
utils/settings/设置同步
utils/shell/Shell 操作封装
utils/telemetry/遥测收集
utils/swarm/Agent 集群
utils/task/任务管理
utils/todo/TODO 管理
utils/suggestions/自动补全建议
utils/sandbox/沙盒实现
utils/computerUse/计算机使用
utils/processUserInput/用户输入处理

4. 导出接口总结

utils/ 的设计原则是按需导入,没有统一的 index.ts,每个文件独立导出。关键的入口函数:

  • getGlobalConfig() → 获取全局配置
  • getCwd() / setCwd() → 工作目录管理
  • loadAllPluginsCacheOnly() → 插件加载
  • getMainLoopModel() → 获取主循环模型
  • processUserInput() → 处理用户输入
  • fetchSystemPromptParts() → 获取系统提示词

MIT