跳转到内容

服务器

通过 HTTP 与 opencode 服务器交互。

The opencode serve command runs a headless HTTP server that exposes an OpenAPI endpoint that an opencode client can use.


用法

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

選項

旗幟描述默认
--port监听音频4096
--hostname监听的主机名127.0.0.1
--mdns启用 mDNS 发现false
--mdns-domainCustom domain name for mDNS serviceopencode.local
--cors允许的其他浏览器来源[]

--cors 可以多次交付:

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

驗證

Set OPENCODE_SERVER_PASSWORD to protect the server with HTTP basic auth. The username defaults to opencode, or set OPENCODE_SERVER_USERNAME to override it. This applies to both opencode serve and opencode web.

Terminal window
OPENCODE_SERVER_PASSWORD=your-password opencode serve

它是如何運作的

When you run opencode it starts a TUI and a server. Where the TUI is the 与服务器器对话的客户端。服务器器公开 OpenAPI 3.1 规范 该端点还用于生成 SDK

该架构让 opencode 支持客户端,并允许您以多种设计方式与 opencode 交互。

You can run opencode serve to start a standalone server. If you have the opencode TUI running, opencode serve will start a new server.


连接到現有服务器

当您启动 TUI 时,它会随机分配端口和主机名。您可以重新设置 --hostname--port flags。使用它连线到其服务器然后器。

T2 端点可用于跨境服务器驱动 TUI。例如,您可以预填充或执行提示。此设置由 opencode IDE 外挂使用。


規格

服务器发布了OpenAPI 3.1规范,可以在以下位置查看:

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

例如,http://localhost:4096/doc。使用规范生成客户端或检查请求和响应类型其他。或者在 Swagger 浏览器中查看它。


蜜蜂

opencode服务器公开以下API。


全球的

方法路徑描述回应
GET/global/health获取服务器运行状况和版本{ healthy: true, version: string }
GET/global/event获取全域性事件(SSE 流)事件流

专案

方法路徑描述回应
GET/project列出所有专案专案[]
GET/project/current获取当前专案专案

路径和VCS

方法路徑描述回应
GET/path获取当前路徑路徑
GET/vcs获取当前专案的 VCS 資訊VcsInfo

例項

方法路徑描述回应
POST/instance/dispose执行当前实例项boolean

配置

方法路徑描述回应
GET/config获取配置資訊配置
PATCH/config更新配置配置
GET/config/providers列出提供商和默认模型{ providers: 提供商[], default: { [key: string]: string } }

提供商

方法路徑描述回应
GET/provider列出所有提供商{ all: 提供商[], default: {...}, connected: string[] }
GET/provider/auth获取提供商身份验证方法{ [providerID: string]: ProviderAuthMethod[] }
POST/provider/{id}/oauth/authorize使用 OAuth 授權提供商ProviderAuthAuthorization
POST/provider/{id}/oauth/callback处理提供商的 OAuth 回调boolean

会话

方法路徑描述筆記
GET/session列出所有会话返回 Session[]
POST/session建立新会话正文: { parentID?, title? },返回 Session
GET/session/status获取所有会话的会话狀態返回 { [sessionID: string]: SessionStatus }
GET/session/:id获取会话详细信息返回会话
DELETE/session/:id删除会话及所有资料返回boolean
PATCH/session/:id更新会话屬性正文: { title? },返回 Session
GET/session/:id/children获取会话的子会话返回 Session[]
GET/session/:id/todo获取会话的待辦事項列表返回 Todo[]
POST/session/:id/initAnalyze app and create AGENTS.mdbody: { messageID, providerID, modelID }, returns boolean
POST/session/:id/fork在消息中分叉現有会话正文: { messageID? },返回 Session
POST/session/:id/abort中止正在执行的会话返回boolean
POST/session/:id/share分享会话返回会话
DELETE/session/:id/share取消共享会话返回会话
GET/session/:id/diff获取本次会话的差異查询:messageID?,返回 FileDiff[]
POST/session/:id/summarize会议总结正文:{ providerID, modelID },返回 boolean
POST/session/:id/revert回复讯息正文:{ messageID, partID? },返回 boolean
POST/session/:id/unrevert恢复所有已恢复的消息返回boolean
POST/session/:id/permissions/:permissionID回复许可权限请求正文:{ response, remember? },返回 boolean

