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): ~8,100 tokens Generated: 2026-04-01 Book: Claude Code VS OpenCode: Architecture, Design & The Road Ahead

附录A:OpenCode、OMO 与 Claude Code 工具清单

本附录将三套系统的主要工具面统一放进一张对照表中。OpenCode 提供开源基线;Oh-My-OpenCode(OMO)继承这套基线并重点增强多智能体编排、后台任务、Session 检索、Skill-MCP 与 AST 级代码操作;Claude Code 则在商业产品层面扩展出更完整的任务、团队、工作流、浏览器、MCP 认证与 UI 联动能力。

表中的 “Yes” 表示一等公民能力;“Conditional” 表示依赖功能开关、运行模式或环境;“Inherited” 表示 OMO 通过 OpenCode 继承该能力后再增强。

Tool NameOpenCodeOMOClaude CodeDescription
bashYesInheritedYes在工作区内执行 shell 命令。
powershellNoNoConditionalWindows 原生命令执行。
read / file readYesInheritedYes安全读取文件或目录。
write / file writeYesInheritedYes直接创建或覆盖文件。
edit / file editYesInherited 或被覆盖Yes对已有文件做结构化修改。
multieditYesInherited无单独公开工具一次提交多个同文件编辑。
apply_patchYesInherited无单独公开工具统一 diff/patch 风格修改。
notebook editNoNoYes面向 Notebook 的单元级编辑。
ls / list directoryYesInherited被 read/glob 吸收轻量目录列举。
external-directoryYesInherited无直接对应扩展默认项目根之外的访问范围。
globYesEnhancedYes基于路径模式查找文件。
grepYesEnhancedYes基于正则或文本查找内容。
codesearchYesInheritedToolSearch 部分类似偏代码语义的搜索。
ast-grep searchNoYes无一等公民工具基于 AST 的结构化代码搜索。
ast-grep replaceNoYes无一等公民工具基于 AST 的结构化代码替换。
lspConditional被拆成多个工具Conditional语言服务器查询与重构。
lsp_goto_definitionNoYes被 LSPTool 吸收跳转符号定义。
lsp_find_referencesNoYes被 LSPTool 吸收查找符号全部引用。
lsp_symbolsNoYes被 LSPTool 吸收文档或工作区符号查询。
lsp_diagnosticsNoYes被 LSPTool 吸收收集错误、警告、提示。
lsp_prepare_renameNoYes被 LSPTool 吸收检查 rename 是否可执行。
lsp_renameNoYes被 LSPTool 吸收跨工作区重命名符号。
webfetchYesInheritedYes抓取网页并提炼内容。
websearchYesInherited + provider 可配Yes执行网页搜索并返回结果。
web browserNoNoConditional交互式浏览器导航与提取。
look_atNoYes部分由 file/browser 工具替代快速查看图片、PDF、媒体文件。
question / ask userConditionalInheritedYes向用户发起补充提问或确认。
skillYesUpgradedYes加载 Skill 或命令包。
skill_mcpNoYes无直接对应调用 Skill 内嵌的 MCP 资源/工具。
slashcommandNoYes原生命令系统但表面不同以工具形态执行 slash command。
taskYes被 delegate-task 语义替代无完全等价物生成一个子任务/子 Agent。
call_omo_agentNoYesAgentTool 类似调用 OMO 专业化子智能体。
background_outputNoYes与 TaskOutputTool 类似读取后台任务输出。
background_cancelNoYes与 TaskStopTool 类似取消一个或多个后台任务。
task_createNoOMO 条件开启Yes创建结构化后台任务。
task_getNoOMO 条件开启Yes获取单个任务状态与元数据。
task_listNoOMO 条件开启Yes列出任务。
task_updateNoOMO 条件开启Yes更新任务信息。
task_outputNo由 background_output 对应Yes获取任务输出或记录。
task_stopNo由 background_cancel 对应Yes停止运行中的任务。
todo writeYesInheritedYes维护结构化 todo 列表。
todo read内部/有限Inherited更偏 UI/Task List读取已保存的 todo 状态。
plan enterConditionalInheritedYes进入计划模式。
plan exitConditionalInheritedYes退出计划模式并恢复执行。
verify plan executionNoNoConditional校验执行是否符合计划。
agent tool无独立公开工具call_omo_agentYes启动另一个 agent/teammate。
team createNoNoConditional创建多智能体团队/Swarm。
team deleteNoNoConditional删除团队/Swarm。
send messageNoNoConditional向其他 peer/agent 发送消息。
list peersNoNoConditional列出可通信 peer。
workflowNoNoConditional触发复用型 workflow 脚本。
config toolNoNoConditional在运行中读取/修改配置。
MCP tool invocation通过 MCP 注册通过 MCP + Skill MCPYes调用 MCP server 暴露的工具。
list MCP resourcesNoNoYes列出 MCP 资源。
read MCP resourceNoNoYes读取指定 MCP 资源 URI。
MCP authNoNoYes处理 MCP 认证与连接批准。
REPLNoNoConditional进程内交互式编程壳。
interactive_bash / terminal captureNoYesConditional持久终端、tmux 或终端快照。
snip / briefNoNoYes裁剪上下文、压缩历史。
sleep / cron / monitorNoNoConditional时间驱动自动化与监控。
push notificationNoNoConditional主动通知用户。
subscribe PRNoNoConditional订阅 PR 更新。
tungsten / review artifactNoNoConditional专用内部工具或工件审查流。

