默认情况下,OpenCode CLI 在不带任何参数运行时会启动 TUI

  1. opencode

同时,它也支持按照本页面文档所述直接接受 commands(命令),从而可以以 programmatic(编程化)的方式与 OpenCode 交互。

  1. opencode run "Explain how closures work in JavaScript"

tui

启动 OpenCode 的 terminal user interface(终端用户界面)。

  1. 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。

  1. opencode agent [command]

create

创建一个带自定义配置的新 agent。

  1. opencode agent create

该命令会引导你创建一个包含自定义 system prompt 和 tool 配置的 agent。


list

列出所有可用的 agents。

  1. opencode agent list

attach

将一个终端附加(attach)到已经运行的 OpenCode backend server(通过 serveweb 启动)。

  1. opencode attach [url]

这可以让你使用 TUI 连接到远程 OpenCode backend。例如:

  1. # 启动 backend server,用于 web / mobile 访问
  2. opencode web --port 4096 --hostname 0.0.0.0
  3. # 在另一个终端中,将 TUI 连接到正在运行的 backend
  4. opencode attach http://10.20.30.40:4096
Flags
Flag Short Description
--dir 启动 TUI 时使用的工作目录
--session -s 要继续的 session ID

auth

用于管理 providers 的凭据和登录信息。

  1. opencode auth [command]

login

OpenCode 基于 Models.dev 提供的 provider 列表,因此你可以使用 opencode auth login 来配置任意 provider 的 API keys。 这些信息会存储在 ~/.local/share/opencode/auth.json 中。

  1. opencode auth login

当 OpenCode 启动时,会从该凭据文件加载 providers,同时也会读取 environment variables 或项目中的 .env 文件中定义的 key。


list

列出当前凭据文件中所有已认证的 providers。

  1. opencode auth list

或使用简写:

  1. opencode auth ls

logout

从凭据文件中移除某个 provider,从而退出登录。

  1. opencode auth logout

github

管理用于仓库自动化的 GitHub agent。

  1. opencode github [command]

install

在你的仓库中安装 GitHub agent。

  1. opencode github install

该命令会配置所需的 GitHub Actions workflow,并引导你完成配置流程。 详情参考:Learn more


run

运行 GitHub agent,通常在 GitHub Actions 中使用。

  1. opencode github run
Flags
Flag Description
--event 用于运行 agent 的 GitHub mock event
--token GitHub personal access token

mcp

管理 Model Context Protocol(MCP)servers。

  1. opencode mcp [command]

add

向配置中添加一个 MCP server。

  1. opencode mcp add

该命令会引导你添加本地或远程 MCP server。


list

列出所有已配置的 MCP servers 及其连接状态。

  1. opencode mcp list

或简写:

  1. opencode mcp ls

auth

与支持 OAuth 的 MCP server 进行认证。

  1. opencode mcp auth [name]

如果未指定 server name,会提示你从可用的 OAuth-capable servers 中选择。

你也可以查看支持 OAuth 的 servers 及其认证状态:

  1. opencode mcp auth list

或简写:

  1. opencode mcp auth ls

logout

移除某个 MCP server 的 OAuth 凭据。

  1. opencode mcp logout [name]

debug

调试 MCP server 的 OAuth 连接问题。

  1. opencode mcp debug <name>

models

列出所有已配置 providers 可用的 models。

  1. opencode models [provider]

该命令会以 provider/model 的格式显示所有可用模型,这有助于确定在 config 中应使用的准确 model name。

你也可以传入 provider ID 来仅显示该 provider 的模型:

  1. opencode models anthropic
Flags
Flag Description
--refresh 从 models.dev 刷新 models 缓存
--verbose 显示更详细的 model 信息(包含成本等 metadata)

使用 --refresh 可以更新本地缓存的 model 列表,当 provider 新增模型时非常有用。

  1. opencode models --refresh

run

以 non-interactive mode(非交互模式)运行 opencode,直接传入 prompt。

  1. opencode run [message..]

适用于脚本化、自动化场景,或只想快速获得结果而不启动完整 TUI 的情况。例如:

  1. opencode run Explain the use of context in Go

你还可以 attach 到已经运行的 opencode serve 实例,以避免每次执行时 MCP server 的 cold boot(冷启动)开销:

  1. # 在一个终端中启动无界面 server
  2. opencode serve
  3. # 在另一个终端中执行并 attach
  4. opencode 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

  1. opencode serve

该命令会启动一个 HTTP server,在没有 TUI 的情况下提供 opencode 的 API 能力。

Flags
Flag Description
--port 监听端口
--hostname 监听主机名
--mdns 启用 mDNS discovery
--cors 允许额外的 CORS 浏览器来源

session

管理 OpenCode 的 sessions。

  1. opencode session [command]

list

列出所有 OpenCode sessions。

  1. opencode session list
Flags
Flag Short Description
--max-count -n 限制返回最近 N 个 sessions
--format 输出格式:table 或 json

stats

显示 OpenCode sessions 的 token 使用量和成本统计。

  1. opencode stats
Flags
Flag Description
--days 显示最近 N 天的统计
--tools 显示的 tools 数量
--models 显示 model 使用分布(默认隐藏,可指定 Top N)
--project 按项目过滤

export

将 session 数据导出为 JSON。

  1. opencode export [sessionID]

如果未提供 session ID,会提示你选择已有 session。


import

从 JSON 文件或 OpenCode share URL 导入 session 数据。

  1. opencode import <file>

示例:

  1. opencode import session.json
  2. opencode import https://opncd.ai/s/abc123

web

启动带 Web 界面的 headless OpenCode server。

  1. opencode web

该命令会启动 HTTP server 并自动打开浏览器,通过 Web 界面访问 OpenCode。

Flags
Flag Description
--port 监听端口
--hostname 监听主机名
--mdns 启用 mDNS discovery
--cors 允许额外的 CORS 来源

acp

启动 ACP(Agent Client Protocol)server。

  1. opencode acp

该 server 通过 stdin / stdout 使用 nd-JSON 进行通信。

Flags
Flag Description
--cwd 工作目录
--port 监听端口
--hostname 监听主机名

uninstall

卸载 OpenCode 并移除所有相关文件。

  1. opencode uninstall
Flags
Flag Short Description
--keep-config -c 保留配置文件
--keep-data -d 保留 session 数据和快照
--dry-run 仅显示将删除的内容,不实际删除
--force -f 跳过确认提示

upgrade

将 opencode 更新到最新版本或指定版本。

  1. opencode upgrade [target]

升级到最新版本:

  1. opencode upgrade

升级到指定版本:

  1. 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