词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
一句话总结:使用 JavaScript/TypeScript SDK 以编程方式控制 OpenCode,实现自动化工作流和自定义集成。

┌─────────────────────────────────────────────────────────┐
│ 你的应用程序 │
├─────────────────────────────────────────────────────────┤
│ @opencode-ai/sdk │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │createOpencode│ │createOpencode│ │createOpencode│ │
│ │ │ │ Client │ │ Tui │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ 服务器+客户端 仅客户端连接 启动 TUI 界面 │
└─────────┼────────────────┼────────────────┼─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────┐
│ OpenCode Server │
│ HTTP API (默认端口 4096) │
└─────────────────────────────────────────────────────────┘| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
hostname | string | 服务器主机名 | 127.0.0.1 |
port | number | 服务器端口 | 4096 |
signal | AbortSignal | 用于取消的中止信号 | undefined |
timeout | number | 服务器启动超时(毫秒) | 2000+ |
config | Config | 配置对象,覆盖 opencode.json | {} |
来源: packages/sdk/js/src/server.ts:4-10
| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
baseUrl | string | 服务器 URL | http://localhost:4096 |
fetch | function | 自定义 fetch 实现 | globalThis.fetch |
parseAs | string | 响应解析方式:auto, json, text, blob, arrayBuffer, stream, formData | auto |
responseStyle | "data" | "fields" | 返回风格:data 仅返回数据,fields 返回完整响应 | fields |
throwOnError | boolean | 出错时抛出异常而非返回 | false |
directory | string | 指定项目目录(通过 X-Opencode-Directory header 传递) | undefined |
来源: packages/sdk/js/src/gen/client/types.gen.ts:10-52、packages/sdk/js/src/client.ts:8
OPENCODE_SERVER_PASSWORD,需要通过 headers 传递 Basic Auth 认证:| 场景 | 用户名 | 说明 |
|---|---|---|
| 默认 | opencode | 服务器默认用户名 |
| 自定义 | 环境变量 OPENCODE_SERVER_USERNAME 的值 | 如果服务器设置 了自定义用户名 |
来源: packages/opencode/src/server/server.ts:84-87(Basic Auth 中间件)
| 参数 | 类型 | 描述 |
|---|---|---|
project | string | 项目目录路径 |
model | string | 使用的模型(格式:provider/model) |
session | string | 恢复指定会话 ID |
agent | string | 使用的 Agent(如 build, plan) |
signal | AbortSignal | 用于取消的中止信号 |
config | Config | 配置对象 |
来源: packages/sdk/js/src/server.ts:12-19