Server Mode

Tương tác với OpenCode server qua HTTP.


Tổng quan

Lệnh opencode serve chạy headless HTTP server với OpenAPI endpoint. Architecture: TUI là client nói chuyện với server qua HTTP.

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

Options

FlagMô tảDefault
--portPort lắng nghe4096
--hostnameHostname127.0.0.1
--mdnsBật mDNS discoveryfalse
--corsBrowser origins được phép[]

Authentication

OPENCODE_SERVER_PASSWORD=your-password opencode serve

Username mặc định: opencode. Override với OPENCODE_SERVER_USERNAME.


OpenAPI Spec

Server publish OpenAPI 3.1 spec tại:

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

Ví dụ: http://localhost:4096/doc. Dùng để generate clients hoặc inspect types.


APIs

Global

MethodPathMô tả
GET/global/healthServer health + version
GET/global/eventSSE event stream

Sessions

MethodPathMô tả
GET/sessionList sessions
POST/sessionCreate session
GET/session/:idGet session details
DELETE/session/:idDelete session
POST/session/:id/initInit project (AGENTS.md)
POST/session/:id/abortAbort running session
POST/session/:id/shareShare session
DELETE/session/:id/shareUnshare session
POST/session/:id/revertRevert message
POST/session/:id/unrevertRestore reverted

Messages

MethodPathMô tả
GET/session/:id/messageList messages
POST/session/:id/messageSend message + wait for response
POST/session/:id/prompt_asyncSend message (no wait)
POST/session/:id/commandExecute slash command
POST/session/:id/shellRun shell command

Files

MethodPathMô tả
GET/find?pattern=<pat>Search text in files
GET/find/file?query=<q>Find files by name
GET/file/content?path=<p>Read file

Config

MethodPathMô tả
GET/configGet config
PATCH/configUpdate config
GET/config/providersList providers

TUI Control

MethodPathMô tả
POST/tui/append-promptAppend text to prompt
POST/tui/submit-promptSubmit current prompt
POST/tui/clear-promptClear prompt
POST/tui/show-toastShow toast notification
POST/tui/execute-commandExecute command

Auth

MethodPathMô tả
PUT/auth/:idSet credentials

Events

MethodPathMô tả
GET/eventSSE event stream

Kết nối tới server đang chạy

Khi TUI đang chạy, bạn có thể kết nối tới server của nó:

# Start TUI với port cố định
opencode --port 4096

# Trong terminal khác, dùng SDK để kết nối
import { createOpencodeClient } from "@opencode-ai/sdk"
const client = createOpencodeClient({
  baseUrl: "http://localhost:4096",
})

Xem thêm

  • SDK — Type-safe JavaScript client
  • CLI — Server flags