项目结构与组织
2026/4/27大约 1 分钟
项目结构与组织
单体仓库布局
packages/
├── opencode/ # 核心 CLI 和服务器逻辑
├── app/ # 共享 Web UI 组件 (SolidJS)
├── desktop/ # 原生桌面应用 (Tauri)
├── web/ # Web 界面
├── console/ # 控制台相关包
├── sdk/ # SDK (JavaScript 等)
├── plugin/ # 插件系统 (@opencode-ai/plugin)
├── script/ # 构建和工具脚本
├── util/ # 共享工具
├── ui/ # UI 组件库
├── function/ # 无服务器函数
├── identity/ # 身份验证/认证
├── enterprise/ # 企业功能
├── extensions/ # 扩展和集成
├── containers/ # 容器/Docker 相关
├── docs/ # 文档
└── slack/ # Slack 集成核心包:packages/opencode/
src/
├── cli/ # 命令行界面和 TUI
├── server/ # API 服务器实现
├── agent/ # AI 智能体逻辑 (build, plan 智能体)
├── session/ # 会话管理
├── tool/ # 内置工具和功能
├── lsp/ # 语言服务器协议集成
├── mcp/ # 模型上下文协议支持
├── provider/ # AI 提供商集成
├── auth/ # 身份验证
├── config/ # 配置管理
├── storage/ # 数据持久化
├── plugin/ # 插件系统
├── project/ # 项目/工作区管理
├── file/ # 文件操作
├── shell/ # Shell 集成
├── pty/ # 伪终端支持
└── util/ # 工具函数关键配置文件
package.json- 根工作区配置,使用 Bun 包管理器packages/*/package.json- 各个包的配置.vscode/- VSCode 设置和调试配置.github/- GitHub 工作流和问题模板.opencode/- OpenCode 特定配置和智能体turbo.json- Turbo 构建系统配置(隐含)
开发模式
- 工作区包使用
workspace:*作为内部依赖 - 构建脚本位于
packages/opencode/script/ - 测试必须从包目录运行,不能从仓库根目录运行
- SDK 生成通过
./script/generate.ts在 API 更改后执行 - 单一可执行文件通过
./packages/opencode/script/build.ts --single构建
重要约定
- 默认分支是
dev(不是main) - 测试有防护措施,防止从仓库根目录运行
- 适用时使用并行工具执行
- 优先使用 Bun API 而非 Node.js 等价物
- 遵循 TypeScript 严格模式实践