默认情况下,OpenCode CLI 在不带任何参数运行时会启动 TUI。
opencode
同时,它也支持按照本页面文档所述直接接受 commands(命令),从而可以以 programmatic(编程化)的方式与 OpenCode 交互。
opencode run "Explain how closures work in JavaScript"
tui
启动 OpenCode 的 terminal user interface(终端用户界面)。
opencode [project]
Flags(参数)
| Flag | Short | Description |
|---|---|---|
--continue |
-c |
继续上一次 session |
--session |
-s |
要继续的 session ID |
--prompt |
使用的 prompt | |
--model |
-m |
使用的 model,格式为 provider/model |
--agent |
使用的 agent | |
--port |
监听的端口 | |
--hostname |
监听的主机名 |
Commands(命令)
OpenCode CLI 还提供以下命令。
agent
管理 OpenCode 的 agents。
opencode agent [command]
create
创建一个带自定义配置的新 agent。
opencode agent create
该命令会引导你创建一个包含自定义 system prompt 和 tool 配置的 agent。
list
列出所有可用的 agents。
opencode agent list
attach
将一个终端附加(attach)到已经运行的 OpenCode backend server(通过 serve 或 web 启动)。
opencode attach [url]
这可以让你使用 TUI 连接到远程 OpenCode backend。例如:
# 启动 backend server,用于 web / mobile 访问opencode web --port 4096 --hostname 0.0.0.0# 在另一个终端中,将 TUI 连接到正在运行的 backendopencode attach http://10.20.30.40:4096
Flags
| Flag | Short | Description |
|---|---|---|
--dir |
启动 TUI 时使用的工作目录 | |
--session |
-s |
要继续的 session ID |
auth
用于管理 providers 的凭据和登录信息。
opencode auth [command]
login
OpenCode 基于 Models.dev 提供的 provider 列表,因此你可以使用 opencode auth login 来配置任意 provider 的 API keys。
这些信息会存储在 ~/.local/share/opencode/auth.json 中。
opencode auth login
当 OpenCode 启动时,会从该凭据文件加载 providers,同时也会读取 environment variables 或项目中的 .env 文件中定义的 key。
list
列出当前凭据文件中所有已认证的 providers。
opencode auth list
或使用简写:
opencode auth ls
logout
从凭据文件中移除某个 provider,从而退出登录。
opencode auth logout
github
管理用于仓库自动化的 GitHub agent。
opencode github [command]
install
在你的仓库中安装 GitHub agent。
opencode github install
该命令会配置所需的 GitHub Actions workflow,并引导你完成配置流程。 详情参考:Learn more。
run
运行 GitHub agent,通常在 GitHub Actions 中使用。
opencode github run
Flags
| Flag | Description |
|---|---|
--event |
用于运行 agent 的 GitHub mock event |
--token |
GitHub personal access token |
mcp
管理 Model Context Protocol(MCP)servers。
opencode mcp [command]
add
向配置中添加一个 MCP server。
opencode mcp add
该命令会引导你添加本地或远程 MCP server。
list
列出所有已配置的 MCP servers 及其连接状态。
opencode mcp list
或简写:
opencode mcp ls
auth
与支持 OAuth 的 MCP server 进行认证。
opencode mcp auth [name]
如果未指定 server name,会提示你从可用的 OAuth-capable servers 中选择。
你也可以查看支持 OAuth 的 servers 及其认证状态:
opencode mcp auth list
或简写:
opencode mcp auth ls
logout
移除某个 MCP server 的 OAuth 凭据。
opencode mcp logout [name]
debug
调试 MCP server 的 OAuth 连接问题。
opencode mcp debug <name>
models
列出所有已配置 providers 可用的 models。
opencode models [provider]
该命令会以 provider/model 的格式显示所有可用模型,这有助于确定在 config 中应使用的准确 model name。
你也可以传入 provider ID 来仅显示该 provider 的模型:
opencode models anthropic
Flags
| Flag | Description |
|---|---|
--refresh |
从 models.dev 刷新 models 缓存 |
--verbose |
显示更详细的 model 信息(包含成本等 metadata) |
使用 --refresh 可以更新本地缓存的 model 列表,当 provider 新增模型时非常有用。
opencode models --refresh
run
以 non-interactive mode(非交互模式)运行 opencode,直接传入 prompt。
opencode run [message..]
适用于脚本化、自动化场景,或只想快速获得结果而不启动完整 TUI 的情况。例如:
opencode run Explain the use of context in Go
你还可以 attach 到已经运行的 opencode serve 实例,以避免每次执行时 MCP server 的 cold boot(冷启动)开销:
# 在一个终端中启动无界面 serveropencode serve# 在另一个终端中执行并 attachopencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
Flags
| Flag | Short | Description |
|---|---|---|
--command |
要运行的 command,message 作为参数 | |
--continue |
-c |
继续上一次 session |
--session |
-s |
要继续的 session ID |
--share |
分享 session | |
--model |
-m |
使用的 model,格式为 provider/model |
--agent |
使用的 agent | |
--file |
-f |
附加到消息的文件 |
--format |
输出格式:default(格式化)或 json(原始 JSON events) | |
--title |
session 标题(默认使用截断的 prompt) | |
--attach |
连接到正在运行的 opencode server | |
--port |
本地 server 使用的端口 |
serve
启动一个 headless(无界面)OpenCode server,用于 API 访问。 完整 HTTP 接口请参考 server docs。
opencode serve
该命令会启动一个 HTTP server,在没有 TUI 的情况下提供 opencode 的 API 能力。
Flags
| Flag | Description |
|---|---|
--port |
监听端口 |
--hostname |
监听主机名 |
--mdns |
启用 mDNS discovery |
--cors |
允许额外的 CORS 浏览器来源 |
session
管理 OpenCode 的 sessions。
opencode session [command]
list
列出所有 OpenCode sessions。
opencode session list
Flags
| Flag | Short | Description |
|---|---|---|
--max-count |
-n |
限制返回最近 N 个 sessions |
--format |
输出格式:table 或 json |
stats
显示 OpenCode sessions 的 token 使用量和成本统计。
opencode stats
Flags
| Flag | Description |
|---|---|
--days |
显示最近 N 天的统计 |
--tools |
显示的 tools 数量 |
--models |
显示 model 使用分布(默认隐藏,可指定 Top N) |
--project |
按项目过滤 |
export
将 session 数据导出为 JSON。
opencode export [sessionID]
如果未提供 session ID,会提示你选择已有 session。
import
从 JSON 文件或 OpenCode share URL 导入 session 数据。
opencode import <file>
示例:
opencode import session.jsonopencode import https://opncd.ai/s/abc123
web
启动带 Web 界面的 headless OpenCode server。
opencode web
该命令会启动 HTTP server 并自动打开浏览器,通过 Web 界面访问 OpenCode。
Flags
| Flag | Description |
|---|---|
--port |
监听端口 |
--hostname |
监听主机名 |
--mdns |
启用 mDNS discovery |
--cors |
允许额外的 CORS 来源 |
acp
启动 ACP(Agent Client Protocol)server。
opencode acp
该 server 通过 stdin / stdout 使用 nd-JSON 进行通信。
Flags
| Flag | Description |
|---|---|
--cwd |
工作目录 |
--port |
监听端口 |
--hostname |
监听主机名 |
uninstall
卸载 OpenCode 并移除所有相关文件。
opencode uninstall
Flags
| Flag | Short | Description |
|---|---|---|
--keep-config |
-c |
保留配置文件 |
--keep-data |
-d |
保留 session 数据和快照 |
--dry-run |
仅显示将删除的内容,不实际删除 | |
--force |
-f |
跳过确认提示 |
upgrade
将 opencode 更新到最新版本或指定版本。
opencode upgrade [target]
升级到最新版本:
opencode upgrade
升级到指定版本:
opencode upgrade v0.1.48
Flags
| Flag | Short | Description |
|---|---|---|
--method |
-m |
安装方式:curl、npm、pnpm、bun、brew |
Global Flags(全局参数)
opencode CLI 支持以下全局参数:
| Flag | Short | Description |
|---|---|---|
--help |
-h |
显示帮助 |
--version |
-v |
输出版本号 |
--print-logs |
将 logs 输出到 stderr | |
--log-level |
日志级别(DEBUG、INFO、WARN、ERROR) |
Environment variables(环境变量)
OpenCode 支持通过 environment variables 进行配置。
| Variable | Type | Description |
|---|---|---|
OPENCODE_AUTO_SHARE |
boolean | 自动分享 sessions |
OPENCODE_GIT_BASH_PATH |
string | Windows 下 Git Bash 可执行文件路径 |
OPENCODE_CONFIG |
string | config 文件路径 |
OPENCODE_CONFIG_DIR |
string | config 目录路径 |
OPENCODE_CONFIG_CONTENT |
string | 内联 json 配置内容 |
OPENCODE_DISABLE_AUTOUPDATE |
boolean | 禁用自动更新检查 |
OPENCODE_DISABLE_PRUNE |
boolean | 禁用旧数据清理 |
OPENCODE_DISABLE_TERMINAL_TITLE |
boolean | 禁用自动更新终端标题 |
OPENCODE_PERMISSION |
string | 内联 json 权限配置 |
OPENCODE_DISABLE_DEFAULT_PLUGINS |
boolean | 禁用默认插件 |
OPENCODE_DISABLE_LSP_DOWNLOAD |
boolean | 禁用自动下载 LSP server |
OPENCODE_ENABLE_EXPERIMENTAL_MODELS |
boolean | 启用实验性模型 |
OPENCODE_DISABLE_AUTOCOMPACT |
boolean | 禁用自动上下文压缩 |
OPENCODE_DISABLE_CLAUDE_CODE |
boolean | 禁用从 .claude 读取(prompt + skills) |
OPENCODE_DISABLE_CLAUDE_CODE_PROMPT |
boolean | 禁用读取 ~/.claude/CLAUDE.md |
OPENCODE_DISABLE_CLAUDE_CODE_SKILLS |
boolean | 禁用加载 .claude/skills |
OPENCODE_CLIENT |
string | 客户端标识(默认 cli) |
OPENCODE_ENABLE_EXA |
boolean | 启用 Exa web search tools |
Experimental(实验性功能)
以下 environment variables 用于启用实验性功能,未来可能会变更或移除。
| Variable | Type | Description |
|---|---|---|
OPENCODE_EXPERIMENTAL |
boolean | 启用所有实验功能 |
OPENCODE_EXPERIMENTAL_ICON_DISCOVERY |
boolean | 启用 icon discovery |
OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT |
boolean | 禁用 TUI 选中即复制 |
OPENCODE_EXPERIMENTAL_BASH_MAX_OUTPUT_LENGTH |
number | bash 命令最大输出长度 |
OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS |
number | bash 命令默认超时时间(毫秒) |
OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX |
number | LLM 响应的最大输出 token |
OPENCODE_EXPERIMENTAL_FILEWATCHER |
boolean | 启用整个目录的文件监听 |
OPENCODE_EXPERIMENTAL_OXFMT |
boolean | 启用 oxfmt formatter |
OPENCODE_EXPERIMENTAL_LSP_TOOL |
boolean | 启用实验性 LSP tool |
