Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Model: openai/gpt-5.4 Token Usage(estimated): ~3,900 tokens Generated: 2026-04-01 Book: Claude Code VS OpenCode: Architecture, Design & The Road Ahead

附录C:源码路径对照表

下面这张表把同一个架构概念映射到三个代码库中的主要实现入口。这里的路径不是“穷举所有依赖”,而是“给读者最快建立源码心智地图的第一跳”。

ConceptOpenCodeOMOClaude Code
Entry pointpackages/opencode/src/index.tssrc/index.tssrc/main.tsx, src/entrypoints/cli.tsx
Core looppackages/opencode/src/session/processor.ts, session/llm.ts宿主循环沿用 OpenCode;插件拦截在 src/plugin/chat-message.ts, src/plugin/messages-transform.tssrc/QueryEngine.ts, src/query.ts
Tool registrypackages/opencode/src/tool/registry.tssrc/plugin/tool-registry.ts, src/create-tools.tssrc/tools.ts, src/Tool.ts
Tool implementationspackages/opencode/src/tool/*src/tools/*src/tools/*
Agentspackages/opencode/src/agent/*src/agents/*,重点看 builtin-agents.ts, dynamic-agent-prompt-builder.tssrc/tools/AgentTool/*, src/coordinator/*, src/buddy/*
Sessionspackages/opencode/src/session/*src/features/claude-code-session-state/*, src/features/background-agent/*, src/features/boulder-state/*src/utils/sessionStorage.ts, src/utils/sessionState.ts, src/tasks/*
Providers / model layerpackages/opencode/src/provider/*主要继承 OpenCode;Agent 级模型选择在 src/agents/* 与 config schema 中src/utils/model/*, src/services/tokenEstimation.ts
MCPpackages/opencode/src/mcp/*src/mcp/*, src/features/skill-mcp-manager/*, src/features/claude-code-mcp-loader/*src/services/mcp/*
Permissionspackages/opencode/src/permission/*继承宿主权限模型,并在 src/config/schema/internal/permission.ts 做扩展src/utils/permissions/*, yoloClassifier.ts, bashClassifier.ts
Plugins / extension surfacepackages/opencode/src/plugin/*插件入口 src/index.ts;兼容加载器位于 src/features/claude-code-plugin-loader/*src/services/plugins/*, src/plugins/*
HooksOpenCode 的 hook 点由 packages/opencode/src/plugin/index.ts 接入具体管线在 src/plugin/tool-execute-before.ts, tool-execute-after.ts, messages-transform.ts, event.ts 以及 src/hooks/*UI/runtime hooks 在 src/hooks/*;hook schema 在 src/entrypoints/sdk/coreSchemas.ts
UI / TUIpackages/opencode/src/cli/*cli/cmd/tui/*大部分 UI 借宿主;tmux 多 Agent 可视化位于 src/features/tmux-subagent/*src/components/*, src/ink/*, src/screens/*
Configpackages/opencode/src/config/config.ts, paths.ts, tui-schema.tssrc/plugin-config.ts, src/config/schema/*src/utils/config.ts, src/utils/settings/*, src/services/settingsSync/*
Commandspackages/opencode/src/command/*src/features/builtin-commands/*, src/tools/slashcommand/*src/commands/*, src/commands.ts
Skillspackages/opencode/src/skill/*src/features/builtin-skills/*, src/features/opencode-skill-loader/*, src/tools/skill/*src/skills/*, src/tools/SkillTool/*

建议阅读顺序

如果你的目标不是立刻提交代码,而是先理解架构,我建议按下面顺序读:

  1. OpenCodesession/processor.tstool/registry.tsconfig/config.ts
  2. OMOsrc/index.tssrc/plugin/tool-registry.tssrc/agents/builtin-agents.tssrc/config/schema/oh-my-opencode-config.ts
  3. Claude Codesrc/tools.tssrc/QueryEngine.tssrc/utils/config.tssrc/services/mcp/*

这个顺序本质上是在沿着控制流往外走:先看执行引擎,再看能力表,再看策略与配置。即便某些术语如“context compaction”“agent orchestration”不直接出现在传统 CS 教科书中,这种分层方式仍然完全符合经典系统设计逻辑:执行层、接口层、控制层。