free-code-dotnet/docs/free-code 项目结构完整分析报告.md
应文浩wenhao.ying@xiaobao100.com e25ac591a7 init easy-code
2026-04-06 07:24:24 +08:00

35 KiB
Raw Blame History

free-code 项目结构完整分析报告

一、项目概览

项目 详情
名称 free-code (Claude Code 的开源重建版本)
版本 2.1.87
来源 Anthropic Claude Code CLI 的源码快照2026-03-31 npm 分发包 source map 暴露后重建)
运行时 Bun >= 1.3.11
语言 TypeScript (ESNext, JSX: react-jsx)
总代码量 ~1,997 个 TS/TSX 文件,共 ~512,834 行代码
核心框架 React 19 + Ink 6 (终端 UI)

三大修改方向

  1. 遥测移除 — 所有 OpenTelemetry/gRPC、GrowthBook 分析、Sentry 报告等外发遥测全部替换为空实现stub
  2. 安全提示护栏移除 — 移除了 Anthropic 注入的额外限制性系统提示
  3. 实验性功能解锁 — 88 个 feature flag 中 54 个可编译通过并启用

二、目录结构与代码量

目录 文件数 代码行数 职责
../src/utils/ 577 178,924 工具函数(模型管理、认证、设置、权限等)
../src/components/ 400 81,808 Ink/React 终端 UI 组件
../src/services/ 147 54,351 API 客户端、OAuth、MCP、分析已 stub
../src/tools/ 210 51,068 40+ Agent 工具实现
../src/commands/ 218 26,526 70+ 斜杠命令
../src/ink/ 98 19,844 Ink 框架内部(终端渲染引擎)
../src/hooks/ 104 19,205 React hooks
../src/bridge/ 32 12,614 IDE 远程控制桥接
../src/cli/ 21 12,408 CLI 参数解析和命令分发
../src/screens/ 3 5,981 主界面 REPL
../src/entrypoints/ 11 4,162 入口点
../src/skills/ 50 4,092 技能系统
../src/native-ts/ 4 4,081 原生模块绑定
../src/types/ 12 3,468 类型定义
../src/tasks/ 14 3,288 后台任务管理
../src/keybindings/ 14 3,159 快捷键配置
../src/constants/ 22 2,725 常量定义
其他 (18 个目录) vim、状态、迁移、MCP 等

完整目录列表

../src/
  assistant/          # 助手会话管理
  bootstrap/          # 启动引导
  bridge/             # IDE 远程控制桥接32 文件)
  buddy/              # Buddy 功能
  cli/                # CLI 参数解析和快速路径分发21 文件)
  commands/           # 70+ 斜杠命令实现218 文件)
  components/         # Ink/React 终端 UI 组件400 文件)
  constants/          # 常量定义22 文件)
  context/            # React 上下文
  coordinator/        # 协调器模式
  daemon/             # 后台守护进程
  entrypoints/        # 入口点11 文件)
  environment-runner/ # BYOC 环境运行器
  hooks/              # React hooks104 文件)
  ink/                # Ink 终端渲染引擎98 文件)
  jobs/               # 作业系统
  keybindings/        # 快捷键配置14 文件)
  memdir/             # 记忆目录管理
  migrations/         # 数据迁移11 文件)
  moreright/          # 扩展权限
  native-ts/          # 原生 TypeScript 模块4 文件)
  outputStyles/       # 输出样式
  plugins/            # 插件系统2 文件)
  proactive/          # 主动任务
  query/              # 查询管道4 文件)
  remote/             # 远程会话管理4 文件)
  schemas/            # JSON Schema
  screens/            # 主界面屏幕3 文件)
  self-hosted-runner/ # 自托管运行器
  server/             # 服务器模式11 文件)
  services/           # 服务层147 文件)
  skills/             # 技能系统50 文件)
  ssh/                # SSH 远程会话
  state/              # 应用状态管理6 文件)
  tasks/              # 后台任务类型14 文件)
  tools/              # Agent 工具实现210 文件)
  types/              # 类型定义12 文件)
  upstreamproxy/      # 上游代理
  utils/              # 工具函数577 文件)
  vendor/             # 第三方内联代码
  vim/                # Vim 编辑模式5 文件)
  voice/              # 语音输入

三、核心架构

3.1 启动流程

cli.tsx (快速路径分发)
  ├─ --version            → 直接输出,零模块加载
  ├─ --dump-system-prompt → 转储系统提示feature-gated
  ├─ --computer-use-mcp   → Chrome/Computer Use 模式
  ├─ --daemon-worker      → 后台守护进程
  ├─ remote-control       → 远程控制桥接
  └─ 默认交互模式         → main.tsx
                             ├─ 并行初始化MDM、Keychain 预取)
                             ├─ Commander.js CLI 解析
                             ├─ 插件/技能加载
                             ├─ MCP 服务器初始化
                             └─ REPL.tsx (主 UI)