分类说明

1. 文件操作层

OpenCode 的文件操作层最干净:readwriteeditmultieditapply_patch。它几乎就是一个最小可用的 Agent-Computer Interface。OMO 继承这套能力,但在实验模式下可以用 hashline editor 替换默认 edit。Claude Code 的文件工具则更产品化,不仅有读写编辑,还集成了 notebook 编辑、差异展示、拒绝消息反馈等 UI 配套。

2. 搜索层

三者都承认搜索是编码智能体的核心能力。OpenCode 提供 globgrepcodesearchwebfetchwebsearch。OMO 在此基础上增加 AST 搜索/替换、Session 检索和拆分式 LSP 工具。Claude Code 则提供 GlobToolGrepToolWebFetchToolWebSearchTool、MCP 资源浏览,以及部分版本中的浏览器工具。趋势很明确:仅靠 grep 已经不够,智能体需要文件级、语法级、网络级三层检索。

3. 编排层

OpenCode 的 taskskill 说明了开源基线的组合能力。OMO 把“组合”升级成“编排”:call_omo_agent、后台任务、slashcommand、skill_mcp、tmux 可视化、多 Session 管理。Claude Code 则把同类需求产品化为 Task 系列工具、Team 工具、Workflow 工具和 agent 间消息能力。换句话说,OMO 加的是多智能体深度,Claude Code 加的是平台级广度。

4. 交互与长任务

OpenCode 整体仍偏 request/response。OMO 明确拥抱长时任务与可视化运行:interactive_bashbackground_outputbackground_cancel、session manager 都是为了让 Agent 处理持续性工作。Claude Code 通过 Task、REPL、TerminalCapture、Cron、通知系统达到类似效果。这说明“真正的软件工程”往往不是一次性回答,而是可监控、可恢复、可中断的过程。

5. LSP 与结构化代码理解

OpenCode 提供实验性的单体 LSP 工具。OMO 将其拆成更原子化的 goto_definitionfind_referencesrenamediagnostics 等工具,更适合让模型按需组合。Claude Code 也有强 LSP 支持,但通过统一的 LSPTool 和大型 service 层来承载。这里体现的是一个经典工程权衡:面向产品时大工具更利于体验,面向 Agent 稳定性时小工具往往更利于组合和纠错。

6. 特征性工具

OMO 的标志性工具是那些把“编排本身”暴露为一等能力的工具:多 Agent 调用、后台输出读取、Skill-MCP 路由、tmux 控制、Session 检索、AST 搜索。Claude Code 的标志性工具则是商业运行时的外显:Teams、Workflow、Browser、MCP Auth、Push、订阅、复杂任务管理。OpenCode 则仍然是最适合作为“本体”来理解什么是编码智能体最小核心的系统。