本系列文档基于 OpenCode v1.17.8 开源源码分析(MIT 许可,25 包 TypeScript monorepo + Bun runtime + OpenTUI/SolidJS TUI),提炼出对 Qwen Code 等 Code Agent 开发者有参考价值的架构设计和实现模式。
阅读对象:正在开发或改进 CLI Code Agent 的工程师
OpenCode 的独特价值:多客户端架构(TUI + Web + Desktop 共享后端)、21 种 Hook 类型、38 种 LSP 集成、100+ Provider 动态加载。这些是 Qwen Code 和 Claude Code 都没有的设计。
| 文档 | 开发者关注点 | Qwen Code 对标 |
|---|---|---|
| 00-项目演进历史 | 个人项目→公司接手→双重重写时间线 | 重构 / 演进经验 |
| 01-概述与对标 | 能力矩阵、架构差异、独特设计 | 功能差距 + 可借鉴模式 |
| 02-命令与工具 | 16 工具 + 7 代理 + 命令面板 | 工具/代理架构 |
| 03-技术架构 | 多客户端、LSP 集成、认证、插件 Hook | 插件系统 + LSP + 多客户端路线 |
| 04-Hook 与插件 | 21 种 Hook 类型、npm 插件、tool.definition | Hook 扩展性 + 工具定义修改 |
| 05-会话与快照 | Session Fork/Restore、Git 快照、云端 Share、SQLite | Session 管理 + 文件状态追踪 |
| 06-Provider 动态加载 | models.dev 动态发现、构建时快照、内置 Provider | 零代码接入新 Provider |
| 07-权限系统 | 命令 token 解析、Doom Loop、文件时间锁 | 安全机制参考 |
| EVIDENCE.md | 源码分析原始证据 | — |
| 维度 | OpenCode | Claude Code | Qwen Code | Gemini CLI |
|---|---|---|---|---|
| 定位 | 多客户端平台 | 终端深度 Agent | 终端 Agent(Gemini fork) | 终端 Agent |
| 客户端 | TUI + Web + Desktop | TUI + Remote Control | TUI + WebUI + VSCode | TUI |
| Provider 数 | 100+(models.dev 动态) | 1(Claude) | 10+(多 Provider) | 1(Gemini) |
| LSP 集成 | 38 种语言 | 实验性 | 实验性 | 无 |
| Formatter | 26 种 | 无 | 无 | 无 |
| Hook 类型 | 21 种 | 27 事件 × 6 处理器 | 20 事件 × command/JS | ~11 事件 × command |
| 许可证 | MIT | 专有 | Apache 2.0 | Apache 2.0 |
- 仓库:github.com/anomalyco/opencode
- 许可证:MIT
- 当前版本:v1.17.8(2026-06,
dev分支源码) - 开发:原作者 Kujtim Hoxha(2025-03 起)→ Anomaly Innovations / SST 团队接手(2025-04-30 起,Dax Raad 主导)
- Stars:149,294 / Forks:17,128 / Commits:11,750(2026-04-25 实测)