入口文件详解:

  • ../src/entrypoints/cli.tsx — 主入口,实现零导入快速路径优化

    • 所有导入都是动态的,以最小化模块评估
    • 特殊模式处理Chrome 集成、daemon、bridge、后台会话、模板任务等
    • 环境特定优化CCR 容器分配 8GB 堆内存)
  • ../src/main.tsx — 完整初始化流程

    • 带性能分析检查点的重型初始化
    • 并行启动优化MDM 原始读取、Keychain 预取)
    • Commander.js CLI 设置
    • 会话管理和恢复
    • 插件/技能初始化
    • MCP 服务器管理
    • 分析和遥测设置

3.2 查询引擎 (../src/QueryEngine.ts)

QueryEngine 是整个 LLM 交互的核心:

  • 异步生成器模式submitMessage() 以 async generator 流式输出 SDK 消息
  • 系统提示组装 — 整合自定义提示、记忆机制、思考配置
  • 权限管理canUseTool() 包装,追踪拒绝情况
  • 对话循环 — 多轮对话,带 budget/turn 限制
  • 会话持久化 — API 响应前保存会话,防崩溃丢数据
  • Snip-boundary 回放 — 长会话的内存管理
  • 结构化输出执行 — 带重试限制
  • 错误追踪 — 基于 watermark 的 turn 范围界定

查询管道:

User Input → processUserInput() → QueryEngine.submitMessage()
                                        ↓
                                  System Prompt Assembly
                                        ↓
                                  Permission Checking
                                        ↓
                                  LLM API Call (query.ts)
                                        ↓
                                  Stream Response → SDK Messages

3.3 工具注册 (../src/tools.ts)

getAllBaseTools() 注册 80+ 工具,通过以下方式过滤:

  • Feature flag 条件编译
  • 权限上下文过滤
  • 模式过滤SIMPLE/REPL/普通)
  • 工具预设配置

关键函数:

  • getAllBaseTools() — 所有工具的真实来源
  • getTools() — 按权限上下文和模式过滤
  • assembleToolPool() — 组合内置 + MCP 工具,去重
  • 稳定排序以确保 prompt-cache 效率

3.4 命令注册 (../src/commands.ts)

getCommands() 加载 ~150 个命令,来源包括:

  • 内置命令
  • Bundled skills
  • 插件 skills
  • MCP 命令
  • Workflow 命令

关键特性:

  • 通过 lodash memoization 实现延迟求值
  • 多源命令组合
  • 技能缓存与粒度失效
  • REMOTE_SAFE_COMMANDS / BRIDGE_SAFE_COMMANDS 安全过滤
  • meetsAvailabilityRequirement() 基于认证/提供商的过滤

3.5 REPL 屏幕 (../src/screens/REPL.tsx)

  • 基于 React 的 Ink TUI支持虚拟滚动
  • 基于消息的状态管理,不可变更新
  • 复杂的权限处理auto-mode、sandbox、swarm
  • 实时流式 LLM 响应
  • 多模式输入处理normal、vim、search
  • 成本追踪和预算执行
  • 后台任务管理
  • Swarm/Teammate 多 Agent 协调

四、五大 API 提供商支持

提供商 环境变量 认证方式
Anthropic默认 ANTHROPIC_API_KEY 或 OAuth
OpenAI Codex CLAUDE_CODE_USE_OPENAI=1 OpenAI OAuth
AWS Bedrock CLAUDE_CODE_USE_BEDROCK=1 AWS credentials
Google Vertex AI CLAUDE_CODE_USE_VERTEX=1 gcloud ADC
Anthropic Foundry CLAUDE_CODE_USE_FOUNDRY=1 API Key

API 客户端架构:

../src/services/api/client.ts 是统一的 API 客户端工厂,根据配置自动路由到不同提供商。

Codex 适配器:

../src/services/api/codex-fetch-adapter.ts 负责将 Anthropic 消息格式转换为 OpenAI Codex 格式:

  • Anthropic base64 图像 schema 映射到 Codex input_image 载荷
  • tool_result 项路由为顶层 function_call_output 对象
  • 剥离 Anthropic 专有的 cache_control 注解
  • 拦截 Codex response.reasoning.delta SSE 帧并包装为 Anthropic <thinking> 事件
  • 绑定 response.completed 事件以追踪 token 使用量

支持的模型

Anthropic (Direct API) — 默认:

