Logo
热心市民王先生

核心能力验证

技术研究 OpenCode API验证

验证 OpenCode Server 的核心功能、API 端点、配置选项与技术能力

API/接口分析

Server 启动命令

OpenCode 通过 opencode serve 命令启动一个无界面的 HTTP 服务器:

opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]

关键配置选项

参数描述默认值
--port监听端口4096
--hostname监听主机名127.0.0.1
--mdns启用 mDNS 服务发现false
--mdns-domainmDNS 服务域名opencode.local
--cors允许的浏览器源[](可多次指定)

认证机制

Server 支持通过环境变量配置 HTTP Basic Auth:

OPENCODE_SERVER_PASSWORD=your-password opencode serve
  • 用户名默认为 opencode,可通过 OPENCODE_SERVER_USERNAME 覆盖
  • 认证机制同时适用于 opencode serveopencode web

API 端点概览

OpenAPI 规范

Server 发布 OpenAPI 3.1 规范,可通过以下地址访问:

http://<hostname>:<port>/doc

例如 http://localhost:4096/doc,可在 Swagger Explorer 中查看完整的接口定义。

核心端点分类

Server 提供的 HTTP API 涵盖以下功能域:

1. 全局接口 (Global)

方法路径描述
GET/global/health获取服务器健康状态和版本
GET/global/event获取全局事件流(SSE)

2. 会话管理 (Sessions)

方法路径描述
GET/session列出所有会话
POST/session创建新会话
GET/session/:id获取会话详情
DELETE/session/:id删除会话
POST/session/:id/fork分叉会话
POST/session/:id/abort中止运行中的会话

3. 消息处理 (Messages)

方法路径描述
GET/session/:id/message列出会话中的消息
POST/session/:id/message发送消息并等待响应
POST/session/:id/prompt_async异步发送消息(不等待)
POST/session/:id/command执行斜杠命令
POST/session/:id/shell运行 Shell 命令

4. 文件操作 (Files)

方法路径描述
GET/find?pattern=<pat>在文件中搜索文本
GET/find/file?query=<q>按名称查找文件
GET/find/symbol?query=<q>查找工作区符号
GET/file?path=<path>列出文件和目录
GET/file/content?path=<p>读取文件内容

5. 配置管理 (Config)

方法路径描述
GET/config获取配置信息
PATCH/config更新配置
GET/config/providers列出提供商和默认模型

6. MCP & LSP

方法路径描述
GET/mcp获取 MCP 服务器状态
POST/mcp动态添加 MCP 服务器
GET/lsp获取 LSP 服务器状态

7. TUI 控制

方法路径描述
POST/tui/append-prompt追加文本到提示框
POST/tui/submit-prompt提交当前提示
POST/tui/execute-command执行命令

能力差距分析

原生支持情况

能力需求是否支持说明
无界面运行✅ 完全支持opencode serve 命令
HTTP API 访问✅ 完全支持OpenAPI 3.1 规范
远程访问✅ 支持通过 --hostname 0.0.0.0
认证保护✅ 支持HTTP Basic Auth
多客户端连接✅ 支持架构设计支持
CORS 配置✅ 支持--cors 参数
服务发现✅ 支持mDNS 协议
事件流✅ 支持SSE 端点

无需变通方案

OpenCode Server 的功能设计完整覆盖了常见的使用需求,无需额外的变通方案即可实现:

  1. 远程部署和访问
  2. 多客户端共享
  3. 程序化调用
  4. IDE 集成
  5. 自动化脚本

验证方法

功能验证步骤

# 1. 启动 Server
opencode serve --port 4096 --hostname 0.0.0.0

# 2. 查看健康状态
curl http://localhost:4096/global/health

# 3. 查看 OpenAPI 文档
# 浏览器打开 http://localhost:4096/doc

# 4. 列出会话
curl http://localhost:4096/session

# 5. 带认证启动
OPENCODE_SERVER_PASSWORD=secret opencode serve

关键发现

OpenCode 采用客户端-服务器架构,这是理解 Server 功能的关键:

当你运行 opencode 时,它会启动 TUI 和一个 Server。TUI 是客户端,与 Server 通信。Server 暴露 OpenAPI 3.1 规范端点。

这种架构设计的意义在于:

  • 解耦界面与逻辑:TUI、Web、IDE 插件都可以作为客户端
  • 支持远程访问:Server 可部署在远程机器
  • 程序化调用:任何 HTTP 客户端都可以调用 API

参考资料