留言

方法路徑描述筆記
GET/session/:id/message列出会话中的消息查询: limit?,返回 { info: 消息, parts: Part[]}[]
POST/session/:id/message发送消息并等待回复正文: { messageID?, model?, agent?, noReply?, system?, tools?, parts },返回 { info: 消息, parts: 部分[]}
GET/session/:id/message/:messageID获取消息详情返回 { info: 消息, parts: 部分[]}
POST/session/:id/prompt_async非同步传送消息(休眠等待)主体:与 /session/:id/message 相同,返回 204 No Content
POST/session/:id/command执行斜槓命令正文: { messageID?, agent?, model?, command, arguments },返回 { info: 消息, parts: 部分[]}
POST/session/:id/shell执行 shell 命令正文: { agent, model?, command },返回 { info: 消息, parts: 部分[]}

命令

方法路徑描述回应
GET/command列出所有命令命令[]

文件

方法路徑描述回应
GET/find?pattern=<pat>搜索文件中的文字具有 pathlinesline_numberabsolute_offsetsubmatches 的匹配对像数组
GET/find/file?query=<q>按名称查询文件和目录string[](路徑)
GET/find/symbol?query=<q>查询工作区符號符號[]
GET/file?path=<path>列出文件和目录FileNode[]
GET/file/content?path=<p>讀取文件文件內容
GET/file/status获取跟蹤文件的狀態文件[]

/find/file 查询参数

  • query(必需)—搜寻字符串(模糊匹配)
  • type(可选)— 将结果限制为 "file""directory"
  • directory (任选) — 覆盖搜索的专案根目录
  • limit(任选)— 最大结果 (1–200)
  • dirs(任选)— 旧标志("false"仅返回档案)

工具(實驗)

方法路徑描述回应
GET/experimental/tool/ids列出所有工具 ID工具ID
GET/experimental/tool?provider=<p>&model=<m>列出具有模型 JSON 模式的工具工具列表

LSP、格式化程式和 MCP

方法路徑描述回应
GET/lsp获取 LSP 服务器狀態LSPStatus[]
GET/formatter获取格式化程式狀態FormatterStatus[]
GET/mcp获取 MCP 服务器狀態{ [name: string]: MCP狀態 }
POST/mcp动态添加 MCP 服务器主体:{ name, config },返回 MCP 状态对象

代理商

方法路徑描述回应
GET/agent列出所有可用的代理代理[]

記錄

方法路徑描述回应
POST身体:{ service, level, message, extra? }/log写入日志。 boolean

TUI

方法路徑描述回应
POST/tui/append-prompt将文字附加到提示boolean
POST/tui/open-help开启帮助对话方块boolean
POST/tui/open-sessions开启会话选择器boolean
POST/tui/open-themes开启主题选择器boolean
POST/tui/open-models开启模型选择器boolean
POST/tui/submit-prompt提交当前提示boolean
POST/tui/clear-prompt清除提示boolean
POST/tui/execute-command执行命令 ({ command })boolean
POST/tui/show-toast显示祝酒 ({ title?, message, variant })boolean
GET/tui/control/next等待下一个控制请求控制请求对象
POST/tui/control/response响应控制请求 ({ body })boolean

授權

方法路徑描述回应
PUT/auth/:id设置身份验证凭据。正文必须与提供商架构匹配boolean

活动

方法路徑描述回应
GET/event服务器发送事件流。第一个事件是 server.connected,之后是总线事件。服务器发送事件流。

文件

方法路徑描述回应
GET/doc开启API 3.1规范具有OpenAPI规范的HTML页面