Model ID
Claude Opus 4.6 claude-opus-4-6
Claude Sonnet 4.6 claude-sonnet-4-6
Claude Haiku 4.5 claude-haiku-4-5

OpenAI Codex

Model ID
GPT-5.3 Codex (recommended) gpt-5.3-codex
GPT-5.4 gpt-5.4
GPT-5.4 Mini gpt-5.4-mini

环境变量参考

Variable Purpose
ANTHROPIC_API_KEY Anthropic API key
ANTHROPIC_AUTH_TOKEN Auth token (alternative)
ANTHROPIC_MODEL Override default model
ANTHROPIC_BASE_URL Custom API endpoint
ANTHROPIC_DEFAULT_OPUS_MODEL Custom Opus model ID
ANTHROPIC_DEFAULT_SONNET_MODEL Custom Sonnet model ID
ANTHROPIC_DEFAULT_HAIKU_MODEL Custom Haiku model ID
CLAUDE_CODE_OAUTH_TOKEN OAuth token via env
CLAUDE_CODE_API_KEY_HELPER_TTL_MS API key helper cache TTL
AWS_REGION / AWS_DEFAULT_REGION AWS region for Bedrock
ANTHROPIC_BEDROCK_BASE_URL Custom Bedrock endpoint
ANTHROPIC_FOUNDRY_API_KEY Foundry API key

五、Feature Flag 系统

构建系统 (scripts/build.ts)

  • 使用 bun:bundlefeature() 宏实现编译时死代码消除
  • Bun 编译带字节码生成
  • 宏系统提供构建时常量VERSION、BUILD_TIME 等)

构建变体

命令 输出 Feature Flags 描述
bun run build ./cli 仅 VOICE_MODE 生产构建
bun run build:dev ./cli-dev 仅 VOICE_MODE 开发版
bun run build:dev:full ./cli-dev 全部 54 个实验性 flag 完整解锁构建
bun run compile ./dist/cli 仅 VOICE_MODE 替代输出路径
自定义 自定义 指定 flags bun run ./scripts/build.ts --feature=ULTRAPLAN --feature=ULTRATHINK

54 个可工作 Feature Flags

交互与 UI14 个)

Flag 描述
AWAY_SUMMARY 离开键盘摘要行为
HISTORY_PICKER 交互式提示历史选择器
HOOK_PROMPTS 将 prompt/request 文本传入 hook 执行流程
KAIROS_BRIEF 简短转录布局和 BriefTool UX
KAIROS_CHANNELS 频道通知和回调
LODESTONE 深度链接/协议注册相关流程
MESSAGE_ACTIONS 消息操作入口点
NEW_INIT 新版 /init 决策路径
QUICK_SEARCH 提示快速搜索
SHOT_STATS 额外的 shot-distribution 统计视图
TOKEN_BUDGET Token 预算追踪和警告 UI
ULTRAPLAN 远程多 Agent 规划Opus 级别)
ULTRATHINK 深度思考模式
VOICE_MODE 语音切换、听写、语音通知和 UI

Agent/记忆/规划10 个)

Flag 描述
AGENT_MEMORY_SNAPSHOT 存储 Agent 记忆快照状态
AGENT_TRIGGERS 本地 cron/触发器工具
AGENT_TRIGGERS_REMOTE 远程触发器工具路径
BUILTIN_EXPLORE_PLAN_AGENTS 内置 explore/plan agent 预设
CACHED_MICROCOMPACT 通过查询和 API 流程缓存的微压缩状态
COMPACTION_REMINDERS 压缩和附件流程的提醒
EXTRACT_MEMORIES 查询后记忆提取 hooks
PROMPT_CACHE_BREAK_DETECTION 压缩/查询流程中的缓存中断检测
TEAMMEM 团队记忆文件和 watcher hooks
VERIFICATION_AGENT 验证 Agent 指导

工具/权限/远程13 个)

Flag 描述
BASH_CLASSIFIER 分类器辅助的 bash 权限决策
BRIDGE_MODE 远程控制 / REPL 桥接命令
CCR_AUTO_CONNECT CCR 自动连接默认路径
CCR_MIRROR 仅出站 CCR 镜像会话
CCR_REMOTE_SETUP 远程设置命令路径
CHICAGO_MCP Computer-use MCP 集成
CONNECTOR_TEXT 连接器文本块处理
MCP_RICH_OUTPUT 更丰富的 MCP UI 渲染
NATIVE_CLIPBOARD_IMAGE 原生 macOS 剪贴板图像快速路径
POWERSHELL_AUTO_MODE PowerShell 自动模式权限处理
TREE_SITTER_BASH tree-sitter bash 解析器后端
TREE_SITTER_BASH_SHADOW tree-sitter bash 影子发布路径
UNATTENDED_RETRY API 重试流程中的无人值守重试

