Package io.github.easy4j.opencode.cli
Class OpenCodeCli
java.lang.Object
io.github.easy4j.opencode.cli.OpenCodeCli
Facade for the local
opencode CLI commands.
Wraps an OpenCodeCliExecutor and provides typed methods for each CLI sub-command
(session, agent, models, providers, mcp, etc.).
- Since:
- 1.0.0
- Author:
- Loong Wan
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionOpenCodeCli(OpenCodeCliExecutor executor) 创建 open code cli 实例,并按传入依赖确定资源所有权。 -
Method Summary
Modifier and TypeMethodDescriptionopencode acp [--cwd ...]opencode agent create --path ... --description ... --mode ... --tools ...opencode agent listopencode attach <url> [--dir ... --session ... --username ... --password ...]authList()opencode auth list(与 providers list 等价)opencode auth login [--provider ... --method ...]authLogout(String provider) opencode auth logout [provider]consoleLogin(String url) opencode console login [url]consoleLogout(String email) opencode console logout [email]opencode console openopencode console orgsopencode console switchopencode db [query] [--format json|tsv]dbPath()opencode db pathopencode debug configopencode debug infoopencode debug pathsopencode debug scrapopencode debug skillopencode debug startupexecutor()获取 CLI 执行器(用于自定义命令)。opencode export [sessionID] [--sanitize]generate()opencode generateopencode github installopencode github run [--event ... --token ...]help()opencode --helpimportSession(String fileOrUrl) opencode import <file>opencode mcp add <name> ...远程 MCP server(url 形式)。mcpAddLocal(String name, String... localCmd) opencode mcp add <name>后接本地命令(exec 形式)。opencode mcp auth [name]opencode mcp debug <name>mcpList()opencode mcp listopencode mcp logout [name]models()opencode modelsopencode models <provider> [--verbose] [--refresh]opencode plugin <module> [--global] [--force]pr(int number) opencode pr <number>opencode providers listprovidersLogin(String provider, String method) opencode providers login [--provider ... --method ...]providersLogout(String provider) opencode providers logout [provider]opencode run <message>opencode run --model <model> <message>opencode run --agent <agent> --model <model> <message>opencode run --format json <message>opencode run --format json --session <sessionId> --message <message>opencode serve [--port N --hostname H]sessionDelete(String sessionId) opencode session delete <sessionId>opencode session list --format jsonsessionList(int maxCount) opencode session list --max-count <n> --format jsonopencode stats [--days ... --tools ... --models ... --project ...]uninstall(boolean keepConfig, boolean keepData, boolean dryRun, boolean force) opencode uninstall [--keep-config] [--keep-data] [--dry-run] [--force]upgrade()opencode upgradeopencode upgrade <target> [--method ...]version()opencode --versionopencode web [--port N --hostname H]
-
Constructor Details
-
OpenCodeCli
创建 open code cli 实例,并按传入依赖确定资源所有权。- Parameters:
executor- 负责启动子进程并收集输出的 CLI 执行器
-
-
Method Details
-
executor
获取 CLI 执行器(用于自定义命令)。- Returns:
- OpenCode SDK 返回的CLI 执行器对象
-
version
opencode --version- Returns:
- CLI 的退出状态、标准输出和错误输出
-
help
opencode --help- Returns:
- CLI 的退出状态、标准输出和错误输出
-
run
opencode run <message>非交互模式执行 prompt,返回 AI 响应。
- Parameters:
message- 传递给 OpenCode CLI 的提示文本- Returns:
- CLI 的退出状态、标准输出和错误输出
-
run
opencode run --model <model> <message>- Parameters:
message- 传递给 OpenCode CLI 的提示文本model- 模型标识,通常采用 provider/model 格式;为空时使用默认模型- Returns:
- CLI 的退出状态、标准输出和错误输出
-
run
opencode run --agent <agent> --model <model> <message>- Parameters:
message- 传递给 OpenCode CLI 的提示文本agent- 执行请求的智能体名称;为空时使用服务端默认智能体model- 模型标识,通常采用 provider/model 格式;为空时使用默认模型- Returns:
- CLI 的退出状态、标准输出和错误输出
-
runJson
opencode run --format json <message>返回 JSON 格式的原始事件流。
- Parameters:
message- 传递给 OpenCode CLI 的提示文本- Returns:
- CLI 的退出状态、标准输出和错误输出
-
runJson
opencode run --format json --session <sessionId> --message <message>- Parameters:
message- 传递给 OpenCode CLI 的提示文本sessionId- OpenCode 会话 ID;不得为空model- 模型标识,通常采用 provider/model 格式;为空时使用默认模型- Returns:
- CLI 的退出状态、标准输出和错误输出
-
sessionList
opencode session list --format json- Returns:
- CLI 的退出状态、标准输出和错误输出
-
sessionList
opencode session list --max-count <n> --format json- Parameters:
maxCount- 最大返回会话数量- Returns:
- CLI 的退出状态、标准输出和错误输出
-
sessionDelete
opencode session delete <sessionId>- Parameters:
sessionId- OpenCode 会话 ID;不得为空- Returns:
- CLI 的退出状态、标准输出和错误输出
-
agentList
opencode agent list- Returns:
- CLI 的退出状态、标准输出和错误输出
-
agentCreate
public OpenCodeCliResult agentCreate(String path, String description, String mode, String permissions, String model) opencode agent create --path ... --description ... --mode ... --tools ...- Parameters:
path- 文件或工作目录路径description- 资源的可读说明;为空时由 OpenCode 使用默认描述mode- 智能体运行模式或 CLI 行为模式permissions- 智能体创建时使用的权限配置文本model- 模型标识,通常采用 provider/model 格式;为空时使用默认模型- Returns:
- CLI 的退出状态、标准输出和错误输出
-
models
opencode models- Returns:
- CLI 的退出状态、标准输出和错误输出
-
models
opencode models <provider> [--verbose] [--refresh]- Parameters:
provider- 模型提供方 ID;为空时不限制提供方verbose- 是否输出模型的详细元数据refresh- 是否在列出模型前强制刷新提供方元数据- Returns:
- CLI 的退出状态、标准输出和错误输出
-
providersList
opencode providers list- Returns:
- CLI 的退出状态、标准输出和错误输出
-
providersLogin
opencode providers login [--provider ... --method ...]- Parameters:
provider- 模型提供方 ID;为空时不限制提供方method- 认证或升级方式- Returns:
- CLI 的退出状态、标准输出和错误输出
-
providersLogout
opencode providers logout [provider]- Parameters:
provider- 模型提供方 ID;为空时不限制提供方- Returns:
- CLI 的退出状态、标准输出和错误输出
-
authList
opencode auth list(与 providers list 等价)- Returns:
- CLI 的退出状态、标准输出和错误输出
-
authLogin
opencode auth login [--provider ... --method ...]- Parameters:
provider- 模型提供方 ID;为空时不限制提供方method- 认证或升级方式- Returns:
- CLI 的退出状态、标准输出和错误输出
-
authLogout
opencode auth logout [provider]- Parameters:
provider- 模型提供方 ID;为空时不限制提供方- Returns:
- CLI 的退出状态、标准输出和错误输出
-
mcpList
opencode mcp list- Returns:
- CLI 的退出状态、标准输出和错误输出
-
mcpAdd
opencode mcp add <name> ...远程 MCP server(url 形式)。- Parameters:
name- 资源名称url- 远程服务或控制台 URL- Returns:
- CLI 的退出状态、标准输出和错误输出
-
mcpAddLocal
opencode mcp add <name>后接本地命令(exec 形式)。命令经
--透传给 opencode,例如opencode mcp add foo -- npx server- Parameters:
name- 资源名称localCmd- 追加到命令行的可变参数;每个元素作为独立参数传递- Returns:
- CLI 的退出状态、标准输出和错误输出
-
mcpLogout
opencode mcp logout [name]- Parameters:
name- 资源名称- Returns:
- CLI 的退出状态、标准输出和错误输出
-
mcpAuth
opencode mcp auth [name]- Parameters:
name- 资源名称- Returns:
- CLI 的退出状态、标准输出和错误输出
-
mcpDebug
opencode mcp debug <name>- Parameters:
name- 资源名称- Returns:
- CLI 的退出状态、标准输出和错误输出
-
upgrade
opencode upgrade- Returns:
- CLI 的退出状态、标准输出和错误输出
-
upgrade
opencode upgrade <target> [--method ...]- Parameters:
target- 升级目标版本;为空时由 CLI 选择最新版本method- 认证或升级方式- Returns:
- CLI 的退出状态、标准输出和错误输出
-
uninstall
public OpenCodeCliResult uninstall(boolean keepConfig, boolean keepData, boolean dryRun, boolean force) opencode uninstall [--keep-config] [--keep-data] [--dry-run] [--force]- Parameters:
keepConfig- 卸载时是否保留本地配置keepData- 卸载时是否保留会话和缓存数据dryRun- 是否仅预览操作而不实际修改本地安装force- 是否强制执行操作- Returns:
- CLI 的退出状态、标准输出和错误输出
-
stats
opencode stats [--days ... --tools ... --models ... --project ...]- Parameters:
days- 统计覆盖的最近天数;为null时使用 CLI 默认范围tools- 统计结果中最多展示的工具数量;为null时使用 CLI 默认值models- 统计结果中最多展示的模型数量;为null时使用 CLI 默认值project- 统计限定的项目名称;为空时统计全部项目- Returns:
- CLI 的退出状态、标准输出和错误输出
-
export
opencode export [sessionID] [--sanitize]- Parameters:
sessionId- OpenCode 会话 ID;不得为空sanitize- 是否在导出结果中移除敏感信息- Returns:
- CLI 的退出状态、标准输出和错误输出
-
importSession
opencode import <file>- Parameters:
fileOrUrl- 待导入的本地文件路径或远程 URL- Returns:
- CLI 的退出状态、标准输出和错误输出
-
db
opencode db [query] [--format json|tsv]- Parameters:
query- 搜索或数据库查询表达式format- 输出格式名称;为空时使用 CLI 默认格式- Returns:
- CLI 的退出状态、标准输出和错误输出
-
dbPath
opencode db path- Returns:
- CLI 的退出状态、标准输出和错误输出
-
debugConfig
opencode debug config- Returns:
- CLI 的退出状态、标准输出和错误输出
-
debugPaths
opencode debug paths- Returns:
- CLI 的退出状态、标准输出和错误输出
-
debugInfo
opencode debug info- Returns:
- CLI 的退出状态、标准输出和错误输出
-
debugScrap
opencode debug scrap- Returns:
- CLI 的退出状态、标准输出和错误输出
-
debugSkill
opencode debug skill- Returns:
- CLI 的退出状态、标准输出和错误输出
-
debugStartup
opencode debug startup- Returns:
- CLI 的退出状态、标准输出和错误输出
-
serve
opencode serve [--port N --hostname H]- Parameters:
port- 监听端口;为null时使用 CLI 默认值hostname- 监听地址;为空时使用 CLI 默认值- Returns:
- CLI 的退出状态、标准输出和错误输出
-
web
opencode web [--port N --hostname H]- Parameters:
port- 监听端口;为null时使用 CLI 默认值hostname- 监听地址;为空时使用 CLI 默认值- Returns:
- CLI 的退出状态、标准输出和错误输出
-
acp
opencode acp [--cwd ...]- Parameters:
cwd- CLI 进程使用的当前工作目录;为空时继承配置- Returns:
- CLI 的退出状态、标准输出和错误输出
-
attach
public OpenCodeCliResult attach(String url, String dir, String sessionId, String username, String password) opencode attach <url> [--dir ... --session ... --username ... --password ...]- Parameters:
url- 远程服务或控制台 URLdir- CLI 命令作用目录;为空时使用配置工作目录sessionId- OpenCode 会话 ID;不得为空username- OpenCode Server Basic Auth 用户名password- OpenCode Server Basic Auth 密码;日志中不得明文输出- Returns:
- CLI 的退出状态、标准输出和错误输出
-
generate
opencode generate打印带 JS 代码示例注入的 OpenAPI spec。
- Returns:
- CLI 的退出状态、标准输出和错误输出
-
githubInstall
opencode github install- Returns:
- CLI 的退出状态、标准输出和错误输出
-
githubRun
opencode github run [--event ... --token ...]- Parameters:
event- 触发当前回调的完整 SSE 事件token- GitHub 访问令牌;为空时由 CLI 自行解析- Returns:
- CLI 的退出状态、标准输出和错误输出
-
pr
opencode pr <number>- Parameters:
number- GitHub Pull Request 编号- Returns:
- CLI 的退出状态、标准输出和错误输出
-
plugin
opencode plugin <module> [--global] [--force]- Parameters:
module- 插件模块名称或安装来源global- 是否在全局作用域安装插件force- 是否强制执行操作- Returns:
- CLI 的退出状态、标准输出和错误输出
-
consoleLogin
opencode console login [url]- Parameters:
url- 远程服务或控制台 URL- Returns:
- CLI 的退出状态、标准输出和错误输出
-
consoleLogout
opencode console logout [email]- Parameters:
email- 需要退出登录的控制台账号邮箱;为空时使用当前账号- Returns:
- CLI 的退出状态、标准输出和错误输出
-
consoleOrgs
opencode console orgs- Returns:
- CLI 的退出状态、标准输出和错误输出
-
consoleSwitch
opencode console switch- Returns:
- CLI 的退出状态、标准输出和错误输出
-
consoleOpen
opencode console open- Returns:
- CLI 的退出状态、标准输出和错误输出
-