The opencode serve command runs a headless HTTP server that exposes an OpenAPI endpoint that an opencode client can use.
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
旗幟 描述 默认 --port监听音频 4096--hostname监听的主机名 127.0.0.1--mdns启用 mDNS 发现 false--mdns-domainCustom domain name for mDNS service opencode.local--cors允许的其他浏览器来源 []
--cors 可以多次交付:
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.
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获取当前专案 专案
方法 路徑 描述 回应 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 授權提供商 ProviderAuthAuthorizationPOST/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.md body: { 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>搜索文件中的文字 具有 path、lines、line_number、absolute_offset、submatches 的匹配对像数组 GET/find/file?query=<q>按名称查询文件和目录 string[](路徑)GET/find/symbol?query=<q>查询工作区符號 符號[]GET/file?path=<path>列出文件和目录 FileNode[]GET/file/content?path=<p>讀取文件 文件內容GET/file/status获取跟蹤文件的狀態 文件[]
query(必需)—搜寻字符串(模糊匹配)
type(可选)— 将结果限制为 "file" 或 "directory"
directory (任选) — 覆盖搜索的专案根目录
limit(任选)— 最大结果 (1–200)
dirs(任选)— 旧标志("false"仅返回档案)
方法 路徑 描述 回应 GET/experimental/tool/ids列出所有工具 ID 工具IDGET/experimental/tool?provider=<p>&model=<m>列出具有模型 JSON 模式的工具 工具列表
方法 路徑 描述 回应 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
方法 路徑 描述 回应 POST/tui/append-prompt将文字附加到提示 booleanPOST/tui/open-help开启帮助对话方块 booleanPOST/tui/open-sessions开启会话选择器 booleanPOST/tui/open-themes开启主题选择器 booleanPOST/tui/open-models开启模型选择器 booleanPOST/tui/submit-prompt提交当前提示 booleanPOST/tui/clear-prompt清除提示 booleanPOST/tui/execute-command执行命令 ({ command }) booleanPOST/tui/show-toast显示祝酒 ({ title?, message, variant }) booleanGET/tui/control/next等待下一个控制请求 控制请求对象 POST/tui/control/response响应控制请求 ({ body }) boolean
方法 路徑 描述 回应 PUT/auth/:id设置身份验证凭据。正文必须与提供商架构匹配 boolean
方法 路徑 描述 回应 GET/event服务器发送事件流。第一个事件是 server.connected,之后是总线事件。 服务器发送事件流。
方法 路徑 描述 回应 GET/doc开启API 3.1规范 具有OpenAPI规范的HTML页面