支撑性 Flag17 个)

Flag 描述
ABLATION_BASELINE CLI 消融/基线入口开关
ALLOW_TEST_VERSIONS 允许原生安装程序中的测试版本
ANTI_DISTILLATION_CC 添加反蒸馏请求元数据
BREAK_CACHE_COMMAND 注入 break-cache 命令路径
COWORKER_TYPE_TELEMETRY 添加协作者类型遥测字段
DOWNLOAD_USER_SETTINGS 启用设置同步拉取路径
DUMP_SYSTEM_PROMPT 启用系统提示转储路径
FILE_PERSISTENCE 启用文件持久化管道
HARD_FAIL 启用更严格的失败/日志行为
IS_LIBC_GLIBC 强制 glibc 环境检测
IS_LIBC_MUSL 强制 musl 环境检测
NATIVE_CLIENT_ATTESTATION 添加原生证明标记文本
PERFETTO_TRACING 启用 perfetto 追踪 hooks
SKILL_IMPROVEMENT 启用技能改进 hooks
SKIP_DETECTION_WHEN_AUTOUPDATES_DISABLED 自动更新禁用时跳过更新检测
SLOW_OPERATION_LOGGING 启用慢操作日志
UPLOAD_USER_SETTINGS 启用设置同步推送路径

运行时注意事项

部分 flag 虽然编译通过但有运行时限制:

  • VOICE_MODE — 需要 claude.ai OAuth 和本地录制后端
  • NATIVE_CLIPBOARD_IMAGE — 仅在 macOS 且存在 image-processor-napi 时加速
  • BRIDGE_MODECCR_* — 运行时需要 claude.ai OAuth + GrowthBook 权限检查
  • KAIROS_BRIEFKAIROS_CHANNELS — 仅暴露已存在的 brief/channel 特定接口
  • CHICAGO_MCP — 运行时仍需 @ant/computer-use-* 外部包

34 个不可编译 Flag

易修复15 个)— 缺少单个文件或资产

Flag 缺失内容
AUTO_THEME ../src/utils/systemThemeWatcher.jsOSC 11 watcher
BG_SESSIONS ../src/cli/bg.js
BUDDY ../src/commands/buddy/index.js
BUILDING_CLAUDE_APPS ../src/claude-api/csharp/claude-api.md(文档资产)
COMMIT_ATTRIBUTION ../src/utils/attributionHooks.js
FORK_SUBAGENT ../src/commands/fork/index.js
HISTORY_SNIP ../src/commands/force-snip.js
KAIROS_GITHUB_WEBHOOKS ../src/tools/SubscribePRTool/SubscribePRTool.js
KAIROS_PUSH_NOTIFICATION ../src/tools/PushNotificationTool/PushNotificationTool.js
MCP_SKILLS ../src/skills/mcpSkills.js
MEMORY_SHAPE_TELEMETRY ../src/memdir/memoryShapeTelemetry.js
OVERFLOW_TEST_TOOL ../src/tools/OverflowTestTool/OverflowTestTool.js
RUN_SKILL_GENERATOR ../src/runSkillGenerator.js
TEMPLATES ../src/cli/handlers/templateJobs.js
TORCH ../src/commands/torch.js
TRANSCRIPT_CLASSIFIER ../src/utils/permissions/yolo-classifier-prompts/auto_mode_system_prompt.txt

中等修复16 个)— 缺少较大子系统部分

Flag 缺失内容
BYOC_ENVIRONMENT_RUNNER ../src/environment-runner/main.js
CONTEXT_COLLAPSE ../src/tools/CtxInspectTool/CtxInspectTool.js
COORDINATOR_MODE ../src/coordinator/workerAgent.js
DAEMON ../src/daemon/workerRegistry.js
DIRECT_CONNECT ../src/server/parseConnectUrl.js
EXPERIMENTAL_SKILL_SEARCH ../src/services/skillSearch/localSearch.js
MONITOR_TOOL ../src/tools/MonitorTool/MonitorTool.js
REACTIVE_COMPACT ../src/services/compact/reactiveCompact.js
REVIEW_ARTIFACT ../src/hunter.js
SELF_HOSTED_RUNNER ../src/self-hosted-runner/main.js
SSH_REMOTE ../src/ssh/createSSHSession.js
TERMINAL_PANEL ../src/tools/TerminalCaptureTool/TerminalCaptureTool.js
UDS_INBOX ../src/utils/udsMessaging.js
WEB_BROWSER_TOOL ../src/tools/WebBrowserTool/WebBrowserTool.js
WORKFLOW_SCRIPTS ../src/commands/workflows/index.js 及多个相关文件

