从宏观架构到微观代码的完整学习记录。
learn-opencode/
├── docs/ # 📚 学习笔记与分析文档
├── source/
│ └── opencode/ # 🔗 OpenCode 源码 (Git Submodule)
├── examples/ # 🧪 实验代码
└── README.md # 本文档
首次学习?从这里开始:
-
👉 快速入门指南 ⏱️ 30分钟
- 理解 OpenCode 是什么
- 运行你的第一次对话
- 掌握核心概念
-
👉 学习路径 ⏱️ 选择适合你的路径
- 路径 A: 快速了解 (1-2小时)
- 路径 B: 深入开发 (1-2天)
- 路径 C: 扩展生态 (半天)
-
👉 文档索引 📚 查找所有文档
首次克隆本项目后,请运行以下命令初始化源码子模块:
git submodule update --init --recursive同步 OpenCode 最新代码:
git submodule update --remote
(图解: Desktop 启动 Server,加载 Plugin; Web App 通过 SDK 与 Server 实时同步状态)
| 包名 | 类型 | 描述 | 分析文档 |
|---|---|---|---|
packages/opencode |
Core | 核心大脑。Agent 编排、会话管理。 | 👉 Read |
packages/sdk |
Bridge | 通讯神经。HTTP/SSE 协议封装。 | 👉 Read |
packages/console |
SaaS | 管理后台与云服务。SST/SolidStart 架构。 | 👉 Read |
packages/app |
UI | 前端界面。SolidJS 实现的状态镜像。 | 👉 Read |
packages/desktop |
Native | 桌面容器。Tauri + Sidecar 模式。 | 👉 Read |
packages/ui |
Design | 组件库与 Pierre 代码渲染引擎。 | 👉 Read |
packages/web |
Docs | 官方文档站点 (Astro)。 | 👉 Read |
packages/plugin |
Ext | 扩展接口。Hooks 定义与赋能。 | 👉 Read |
packages/slack |
Bot | Slack 机器人集成。演示 SDK 的高级用法。 | 👉 Read |
| 包名 | 类型 | 描述 | 分析文档 |
|---|---|---|---|
packages/extensions |
Editor | Zed 编辑器插件 (ACP 协议)。 | 👉 Read |
packages/util |
Lib | 通用工具函数库。 | 👉 Read |
packages/function |
Lambda | Console 云函数定义。 | 👉 Read |
| 编辑器 | 协议 | 描述 | 文档 |
|---|---|---|---|
| VS Code | HTTP | 内置终端 + 文件引用注入。 | 👉 Read |
| Zed | ACP | 原生 Agent 客户端协议。 | 👉 Read |
| 平台 | 触发方式 | 描述 | 文档 |
|---|---|---|---|
| GitHub Action | /opencode 评论 |
Issue/PR 自动响应和代码修改。 | 👉 Read |
深入分析 packages/opencode/src/ 的关键子模块:
| 模块 | 描述 | 文档 |
|---|---|---|
| Agent | Agent 定义 - 内置和自定义 Agent 配置。 | 👉 Read |
| Permission | 权限系统 - 工具执行前的用户授权。 | 👉 Read |
| Snapshot | 快照系统 - Git 变更追踪和回滚。 | 👉 Read |
| Skill | 技能系统 - SKILL.md 指令模板加载。 | 👉 Read |
| Share | 分享功能 - 会话云端同步。 | 👉 Read |
| PTY | 终端模拟器 - WebSocket 连接管理。 | 👉 Read |
| Bus | 事件总线 - 发布/订阅解耦通信。 | 👉 Read |
| Config | 配置系统 - 多层级配置加载合并。 | 👉 Read |
| Project | 项目上下文 - 实例状态隔离。 | 👉 Read |
| Utilities | 辅助工具 - file、id、env 等基础设施。 | 👉 Read |
(完整索引请查看 internals 目录)