跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

启动与连接服务端

理解 OpenCode 服务生命周期、监听参数、认证、OpenAPI 和事件流。

opencode serve 启动无 TUI 的 HTTP 服务。普通 opencode 也会启动服务,并让 TUI 作为客户端连接;已有 TUI 运行时再次执行 serve 会新建服务,不是连接原服务。

启动参数

opencode serve
参数serve 默认值
--port4096
--hostname127.0.0.1
--mdnsfalse
--mdns-domainopencode.local
--cors[]

--cors 可以重复传入,例如:

opencode serve --cors http://localhost:5173 --cors https://app.example.com

这里列出的是 serve 的默认值;Web 与 TUI 的端口行为不同。要连接 TUI 自带的服务,可在启动 TUI 时明确设置 --hostname 和 --port。

认证与客户端

设置 OPENCODE_SERVER_PASSWORD 启用 HTTP Basic Auth,用户名默认 opencode,可用 OPENCODE_SERVER_USERNAME 修改。这个机制同时适用于 serve 和 web。

终端客户端用 opencode attach [url];脚本可用 opencode run --attach <url>,两者均有用户名/密码选项。连接远程任务时,工作目录位于服务端;不能假设本地客户端路径一定存在于后端。

浏览器访问、网络监听和服务发现见Web 界面。

先检查服务与接口定义

GET /global/health 返回健康状态及版本,官方示意为 { healthy: true, version: string }。接口文档位于 http://<hostname>:<port>/doc,例如 http://localhost:4096/doc。

服务发布 OpenAPI 3.1 规范,SDK 也从它生成。/doc 的官方响应描述是带规范的 HTML 页面,因此不应未经核实就把它作为纯 JSON 响应处理。

具体请求与响应类型应与正在连接的服务版本匹配。项目、文件和系统端点见HTTP API,会话流程见会话 API。

订阅事件

端点用途
GET /global/event全局 SSE 事件流
GET /event服务事件流,首先收到 server.connected,之后是总线事件

SSE 是持续事件流,不是一次性 JSON 响应。接入异步提示时,需要结合事件和会话状态获取任务进展;官方 Server 页没有在这两行中定义重连与持久投递保证。