大型缺失3 个)— 需要重建完整子系统

Flag 缺失内容
KAIROS ../src/assistant/index.js 及大部分助手栈
KAIROS_DREAM ../src/dream.js 及 dream-task 行为
PROACTIVE ../src/proactive/index.js 及主动任务/工具栈

六、核心子系统详解

6.1 状态管理 (../src/state/)

自定义 Store 模式(非 Redux/Zustand

核心文件:

  • store.tsgetState()/setState()/subscribe() 基础实现

    • 可选 onChange 回调用于状态变更追踪
    • Listener set 用于 React 风格订阅
  • AppStateStore.ts — 450+ 行的类型定义,涵盖:

    • 设置和配置
    • 任务状态管理tasks、agentNameRegistry
    • MCP 状态clients、tools、commands、resources
    • 插件状态enabled、disabled、errors、installation status
    • 远程桥接状态connection、session、polling
    • UI 状态expandedView、footerSelection、spinnerTip
    • 权限上下文和模式
    • 文件历史和归属追踪
    • Tungsten (tmux) 集成状态
    • Computer Use (chicago MCP) 状态
    • Team/swarm 上下文和收件箱管理
  • AppState.tsx — React 集成:

    • AppStateProvider 上下文组件
    • useAppState(selector) — 使用 useSyncExternalStore 的优化 hook
    • useSetAppState() — 非订阅 setter
    • useAppStateStore() — 直接 store 访问
    • useAppStateMaybeOutsideOfProvider() — 可选上下文的安全版本
  • selectors.ts — 纯选择器函数:

    • getViewedTeammateTask() — 获取当前查看的 teammate
    • getActiveAgentForInput() — 确定输入路由leader/viewed/named
  • onChangeAppState.ts — 状态变更副作用处理器:

    • 权限模式同步到 CCR/SDK
    • 模型设置持久化
    • 展开视图持久化
    • 设置变更时清除认证缓存

6.2 服务层 (../src/services/)

28 个主要服务区域:

API 客户端 (../src/services/api/)

  • client.ts — 统一 API 客户端工厂,支持五大提供商
  • codex-fetch-adapter.ts — Anthropic → OpenAI Codex 格式转换
  • OAuth token 刷新、自定义 headers、CCH 签名、代理支持
  • 错误处理、重试逻辑、使用量追踪

OAuth (../src/services/oauth/)

  • index.ts — OAuthService 类,实现 OAuth 2.0 Authorization Code Flow + PKCE
  • client.ts — OAuth 客户端操作(构建 auth URL、交换 code 为 token、获取 profile
  • auth-code-listener.ts — 本地 HTTP 服务器用于自动 OAuth 回调处理
  • crypto.ts — PKCE code verifier/challenge 生成
  • codex-client.ts — Codex 特定 OAuth 客户端

MCP 集成 (../src/services/mcp/)

  • client.ts — MCP 客户端管理
  • types.ts — MCP 服务器配置的全面类型定义stdio、SSE、HTTP、WebSocket、SDK、IDE 特定)
  • config.ts — MCP 配置管理
  • useManageMCPConnections.ts — MCP 连接生命周期的 React hook
  • channelPermissions.ts — MCP 频道权限处理Telegram、iMessage 等)
  • 支持 XAACross-App Access、elicitation 处理、资源管理

分析 (../src/services/analytics/) — 已 STUB

  • 所有函数都是空操作logEvent、attachAnalyticsSink 等)
  • 作为兼容性边界,使现有调用点保持不变而遥测被禁用
  • 包括datadog.ts、firstPartyEventLogger.ts、growthbook.ts、sink.ts

其他主要服务

服务 职责 状态
compact/ 上下文压缩auto-compact、micro-compact、reactive compact 完整
tools/ 工具执行编排StreamingToolExecutor、toolOrchestration 完整
plugins/ 插件操作和安装管理 完整
SessionMemory/ 会话记忆持久化和检索 完整
skillSearch/ 技能搜索,带远程状态管理 完整
remoteManagedSettings/ 远程托管设置同步 完整
extractMemories/ 从对话上下文中提取记忆 完整
lsp/ Language Server Protocol 集成 完整
contextCollapse/ 上下文窗口优化 完整
tips/ 用户提示和指导系统 完整
voice.ts 语音集成STT、keyterms、streaming 完整

6.3 IDE 桥接 (../src/bridge/)

