public class OpenCodeClient extends Object implements AutoCloseable
Three communication channels are independent of each other and are created based on
the enabled flag in their respective sub-configurations:
OpenCodeHttpClientConfig.enabled = false → HTTP/SSE 子客户端不可用OpenCodeCliConfig.enabled = false → CLI 子客户端不可用Eight overloads cover three scenarios:
enabled flagOpenCodeClientConfig; internally split into two sub-configsEach scenario has a variant with auto-created ObjectMapper/OkHttpClient and a variant with
forced injection (the injected version applies requireNonNull validation).
After subsystem initialization, the primary constructor runs health probes based on
startupCheckEnabled and failFastOnUnavailable (HTTP: GET /global/health;
CLI: opencode --version). If the probe fails but fail-fast is not enabled, only a
WARN log is emitted and construction continues.
OpenCodeHttpClientConfig,
OpenCodeCliConfig,
OpenCodeClientConfig| Constructor and Description |
|---|
OpenCodeClient(OpenCodeCliConfig cliConfig)
仅 CLI 子系统(HTTP 禁用)。
|
OpenCodeClient(OpenCodeCliConfig cliConfig,
com.fasterxml.jackson.databind.ObjectMapper objectMapper,
okhttp3.OkHttpClient httpClient)
仅 CLI 子系统(HTTP 禁用),强制注入共享 ObjectMapper 与 OkHttpClient。
|
OpenCodeClient(OpenCodeClientConfig config)
组合配置,自动创建默认 ObjectMapper 与 OkHttpClient。
|
OpenCodeClient(OpenCodeClientConfig config,
com.fasterxml.jackson.databind.ObjectMapper objectMapper,
okhttp3.OkHttpClient httpClient)
组合配置,强制注入共享 ObjectMapper 与 OkHttpClient。
|
OpenCodeClient(OpenCodeClientConfig config,
OpenCodeHttpClient httpClient,
OpenCodeSseClient sseClient,
OpenCodeCli cli)
全量依赖注入(用于测试或自定义组件)。
|
OpenCodeClient(OpenCodeHttpClientConfig httpConfig)
仅 HTTP 子系统(CLI 禁用)。
|
OpenCodeClient(OpenCodeHttpClientConfig httpConfig,
com.fasterxml.jackson.databind.ObjectMapper objectMapper,
okhttp3.OkHttpClient httpClient)
仅 HTTP 子系统(CLI 禁用),强制注入共享 ObjectMapper 与 OkHttpClient。
|
OpenCodeClient(OpenCodeHttpClientConfig httpConfig,
OpenCodeCliConfig cliConfig)
HTTP + CLI 子系统。
|
OpenCodeClient(OpenCodeHttpClientConfig httpConfig,
OpenCodeCliConfig cliConfig,
com.fasterxml.jackson.databind.ObjectMapper objectMapper,
okhttp3.OkHttpClient httpClient)
HTTP + CLI 子系统,强制注入共享 ObjectMapper 与 OkHttpClient。
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
abort(String sessionId)
请求 OpenCode Server 中止指定会话中正在运行的生成任务。
|
McpStatus |
addMcpServer(String name,
Object config)
向当前 OpenCode 实例注册 MCP 服务配置,并返回服务状态。
|
OpenCodeChatClient |
chat()
获取统一的 OpenCode 聊天场景客户端。
|
ChatResponse |
chatCompletion(String sessionId,
ChatRequest request)
同步提交聊天请求并返回完整响应。
|
PromptResult |
chatCompletion(String sessionId,
PromptRequest request)
同步提交聊天请求并返回完整响应。
|
PromptResult |
chatCompletion(String sessionId,
String text)
同步提交聊天请求并返回完整响应。
|
PromptResult |
chatCompletion(String sessionId,
String text,
String providerID,
String modelID)
同步提交聊天请求并返回完整响应。
|
CompletableFuture<ChatResponse> |
chatCompletionAsync(String sessionId,
ChatRequest request)
异步完成指定会话的聊天请求。
|
CompletableFuture<Boolean> |
chatCompletionAsync(String sessionId,
PromptRequest request)
异步提交聊天请求;网络或解析失败通过返回的 Future 传播。
|
CompletableFuture<Boolean> |
chatCompletionAsync(String sessionId,
String text)
异步提交聊天请求;网络或解析失败通过返回的 Future 传播。
|
StreamingChatResponse |
chatCompletionStream(ChatRequest request,
String sessionKey)
创建流式聊天响应,异步订阅会话事件并持续交付文本增量。
|
StreamingChatResponse |
chatCompletionStream(ChatRequest request,
String sessionKey,
OpenCodeRequestContext context)
创建流式聊天响应,异步订阅会话事件并持续交付文本增量。
|
StreamingChatResponse |
chatCompletionStream(ChatRequest request,
String sessionKey,
OpenCodeRequestContext context,
Consumer<String> deltaConsumer)
流式对话,并在订阅启动前绑定增量回调,避免丢失首批分片。
|
ChatResponse |
chatCompletionWithSession(ChatRequest request,
String sessionKey)
复用或创建稳定会话后提交聊天请求并返回结果。
|
ChatResponse |
chatCompletionWithSession(ChatRequest request,
String sessionKey,
HttpCallCancellation cancellation)
复用或创建稳定会话后提交聊天请求并返回结果。
|
PromptResult |
chatCompletionWithSession(PromptRequest request,
String sessionKey)
复用或创建稳定会话后提交聊天请求并返回结果。
|
PromptResult |
chatCompletionWithSession(PromptRequest request,
String sessionKey,
HttpCallCancellation cancellation)
复用或创建稳定会话后提交聊天请求并返回结果。
|
PromptResult |
chatCompletionWithSession(String text,
String sessionKey)
复用或创建稳定会话后提交聊天请求并返回结果。
|
PromptResult |
chatCompletionWithSession(String text,
String providerID,
String modelID,
String sessionKey)
复用或创建稳定会话后提交聊天请求并返回结果。
|
CompletableFuture<ChatResponse> |
chatCompletionWithSessionAsync(ChatRequest request,
String sessionKey,
HttpCallCancellation cancellation)
异步查找会话并完成聊天请求。
|
CompletableFuture<Boolean> |
chatCompletionWithSessionAsync(PromptRequest request,
String sessionKey)
异步复用或创建稳定会话后提交聊天请求,不阻塞调用线程。
|
OpenCodeCli |
cli()
委托本地 OpenCode CLI 门面执行OpenCode 协议数据,同步返回退出状态及输出。
|
OpenCodeCliResult |
cliAcp(String cwd)
委托本地 OpenCode CLI 门面执行
acp 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliAgentCreate(String path,
String description,
String mode,
String permissions,
String model)
委托本地 OpenCode CLI 门面执行
agent create 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliAgentList()
委托本地 OpenCode CLI 门面执行
agent list 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliAttach(String url,
String dir,
String sessionId,
String username,
String password)
委托本地 OpenCode CLI 门面执行
attach 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliAuthList()
委托本地 OpenCode CLI 门面执行
auth list 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliAuthLogin(String provider,
String method)
委托本地 OpenCode CLI 门面执行
auth login 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliAuthLogout(String provider)
委托本地 OpenCode CLI 门面执行
auth logout 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliDb(String query,
String format)
委托本地 OpenCode CLI 门面执行
db 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliDbPath()
委托本地 OpenCode CLI 门面执行
db path 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliDebugConfig()
委托本地 OpenCode CLI 门面执行
debug config 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliDebugInfo()
委托本地 OpenCode CLI 门面执行
debug info 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliDebugPaths()
委托本地 OpenCode CLI 门面执行
debug paths 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliExport(String sessionId,
boolean sanitize)
委托本地 OpenCode CLI 门面执行
export 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliGenerate()
委托本地 OpenCode CLI 门面执行
generate 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliGithubInstall()
委托本地 OpenCode CLI 门面执行
github install 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliGithubRun(String event,
String token)
委托本地 OpenCode CLI 门面执行
github run 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliImport(String fileOrUrl)
委托本地 OpenCode CLI 门面执行
import 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliMcpAdd(String name,
String url)
委托本地 OpenCode CLI 门面执行
mcp add 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliMcpAuth(String name)
委托本地 OpenCode CLI 门面执行
mcp auth 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliMcpList()
委托本地 OpenCode CLI 门面执行
mcp list 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliMcpLogout(String name)
委托本地 OpenCode CLI 门面执行
mcp logout 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliModels()
委托本地 OpenCode CLI 门面执行
models 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliModels(String provider,
boolean verbose,
boolean refresh)
委托本地 OpenCode CLI 门面执行
models 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliPr(int number)
委托本地 OpenCode CLI 门面执行
pr 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliProvidersList()
委托本地 OpenCode CLI 门面执行
providers list 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliProvidersLogin(String provider,
String method)
委托本地 OpenCode CLI 门面执行
providers login 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliProvidersLogout(String provider)
委托本地 OpenCode CLI 门面执行
providers logout 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliServe()
委托本地 OpenCode CLI 门面执行
serve 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliServe(Integer port,
String hostname)
委托本地 OpenCode CLI 门面执行
serve 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliSessionList()
委托本地 OpenCode CLI 门面执行
session list 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliSessionList(int maxCount)
委托本地 OpenCode CLI 门面执行
session list 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliStats()
委托本地 OpenCode CLI 门面执行
stats 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliStats(Integer days,
Integer tools,
Integer models,
String project)
委托本地 OpenCode CLI 门面执行
stats 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliUninstall(boolean keepConfig,
boolean keepData,
boolean dryRun,
boolean force)
委托本地 OpenCode CLI 门面执行
uninstall 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliUpgrade()
委托本地 OpenCode CLI 门面执行
upgrade 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliUpgrade(String target,
String method)
委托本地 OpenCode CLI 门面执行
upgrade 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliWeb()
委托本地 OpenCode CLI 门面执行
web 子命令,同步返回退出状态及输出。 |
OpenCodeCliResult |
cliWeb(Integer port,
String hostname)
委托本地 OpenCode CLI 门面执行
web 子命令,同步返回退出状态及输出。 |
void |
close()
释放当前对象持有的连接、订阅或执行资源;重复调用是安全的。
|
Session |
createSession(String title)
通过 OpenCode Server HTTP API 创建会话。
|
boolean |
deleteSession(String sessionId)
请求 OpenCode Server 删除会话。
|
boolean |
disposeInstance()
释放当前 OpenCode Server 实例持有的运行资源。
|
String |
ensureSession(String sessionKey)
查找稳定会话键对应的会话;不存在时创建新会话。
|
List<FileSearchResult> |
find(String pattern)
调用 OpenCode Server 搜索接口查找OpenCode 协议数据;未命中时返回空结果。
|
List<String> |
findFiles(String query)
调用 OpenCode Server 搜索接口查找文件节点;未命中时返回空结果。
|
Optional<Session> |
findSessionByTitle(String title)
调用 OpenCode Server 搜索接口查找标题匹配的会话;未命中时返回空结果。
|
List<Symbol> |
findSymbols(String query)
调用 OpenCode Server 搜索接口查找代码符号;未命中时返回空结果。
|
Session |
forkSession(String sessionId,
String messageId)
从指定消息位置派生新会话,并返回服务端创建的子会话。
|
OpenCodeClientConfig |
getConfig()
通过 OpenCode Server HTTP API 获取实例配置。
|
ProviderList |
getConfigProviders()
通过 OpenCode Server HTTP API 获取配置中的模型提供方。
|
Project |
getCurrentProject()
通过 OpenCode Server HTTP API 获取当前项目。
|
FileContent |
getFileContent(String path)
通过 OpenCode Server HTTP API 获取文件内容。
|
List<FileNode> |
getFileStatus()
通过 OpenCode Server HTTP API 获取文件状态。
|
OpenCodeConfig |
getGlobalOpenCodeConfig()
通过 OpenCode Server HTTP API 获取全局配置。
|
MessageInfo |
getMessage(String sessionId,
String messageId)
通过 OpenCode Server HTTP API 获取会话消息。
|
List<PromptResult> |
getMessages(String sessionId)
通过 OpenCode Server HTTP API 获取会话消息。
|
OpenCodeConfig |
getOpenCodeConfig()
通过 OpenCode Server HTTP API 获取配置。
|
OpenCodePath |
getPath()
通过 OpenCode Server HTTP API 获取运行路径信息。
|
Session |
getSession(String sessionId)
通过 OpenCode Server HTTP API 获取会话。
|
List<Session> |
getSessionChildren(String sessionId)
通过 OpenCode Server HTTP API 获取子会话。
|
List<FileDiff> |
getSessionDiff(String sessionId,
String messageId)
通过 OpenCode Server HTTP API 获取会话文件差异。
|
Map<String,SessionStatus> |
getSessionStatusMap()
通过 OpenCode Server HTTP API 获取会话状态。
|
List<SessionTodo> |
getSessionTodo(String sessionId)
通过 OpenCode Server HTTP API 获取会话待办项。
|
VcsInfo |
getVcs()
通过 OpenCode Server HTTP API 获取版本控制状态。
|
boolean |
globalDispose()
请求 OpenCode Server 释放全部全局实例资源。
|
boolean |
globalUpgrade(String target)
请求 OpenCode Server 将全局安装升级到指定目标版本。
|
HealthStatus |
health()
同步查询 OpenCode Server 的健康状态和版本信息。
|
CompletableFuture<HealthStatus> |
healthAsync()
异步检查 OpenCode Server 健康状态。
|
boolean |
initProjectGit()
请求 OpenCode Server 在当前项目目录初始化 Git 仓库。
|
boolean |
initSession(String sessionId,
String messageId,
String providerId,
String modelId)
使用指定消息和模型初始化会话上下文及 AGENTS.md。
|
boolean |
isCliEnabled()
CLI 子系统是否启用。
|
boolean |
isHttpEnabled()
HTTP 子系统是否启用。
|
List<Agent> |
listAgents()
通过 OpenCode Server HTTP API 查询智能体;无数据时返回空集合。
|
List<Command> |
listCommands()
通过 OpenCode Server HTTP API 查询斜杠命令;无数据时返回空集合。
|
List<FileNode> |
listFiles(String path)
通过 OpenCode Server HTTP API 查询文件节点;无数据时返回空集合。
|
List<FormatterStatus> |
listFormatters()
通过 OpenCode Server HTTP API 查询格式化器状态;无数据时返回空集合。
|
List<LspStatus> |
listLsps()
通过 OpenCode Server HTTP API 查询语言服务器状态;无数据时返回空集合。
|
Map<String,McpStatus> |
listMcpServers()
通过 OpenCode Server HTTP API 查询MCP 服务;无数据时返回空集合。
|
List<PermissionRequest> |
listPermissions()
通过 OpenCode Server HTTP API 查询待处理权限;无数据时返回空集合。
|
List<Project> |
listProjects()
通过 OpenCode Server HTTP API 查询项目;无数据时返回空集合。
|
Map<String,List<ProviderAuthMethod>> |
listProviderAuthMethods()
通过 OpenCode Server HTTP API 查询模型提供方认证方式;无数据时返回空集合。
|
ProviderList |
listProviders()
通过 OpenCode Server HTTP API 查询模型提供方;无数据时返回空集合。
|
List<QuestionRequest> |
listQuestions()
通过 OpenCode Server HTTP API 查询待回答问题;无数据时返回空集合。
|
List<Session> |
listSessions()
通过 OpenCode Server HTTP API 查询会话;无数据时返回空集合。
|
List<Session> |
listSessions(String search,
Integer limit,
Integer start)
通过 OpenCode Server HTTP API 查询会话;无数据时返回空集合。
|
List<Skill> |
listSkills()
通过 OpenCode Server HTTP API 查询技能;无数据时返回空集合。
|
ProviderAuthAuthorization |
providerOAuthAuthorize(String providerId,
String method)
启动指定模型提供方的 OAuth 授权流程,并返回访问地址及校验状态。
|
boolean |
providerOAuthCallback(String providerId,
String code)
向 OpenCode Server 提交模型提供方 OAuth 回调授权码。
|
boolean |
rejectQuestion(String requestId)
拒绝question请求。
|
boolean |
removeAuth(String providerId)
请求 OpenCode Server 删除认证信息。
|
boolean |
replyPermission(String requestId,
String response,
boolean remember)
回复permission请求。
|
boolean |
replyQuestion(String requestId,
List<String> answers)
回复question请求。
|
boolean |
revertSession(String sessionId,
String messageId,
String partId)
将会话回退到指定消息或消息片段。
|
PromptResult |
runSessionCommand(String sessionId,
String command,
String arguments,
String agent,
String model)
在指定会话中执行斜杠命令,并返回生成结果。
|
boolean |
setAuth(String providerId,
Object body)
保存指定模型提供方的认证配置。
|
Session |
shareSession(String sessionId)
为指定会话启用共享,并返回更新后的会话信息。
|
OpenCodeSseClient |
sse()
获取统一的 OpenCode SSE 场景客户端。
|
boolean |
summarizeSession(String sessionId,
String providerId,
String modelId)
使用指定模型压缩会话上下文,以降低后续请求的上下文长度。
|
boolean |
unrevertSession(String sessionId)
撤销会话最近一次回退操作。
|
Session |
unshareSession(String sessionId)
取消指定会话的共享状态,并返回更新后的会话信息。
|
OpenCodeConfig |
updateGlobalOpenCodeConfig(Object body)
向 OpenCode Server 提交全局配置更新,并返回更新后的服务端表示。
|
OpenCodeConfig |
updateOpenCodeConfig(Object body)
向 OpenCode Server 提交配置更新,并返回更新后的服务端表示。
|
Project |
updateProject(String projectId,
Object body)
向 OpenCode Server 提交项目更新,并返回更新后的服务端表示。
|
public OpenCodeClient(OpenCodeHttpClientConfig httpConfig)
httpConfig - HTTP 子系统配置;为 null 时禁用 HTTP 能力IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用public OpenCodeClient(OpenCodeHttpClientConfig httpConfig, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient)
httpConfig - HTTP 子系统配置;为 null 时禁用 HTTP 能力objectMapper - JSON 映射器;为 null 时使用 SDK 默认配置httpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用public OpenCodeClient(OpenCodeCliConfig cliConfig)
cliConfig - CLI 子系统配置;为 null 时禁用 CLI 能力IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用public OpenCodeClient(OpenCodeCliConfig cliConfig, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient)
cliConfig - CLI 子系统配置;为 null 时禁用 CLI 能力objectMapper - JSON 映射器;为 null 时使用 SDK 默认配置httpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用public OpenCodeClient(OpenCodeHttpClientConfig httpConfig, OpenCodeCliConfig cliConfig)
httpConfig - HTTP 子系统配置;为 null 时禁用 HTTP 能力cliConfig - CLI 子系统配置;为 null 时禁用 CLI 能力IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用public OpenCodeClient(OpenCodeHttpClientConfig httpConfig, OpenCodeCliConfig cliConfig, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient)
主构造器:所有参数 requireNonNull;HTTP/CLI 子客户端按各自
enabled 决定是否创建(禁用时为 null);构造完成后按
startupCheckEnabled 与 failFastOnUnavailable 执行启动自检。
httpConfig - HTTP 子系统配置;为 null 时禁用 HTTP 能力cliConfig - CLI 子系统配置;为 null 时禁用 CLI 能力objectMapper - JSON 映射器;为 null 时使用 SDK 默认配置httpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用public OpenCodeClient(OpenCodeClientConfig config)
config - 客户端配置;不得为 nullIllegalStateException - 启用启动检查和快速失败后,对应子系统不可用public OpenCodeClient(OpenCodeClientConfig config, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient)
config - 客户端配置;不得为 nullobjectMapper - JSON 映射器;为 null 时使用 SDK 默认配置httpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用public OpenCodeClient(OpenCodeClientConfig config, OpenCodeHttpClient httpClient, OpenCodeSseClient sseClient, OpenCodeCli cli)
使用此构造方法不会执行任何启动自检。
config - 客户端配置;不得为 nullhttpClient - 可复用的 OkHttp 客户端;为 null 时由 SDK 创建sseClient - SSE 客户端;为 null 时按配置创建cli - CLI 门面;为 null 时按配置创建IllegalStateException - 启用启动检查和快速失败后,对应子系统不可用public boolean isHttpEnabled()
true,否则返回 falsepublic boolean isCliEnabled()
true,否则返回 falsepublic Session createSession(String title)
title - 会话标题;用于展示和稳定会话查找OpenCodeHttpException - HTTP 请求失败或响应无法解析public Session getSession(String sessionId)
sessionId - OpenCode 会话 ID;不得为空OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<Session> listSessions()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<Session> listSessions(String search, Integer limit, Integer start)
search - 标题搜索条件;为空时不限制limit - 最大返回数量;为 null 时使用服务端默认值start - 分页起始偏移;为 null 时从首项开始OpenCodeHttpException - HTTP 请求失败或响应无法解析public Optional<Session> findSessionByTitle(String title)
title - 会话标题;用于展示和稳定会话查找Optional.empty()OpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean deleteSession(String sessionId)
sessionId - OpenCode 会话 ID;不得为空true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public PromptResult chatCompletion(String sessionId, PromptRequest request)
sessionId - OpenCode 会话 ID;不得为空request - 请求对象;不得为 nullOpenCodeHttpException - HTTP 请求失败或响应无法解析public PromptResult chatCompletion(String sessionId, String text)
sessionId - OpenCode 会话 ID;不得为空text - 发送给模型的文本内容OpenCodeHttpException - HTTP 请求失败或响应无法解析public PromptResult chatCompletion(String sessionId, String text, String providerID, String modelID)
sessionId - OpenCode 会话 ID;不得为空text - 发送给模型的文本内容providerID - 模型提供方 IDmodelID - 模型 IDOpenCodeHttpException - HTTP 请求失败或响应无法解析public PromptResult chatCompletionWithSession(PromptRequest request, String sessionKey)
request - 请求对象;不得为 nullsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题OpenCodeHttpException - HTTP 请求失败或响应无法解析public PromptResult chatCompletionWithSession(PromptRequest request, String sessionKey, HttpCallCancellation cancellation)
request - 请求对象;不得为 nullsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题cancellation - 取消信号;为 null 时不可由外部取消OpenCodeHttpException - HTTP 请求失败或响应无法解析public PromptResult chatCompletionWithSession(String text, String sessionKey)
text - 发送给模型的文本内容sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题OpenCodeHttpException - HTTP 请求失败或响应无法解析public PromptResult chatCompletionWithSession(String text, String providerID, String modelID, String sessionKey)
text - 发送给模型的文本内容providerID - 模型提供方 IDmodelID - 模型 IDsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题OpenCodeHttpException - HTTP 请求失败或响应无法解析public CompletableFuture<Boolean> chatCompletionWithSessionAsync(PromptRequest request, String sessionKey)
request - 请求对象;不得为 nullsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题public ChatResponse chatCompletion(String sessionId, ChatRequest request)
sessionId - OpenCode 会话 ID;不得为空request - 请求对象;不得为 nullOpenCodeHttpException - HTTP 请求失败或响应无法解析public CompletableFuture<ChatResponse> chatCompletionAsync(String sessionId, ChatRequest request)
sessionId - OpenCode 会话 ID;不得为空request - 请求对象;不得为 nullpublic ChatResponse chatCompletionWithSession(ChatRequest request, String sessionKey)
request - 请求对象;不得为 nullsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题OpenCodeHttpException - HTTP 请求失败或响应无法解析public ChatResponse chatCompletionWithSession(ChatRequest request, String sessionKey, HttpCallCancellation cancellation)
request - 请求对象;不得为 nullsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题cancellation - 取消信号;为 null 时不可由外部取消OpenCodeHttpException - HTTP 请求失败或响应无法解析public CompletableFuture<ChatResponse> chatCompletionWithSessionAsync(ChatRequest request, String sessionKey, HttpCallCancellation cancellation)
request - 请求对象;不得为 nullsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题cancellation - 取消信号;为 null 时不可由外部取消public StreamingChatResponse chatCompletionStream(ChatRequest request, String sessionKey)
request - 请求对象;不得为 nullsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题public StreamingChatResponse chatCompletionStream(ChatRequest request, String sessionKey, OpenCodeRequestContext context)
request - 请求对象;不得为 nullsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题context - 请求上下文;为 null 时不附加目录头public StreamingChatResponse chatCompletionStream(ChatRequest request, String sessionKey, OpenCodeRequestContext context, Consumer<String> deltaConsumer)
request - 请求对象;不得为 nullsessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题context - 请求上下文;为 null 时不附加目录头deltaConsumer - 文本增量消费者;不得为 nullpublic String ensureSession(String sessionKey)
sessionKey - 用于稳定复用会话的业务键;相同键映射到同一标题OpenCodeHttpException - HTTP 请求失败或响应无法解析public CompletableFuture<Boolean> chatCompletionAsync(String sessionId, PromptRequest request)
sessionId - OpenCode 会话 ID;不得为空request - 请求对象;不得为 nullpublic CompletableFuture<Boolean> chatCompletionAsync(String sessionId, String text)
sessionId - OpenCode 会话 ID;不得为空text - 发送给模型的文本内容public List<PromptResult> getMessages(String sessionId)
sessionId - OpenCode 会话 ID;不得为空OpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean abort(String sessionId)
sessionId - OpenCode 会话 ID;不得为空true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public List<Agent> listAgents()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public HealthStatus health()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public CompletableFuture<HealthStatus> healthAsync()
public OpenCodeChatClient chat()
public OpenCodeSseClient sse()
public OpenCodeCli cli()
public OpenCodeClientConfig getConfig()
public OpenCodeConfig getOpenCodeConfig()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeConfig getGlobalOpenCodeConfig()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeConfig updateOpenCodeConfig(Object body)
body - 提交给服务端的请求体OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeConfig updateGlobalOpenCodeConfig(Object body)
body - 提交给服务端的请求体OpenCodeHttpException - HTTP 请求失败或响应无法解析public ProviderList getConfigProviders()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<Project> listProjects()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public Project getCurrentProject()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public Project updateProject(String projectId, Object body)
projectId - OpenCode 项目 ID;不得为空body - 提交给服务端的请求体OpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean initProjectGit()
true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public ProviderList listProviders()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public Map<String,List<ProviderAuthMethod>> listProviderAuthMethods()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public ProviderAuthAuthorization providerOAuthAuthorize(String providerId, String method)
providerId - 模型提供方 IDmethod - 认证或升级方式OpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean providerOAuthCallback(String providerId, String code)
providerId - 模型提供方 IDcode - OAuth 回调授权码true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public List<FileNode> listFiles(String path)
path - 文件或工作目录路径OpenCodeHttpException - HTTP 请求失败或响应无法解析public FileContent getFileContent(String path)
path - 文件或工作目录路径OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<FileNode> getFileStatus()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<FileSearchResult> find(String pattern)
pattern - 文本搜索模式OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<String> findFiles(String query)
query - 搜索或数据库查询表达式OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<Symbol> findSymbols(String query)
query - 搜索或数据库查询表达式OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<Command> listCommands()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<Skill> listSkills()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<FormatterStatus> listFormatters()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<LspStatus> listLsps()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public Map<String,McpStatus> listMcpServers()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public McpStatus addMcpServer(String name, Object config)
name - 资源名称config - 客户端配置;不得为 nullOpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodePath getPath()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public VcsInfo getVcs()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public Map<String,SessionStatus> getSessionStatusMap()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<Session> getSessionChildren(String sessionId)
sessionId - OpenCode 会话 ID;不得为空OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<SessionTodo> getSessionTodo(String sessionId)
sessionId - OpenCode 会话 ID;不得为空OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<FileDiff> getSessionDiff(String sessionId, String messageId)
sessionId - OpenCode 会话 ID;不得为空messageId - 会话消息 IDOpenCodeHttpException - HTTP 请求失败或响应无法解析public Session shareSession(String sessionId)
sessionId - OpenCode 会话 ID;不得为空OpenCodeHttpException - HTTP 请求失败或响应无法解析public Session unshareSession(String sessionId)
sessionId - OpenCode 会话 ID;不得为空OpenCodeHttpException - HTTP 请求失败或响应无法解析public Session forkSession(String sessionId, String messageId)
sessionId - OpenCode 会话 ID;不得为空messageId - 会话消息 IDOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean initSession(String sessionId, String messageId, String providerId, String modelId)
sessionId - OpenCode 会话 ID;不得为空messageId - 会话消息 IDproviderId - 模型提供方 IDmodelId - 模型 IDtrue,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean summarizeSession(String sessionId, String providerId, String modelId)
sessionId - OpenCode 会话 ID;不得为空providerId - 模型提供方 IDmodelId - 模型 IDtrue,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean revertSession(String sessionId, String messageId, String partId)
sessionId - OpenCode 会话 ID;不得为空messageId - 会话消息 IDpartId - 消息片段 IDtrue,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean unrevertSession(String sessionId)
sessionId - OpenCode 会话 ID;不得为空true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public MessageInfo getMessage(String sessionId, String messageId)
sessionId - OpenCode 会话 ID;不得为空messageId - 会话消息 IDOpenCodeHttpException - HTTP 请求失败或响应无法解析public PromptResult runSessionCommand(String sessionId, String command, String arguments, String agent, String model)
sessionId - OpenCode 会话 ID;不得为空command - OpenCode 斜杠命令或 CLI 子命令arguments - 传递给斜杠命令的参数文本;为空时不附加参数agent - 执行请求的智能体名称;为空时使用服务端默认智能体model - 模型标识,通常采用 provider/model 格式;为空时使用默认模型OpenCodeHttpException - HTTP 请求失败或响应无法解析public List<QuestionRequest> listQuestions()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean replyQuestion(String requestId, List<String> answers)
requestId - 待回复的问题或权限请求 IDanswers - 按问题顺序提交的答案列表true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean rejectQuestion(String requestId)
requestId - 待回复的问题或权限请求 IDtrue,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public List<PermissionRequest> listPermissions()
OpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean replyPermission(String requestId, String response, boolean remember)
requestId - 待回复的问题或权限请求 IDresponse - 权限请求响应值,例如 allow 或 denyremember - 是否记住本次权限决定并应用于后续同类请求true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean setAuth(String providerId, Object body)
providerId - 模型提供方 IDbody - 提交给服务端的请求体true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean removeAuth(String providerId)
providerId - 模型提供方 IDtrue,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean disposeInstance()
true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean globalDispose()
true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public boolean globalUpgrade(String target)
target - 升级目标版本;为空时由 CLI 选择最新版本true,否则返回 falseOpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliServe()
serve 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliServe(Integer port, String hostname)
serve 子命令,同步返回退出状态及输出。port - 监听端口;为 null 时使用 CLI 默认值hostname - 监听地址;为空时使用 CLI 默认值OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliWeb()
web 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliWeb(Integer port, String hostname)
web 子命令,同步返回退出状态及输出。port - 监听端口;为 null 时使用 CLI 默认值hostname - 监听地址;为空时使用 CLI 默认值OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliAcp(String cwd)
acp 子命令,同步返回退出状态及输出。cwd - CLI 进程使用的当前工作目录;为空时继承配置OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliGenerate()
generate 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliAttach(String url, String dir, String sessionId, String username, String password)
attach 子命令,同步返回退出状态及输出。url - 远程服务或控制台 URLdir - CLI 命令作用目录;为空时使用配置工作目录sessionId - OpenCode 会话 ID;不得为空username - OpenCode Server Basic Auth 用户名password - OpenCode Server Basic Auth 密码;日志中不得明文输出OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliUpgrade()
upgrade 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliUpgrade(String target, String method)
upgrade 子命令,同步返回退出状态及输出。target - 升级目标版本;为空时由 CLI 选择最新版本method - 认证或升级方式OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliUninstall(boolean keepConfig, boolean keepData, boolean dryRun, boolean force)
uninstall 子命令,同步返回退出状态及输出。keepConfig - 卸载时是否保留本地配置keepData - 卸载时是否保留会话和缓存数据dryRun - 是否仅预览操作而不实际修改本地安装force - 是否强制执行操作OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliStats()
stats 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliStats(Integer days, Integer tools, Integer models, String project)
stats 子命令,同步返回退出状态及输出。days - 统计覆盖的最近天数;为 null 时使用 CLI 默认范围tools - 统计结果中最多展示的工具数量;为 null 时使用 CLI 默认值models - 统计结果中最多展示的模型数量;为 null 时使用 CLI 默认值project - 统计限定的项目名称;为空时统计全部项目OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliExport(String sessionId, boolean sanitize)
export 子命令,同步返回退出状态及输出。sessionId - OpenCode 会话 ID;不得为空sanitize - 是否在导出结果中移除敏感信息OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliImport(String fileOrUrl)
import 子命令,同步返回退出状态及输出。fileOrUrl - 待导入的本地文件路径或远程 URLOpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliSessionList()
session list 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliSessionList(int maxCount)
session list 子命令,同步返回退出状态及输出。maxCount - 最大返回会话数量OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliAgentList()
agent list 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliAgentCreate(String path, String description, String mode, String permissions, String model)
agent create 子命令,同步返回退出状态及输出。path - 文件或工作目录路径description - 资源的可读说明;为空时由 OpenCode 使用默认描述mode - 智能体运行模式或 CLI 行为模式permissions - 智能体创建时使用的权限配置文本model - 模型标识,通常采用 provider/model 格式;为空时使用默认模型OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliModels()
models 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliModels(String provider, boolean verbose, boolean refresh)
models 子命令,同步返回退出状态及输出。provider - 模型提供方 ID;为空时不限制提供方verbose - 是否输出模型的详细元数据refresh - 是否在列出模型前强制刷新提供方元数据OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliProvidersList()
providers list 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliProvidersLogin(String provider, String method)
providers login 子命令,同步返回退出状态及输出。provider - 模型提供方 ID;为空时不限制提供方method - 认证或升级方式OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliProvidersLogout(String provider)
providers logout 子命令,同步返回退出状态及输出。provider - 模型提供方 ID;为空时不限制提供方OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliAuthList()
auth list 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliAuthLogin(String provider, String method)
auth login 子命令,同步返回退出状态及输出。provider - 模型提供方 ID;为空时不限制提供方method - 认证或升级方式OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliAuthLogout(String provider)
auth logout 子命令,同步返回退出状态及输出。provider - 模型提供方 ID;为空时不限制提供方OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliMcpList()
mcp list 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliMcpAdd(String name, String url)
mcp add 子命令,同步返回退出状态及输出。name - 资源名称url - 远程服务或控制台 URLOpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliMcpLogout(String name)
mcp logout 子命令,同步返回退出状态及输出。name - 资源名称OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliMcpAuth(String name)
mcp auth 子命令,同步返回退出状态及输出。name - 资源名称OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliDb(String query, String format)
db 子命令,同步返回退出状态及输出。query - 搜索或数据库查询表达式format - 输出格式名称;为空时使用 CLI 默认格式OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliDbPath()
db path 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliDebugConfig()
debug config 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliDebugPaths()
debug paths 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliDebugInfo()
debug info 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliGithubInstall()
github install 子命令,同步返回退出状态及输出。OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliGithubRun(String event, String token)
github run 子命令,同步返回退出状态及输出。event - 触发当前回调的完整 SSE 事件token - GitHub 访问令牌;为空时由 CLI 自行解析OpenCodeHttpException - HTTP 请求失败或响应无法解析public OpenCodeCliResult cliPr(int number)
pr 子命令,同步返回退出状态及输出。number - GitHub Pull Request 编号OpenCodeHttpException - HTTP 请求失败或响应无法解析public void close()
close in interface AutoCloseableCopyright © 2026. All rights reserved.