Logo
热心市民王先生

OpenCode Server 功能研究

技术研究 OpenCode 架构分析

深入分析 OpenCode Server 的功能定位、架构设计、与 CLI 的关系及典型应用场景

摘要

OpenCode Server 是 OpenCode CLI 工具提供的核心后端服务,采用客户端-服务器架构设计。当执行 opencode 命令时,系统会同时启动 TUI(终端用户界面)作为客户端,以及一个 HTTP Server 作为后端服务。Server 暴露完整的 OpenAPI 3.1 规范接口,支持会话管理、消息处理、文件操作、MCP/LSP 服务等核心功能。

这种架构设计解决了多个关键问题:多客户端支持(TUI、Web、IDE 插件可同时连接)、远程开发场景(Server 可部署在远程服务器)、程序化访问(通过 HTTP API 调用)、资源共享(避免 MCP/LSP 重复初始化)、企业部署(集中管理和访问控制)。

Server 通过 opencode serve 命令启动,支持端口配置、主机绑定、CORS 设置、HTTP Basic Auth 认证以及 mDNS 服务发现。典型使用场景包括远程开发、团队共享服务、自动化脚本集成和 IDE 深度集成。


目录


核心发现

架构关系

┌─────────────────────────────────────────────────────┐
│                  OpenCode 架构                       │
├─────────────────────────────────────────────────────┤
│                                                     │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐            │
│  │   TUI   │  │   Web   │  │   IDE   │  客户端层  │
│  └────┬────┘  └────┬────┘  └────┬────┘            │
│       └────────────┼────────────┘                  │
│                    │ HTTP/OpenAPI                  │
│                    ▼                               │
│  ┌─────────────────────────────────────┐          │
│  │           OpenCode Server            │  服务层  │
│  │  Session │ Message │ File │ MCP/LSP │          │
│  └─────────────────────────────────────┘          │
│                    │                               │
│                    ▼                               │
│  ┌─────────────────────────────────────┐          │
│  │     AI Provider (Claude/GPT/etc.)   │  能力层  │
│  └─────────────────────────────────────┘          │
│                                                     │
└─────────────────────────────────────────────────────┘

关键问答

问题答案
Server 有什么功能?提供 HTTP API,包括会话管理、消息处理、文件操作、配置管理、MCP/LSP 集成等
与 CLI 是什么关系?CLI 启动时同时启动 TUI 和 Server,Server 是后端服务,CLI 是入口点
为什么有这个特性?支持多客户端、远程开发、程序化访问、资源共享、企业部署
典型使用场景?远程开发、团队共享、自动化脚本、IDE 集成

功能对比

启动方式Server客户端用途
opencode✅ 自动启动✅ TUI标准终端交互
opencode serve✅ 独立启动❌ 无无界面服务模式
opencode web✅ 自动启动✅ Web UIWeb 界面交互
opencode attach❌ 连接已有✅ TUI连接远程 Server

核心参考资料