远程控制架构:

  1. 注册环境到后端(机器名、目录、分支、仓库 URL
  2. 轮询获取 work items要执行的会话
  3. 为每个会话创建子进程
  4. 管理会话生命周期(心跳、停止、归档)
  5. 权限响应回传
  6. 支持多种生成模式单会话、worktree、同目录

核心文件:

  • bridgeApi.ts — Bridge API 客户端(环境注册/注销、工作轮询/确认、会话生命周期管理)
  • types.ts — 全面的桥接类型定义260+ 行)
  • bridgeConfig.ts — 桥接认证/URL 解析
  • remoteBridgeCore.ts — 远程桥接核心逻辑
  • replBridgeHandle.ts — REPL 桥接句柄实现
  • replBridgeTransport.ts — 桥接传输层
  • createSession.ts — 会话创建逻辑
  • sessionRunner.ts — 会话执行运行器
  • jwtUtils.ts — JWT token 工具
  • peerSessions.ts — 对等会话管理
  • trustedDevice.ts — 受信任设备认证

6.4 任务系统 (../src/tasks/)

7 种任务类型:

任务类型 用途
LocalShellTask 后台 Bash 命令执行
LocalAgentTask 本地 Agent 子进程(自主工作)
RemoteAgentTask 远程 CCR Agent通过 CCR API 执行)
InProcessTeammateTask 进程内 Teammate共享主进程
LocalWorkflowTask 预定义工作流脚本
MonitorMcpTask MCP 资源变更监控
DreamTask 异步/Dream 任务

任务管理特性:

  • 任务状态pending → in_progress → completed或 deleted
  • 后台任务:带 isBackgrounded 标志
  • 任务依赖:blocksblockedBy 关系
  • 任务所有权:可分配给特定 Agent
  • 团队任务列表:团队共享任务列表以协调工作

6.5 工具系统 (../src/tools/)

40+ 工具按功能分类:

文件操作

工具 功能
FileReadTool 读取文件支持图像、PDF、Jupyter notebook
FileWriteTool 写入文件(需先读取现有文件)
FileEditTool 精确字符串替换(支持 replace_all
GlobTool 快速文件模式匹配
GrepTool 基于 ripgrep 的内容搜索
NotebookEditTool Jupyter notebook 单元格编辑
SnipTool 代码片段管理
SendUserFileTool 向用户发送文件

Shell 和系统

工具 功能
BashTool 执行 bash 命令(支持后台执行、超时、沙盒)
PowerShellTool 执行 PowerShell 命令Windows
SleepTool 等待指定时间
TerminalCaptureTool 终端捕获

通信和规划

工具 功能
AskUserQuestionTool 向用户提问(支持多选、预览)
SendMessageTool 向其他 Agent 发送消息
EnterPlanModeTool 进入规划模式
ExitPlanModeTool 退出规划模式
BriefTool 向用户发送消息(主通信通道)

Web 和网络

工具 功能
WebFetchTool 获取 URL 内容HTML → markdown15 分钟缓存)
WebSearchTool Web 搜索
WebBrowserTool Web 浏览器面板
RemoteTriggerTool 管理远程 Agent 触发器

MCP

工具 功能
MCPTool 通用 MCP 工具包装器
ListMcpResourcesTool 列出 MCP 服务器资源
ReadMcpResourceTool 读取 MCP 服务器资源
McpAuthTool MCP 认证处理

Agent 和团队

工具 功能
AgentTool 启动专门的 Agent 子进程
TeamCreateTool 创建 Agent 团队
TeamDeleteTool 删除 Agent 团队

任务管理

工具 功能
TaskCreateTool 创建任务列表
TaskUpdateTool 更新任务
TaskGetTool 获取任务详情
TaskListTool 列出所有任务
TaskStopTool 停止后台任务
TaskOutputTool 查看后台任务输出

Git

工具 功能
EnterWorktreeTool 创建隔离的 git worktree
ExitWorktreeTool 退出 worktree

调度

工具 功能
CronCreateTool 创建定时任务
CronDeleteTool 删除定时任务
CronListTool 列出定时任务

配置和发现

工具 功能
ConfigTool 获取/设置配置
ToolSearchTool 获取延迟加载工具的 schema
DiscoverSkillsTool 发现可用技能
LSPTool LSP 服务器交互goToDefinition、findReferences 等)

验证

工具 功能
VerifyPlanExecutionTool 验证计划执行

工具延迟加载:

  • 工具可被延迟加载(不包含在初始 prompt 中)以减少上下文
  • 延迟加载的工具需要 ToolSearch 来获取 schema
  • MCP 工具始终延迟加载
  • 部分工具永不延迟Agent、Brief when KAIROS enabled

6.6 命令系统 (../src/commands/)

70+ 斜杠命令:

配置和设置

命令 功能
/config (别名: /settings) 打开配置面板
/keybindings 打开/创建快捷键配置文件
/add-dir 添加新的工作目录
/memory 编辑记忆文件
/sandbox 切换沙盒模式
/vim 切换 Vim/普通编辑模式
/terminal-setup 安装 Shift+Enter 换行绑定
/color 设置提示栏颜色
/effort 设置模型努力级别
/model 更改模型设置
/fast 切换快速模式
/theme 更改主题

任务和会话管理

命令 功能
/tasks (别名: /bashes) 列出和管理后台任务
/plan 启用规划模式或查看当前计划
/branch (别名: /fork) 在当前点创建对话分支
/resume (别名: /continue) 恢复之前的对话
/session 会话管理
/compact 清除对话历史但保留摘要
/exit 退出 CLI
/btw 快速旁问(不打断主对话)

信息和诊断

命令 功能
/help 显示帮助信息
/context 可视化当前上下文使用情况
/cost 显示当前会话的总成本和时长
/usage 显示使用信息
/stats 显示统计信息
/doctor 诊断和验证安装
/status 显示状态信息
/statusline 状态栏管理
/release-notes 显示发行说明

功能和集成

命令 功能
/ide 管理 IDE 集成
/agents 管理 Agent 配置
/skills 技能管理
/plugin 插件管理
/mcp MCP 管理
/voice 语音模式
/remote-control (别名: /rc) 远程控制会话
/chrome Chrome 集成

Git 和版本控制

命令 功能
/commit 创建 git 提交(技能)
/commit-push-pr 提交、推送并创建 PR
/diff 显示差异
/tag 标签管理

账户和认证

命令 功能
/login 登录账户
/logout 登出账户
/upgrade 升级到 Max
/permissions 管理权限
/hooks Hooks 管理
/init 初始化 Claude Code

6.7 技能系统 (../src/skills/)

13+ 个内置技能:

技能 功能
/update-config 通过 settings.json 配置 hooks 和自动化行为
/simplify 审查代码质量(启动 3 个并行 Agent
/loop 定时循环执行命令
/verify 验证代码变更
/remember 审查自动记忆并提议提升到 CLAUDE.md
/debug 调试技能
/keybindings 快捷键管理
/batch 批量操作
/stuck 获取解困帮助
/skillify 创建新技能
/claudeApi Claude API 文档和示例
/dream Dream 技能
/hunter 代码审查工件
/runSkillGenerator 运行技能生成器

技能系统架构:

  • 注册registerBundledSkill() 在启动时注册技能
  • 定义 — 技能包含 name、description、aliases、whenToUse、allowedTools、model、hooks
  • 引用文件 — 首次调用时提取到磁盘
  • 发现 — 技能出现在 Skill 工具提示中bundled 技能永不截断)
  • 调用 — 通过 Skill 工具或 /skill-name 斜杠命令

6.8 插件系统 (../src/plugins/)

  • 内置插件格式:{name}@builtin
  • 区别于市场插件:{name}@{marketplace}
  • 可提供 skills、hooks、MCP servers
  • 通过 /plugin UI 管理
  • 用户设置控制启用状态(默认:defaultEnabled ?? true

七、React Hooks (../src/hooks/)

104 个 React hooks 按类别:

数据获取和状态

  • useTasksV2useTaskListWatcher — 任务管理
  • useSettingsuseSettingsChange — 设置同步
  • useApiKeyVerification — API key 验证
  • useInboxPoller — 消息收件箱轮询
  • useDiffData — Diff 数据计算

UI/交互

  • useTypeahead — 输入自动完成
  • useSearchInput — 搜索功能
  • useArrowKeyHistory — 命令历史导航
  • useVirtualScroll — 虚拟滚动
  • usePasteHandler — 剪贴板粘贴处理
  • useBlink — 光标闪烁效果

IDE 集成

  • useIdeLogging — IDE 日志
  • useDiffInIDE — IDE diff 查看
  • useIdeAtMentioned — IDE @mention 处理
  • useLspPluginRecommendation — LSP 插件建议

功能特定

  • useVoiceuseVoiceIntegrationuseVoiceEnabled — 语音功能
  • useDirectConnect — 直接连接模式
  • useSSHSession — SSH 会话管理
  • useBackgroundTaskNavigation — 后台任务路由
  • useSwarmInitializationuseSwarmPermissionPoller — Agent swarm 管理

工具

  • useTerminalSize — 终端尺寸
  • useMemoryUsage — 内存监控
  • useScheduledTasks — 任务调度
  • useDynamicConfig — 动态配置加载

八、UI 组件 (../src/components/)

27 个主要组件目录:

核心 UI

  • ui/ — 基础 UI 组件(按钮、输入框等)
  • design-system/ — 设计系统组件

功能组件

  • tasks/ — 任务列表和管理 UI
  • messages/ — 消息显示和渲染
  • permissions/ — 权限请求对话框
  • mcp/ — MCP 服务器管理 UI
  • diff/ — 代码差异查看
  • shell/ — Shell/输出显示
  • memory/ — 记忆管理 UI
  • sandbox/ — 沙盒权限
  • agents/ — Agent 创建和管理

设置和配置

  • Settings/ — 设置面板
  • ManagedSettingsSecurityDialog/ — 托管设置安全对话框

集成

  • groove/ — Grove 集成
  • teams/ — 团队协作
  • skills/ — 技能管理
  • wizard/ — 引导向导
  • LspRecommendation/ — LSP 插件建议

专用

  • TrustDialog/ — 信任/安全对话框
  • FeedbackSurvey/ — 用户反馈
  • Spinner/ — 加载旋转器
  • PromptInput/ — 输入提示组件
  • HelpV2/ — 帮助系统
  • LogoV2/ — Logo 组件

九、构建与依赖

运行时依赖(关键)

类别
AI SDK @anthropic-ai/sdk, @anthropic-ai/bedrock-sdk, @anthropic-ai/vertex-sdk, @anthropic-ai/foundry-sdk
Agent SDK @anthropic-ai/claude-agent-sdk
MCP @modelcontextprotocol/sdk, @anthropic-ai/mcpb
终端 UI react, ink, chalk, cli-highlight
搜索 fuse.js, picomatch
协议 vscode-jsonrpc, vscode-languageserver-protocol
可观测性 @opentelemetry/* (完整 suite但遥测已 stub)
验证 zod, ajv
图片 sharp
网络 axios, undici, ws, https-proxy-agent
CLI @commander-js/extra-typings
其他 diff, marked, yaml, lodash-es, lru-cache, semver, chokidar

开发依赖

  • @types/bun — Bun 类型定义
  • typescript ^6.0.2 — TypeScript 编译器

十、Git 状态

当前仓库只有 1 个 commit

a4deee0 因无法 fork手动迁移代码 source: https://github.com/paoloanzn/free-code

76 个未跟踪文件/目录包括许多新增的子系统文件assistant、buddy、fork、workflows、daemon、ssh 等),对应于之前不可编译但已被手动补充代码的 feature flags。

3 个已修改文件bun.lockpackage.jsonscripts/build.ts


十一、架构亮点与设计模式

  1. 编译时 Feature Flagbun:bundlefeature() 宏实现真正的死代码消除,非运行时 if/else
  2. 异步生成器查询管线 — QueryEngine 用 async generator 实现流式 LLM 响应
  3. 多 Agent 协作 — Agent Swarm 支持 Team 创建、共享任务列表、跨会话消息传递
  4. 工具延迟加载 — 大型工具集通过 ToolSearch 按需加载 schema优化 context window
  5. 多提供商 API 抽象 — 统一接口适配 5 个 API 提供商
  6. 自定义状态管理 — 轻量 store + useSyncExternalStore非 Redux
  7. IDE 桥接轮询架构 — 远程控制通过环境注册 + work polling 实现
  8. 上下文压缩 — 多级压缩策略auto-compact、micro-compact、reactive-compact
  9. MCP 协议完整实现 — 支持 stdio、SSE、HTTP、WebSocket、SDK 等多种传输方式
  10. 沙盒安全 — 文件/网络访问控制,支持 macOS/Linux 平台

十二、工具函数层 (../src/utils/)

最大的源码目录577 文件178,924 行):

模型管理 (../src/utils/model/)

  • model.ts — 核心模型选择逻辑、别名、规范化
  • modelStrings.ts — 模型名称常量和映射
  • providers.ts — API 提供商检测
  • modelCapabilities.ts — 模型能力标志
  • modelAllowlist.ts — 模型访问控制
  • validateModel.ts — 模型验证
  • modelCost.ts — 模型定价信息
  • check1mAccess.ts — 1M 上下文访问检查

设置管理 (../src/utils/settings/)

  • settings.ts — 设置加载和持久化
  • validation.ts — 设置验证
  • types.ts — 设置类型定义
  • applySettingsChange.ts — 设置变更应用
  • permissionValidation.ts — 权限验证
  • mdm/ — 移动设备管理集成

其他重要工具模块

  • auth.ts — 认证和凭证管理67KB1800+ 行)
  • attachments.ts — 附件处理127KB
  • analyzeContext.ts — 上下文分析43KB
  • ansiToPng.ts — ANSI 转 PNG215KB
  • bash/ — Bash 命令执行
  • permissions/ — 权限系统
  • config.ts — 配置管理
  • todo/ — TODO 列表管理
  • commitAttribution.ts — Git 提交归属

报告生成日期2026-04-05