| --- |
| title: CLI |
| description: OpenCode CLI 选项和命令。 |
| --- |
| |
| import { Tabs, TabItem } from "@astrojs/starlight/components" |
|
|
| OpenCode CLI 在不带任何参数运行时,默认启动 [TUI](/docs/tui)。 |
|
|
| ```bash |
| opencode |
| ``` |
|
|
| 但它也接受本页面中记录的命令,使您可以通过编程方式与 OpenCode 进行交互。 |
|
|
| ```bash |
| opencode run "Explain how closures work in JavaScript" |
| ``` |
|
|
| --- |
| |
| |
|
|
| 启动 OpenCode 终端用户界面。 |
|
|
| ```bash |
| opencode [project] |
| ``` |
|
|
| |
|
|
| | 标志 | 简写 | 描述 | |
| | ---------------------------------------- | ---- | --------------------------------------------------------- | |
| | <nobr><code>{"--continue"}</code></nobr> | `-c` | 继续上一个会话 | |
| | <nobr><code>{"--session"}</code></nobr> | `-s` | 要继续的会话 ID | |
| | <nobr><code>{"--fork"}</code></nobr> | | 继续时分叉会话(与 `--continue` 或 `--session` 配合使用) | |
| | <nobr><code>{"--prompt"}</code></nobr> | | 要使用的提示词 | |
| | <nobr><code>{"--model"}</code></nobr> | `-m` | 要使用的模型,格式为 provider/model | |
| | <nobr><code>{"--agent"}</code></nobr> | | 要使用的代理 | |
| | <nobr><code>{"--port"}</code></nobr> | | 监听端口 | |
| | <nobr><code>{"--hostname"}</code></nobr> | | 监听主机名 | |
|
|
| --- |
| |
| |
|
|
| OpenCode CLI 还提供以下命令。 |
|
|
| --- |
| |
| |
|
|
| 管理 OpenCode 的代理。 |
|
|
| ```bash |
| opencode agent [command] |
| ``` |
|
|
| --- |
| |
| |
|
|
| 将终端连接到已通过 `serve` 或 `web` 命令启动的 OpenCode 后端服务器。 |
|
|
| ```bash |
| opencode attach [url] |
| ``` |
|
|
| 这允许将 TUI 与远程 OpenCode 后端配合使用。例如: |
|
|
| ```bash |
| |
| opencode web --port 4096 --hostname 0.0.0.0 |
|
|
| |
| opencode attach http://10.20.30.40:4096 |
| ``` |
|
|
| |
|
|
| | 标志 | 简写 | 描述 | |
| | ---------------------------------------- | ---- | ------------------------------------------------------------------- | |
| | <nobr><code>{"--dir"}</code></nobr> | | 启动 TUI 的工作目录 | |
| | <nobr><code>{"--continue"}</code></nobr> | `-c` | 继续上一个会话 | |
| | <nobr><code>{"--session"}</code></nobr> | `-s` | 要继续的会话 ID | |
| | <nobr><code>{"--fork"}</code></nobr> | | 继续时派生会话(与 `--continue` 或 `--session` 一起使用) | |
| | <nobr><code>{"--password"}</code></nobr> | `-p` | 基本认证密码(默认使用 `OPENCODE_SERVER_PASSWORD`) | |
| | <nobr><code>{"--username"}</code></nobr> | `-u` | 基本认证用户名(默认使用 `OPENCODE_SERVER_USERNAME` 或 `opencode`) | |
|
|
| --- |
| |
| |
|
|
| 使用自定义配置创建新的代理。 |
|
|
| ```bash |
| opencode agent create |
| ``` |
|
|
| 此命令将引导您使用自定义系统提示词和工具配置来创建新的代理。 |
|
|
| --- |
| |
| |
|
|
| 列出所有可用的代理。 |
|
|
| ```bash |
| opencode agent list |
| ``` |
|
|
| --- |
| |
| |
|
|
| 管理提供商的凭据和登录信息的命令。 |
|
|
| ```bash |
| opencode auth [command] |
| ``` |
|
|
| --- |
| |
| |
|
|
| OpenCode 基于 [Models.dev](https://models.dev) 的提供商列表运行,因此您可以使用 `opencode auth login` 为任何想要使用的提供商配置 API 密钥。密钥存储在 `~/.local/share/opencode/auth.json` 中。 |
|
|
| ```bash |
| opencode auth login |
| ``` |
|
|
| OpenCode 启动时会从凭据文件加载提供商信息,同时也会加载环境变量或项目中 `.env` 文件中定义的密钥。 |
|
|
| --- |
| |
| |
|
|
| 列出凭据文件中存储的所有已认证提供商。 |
|
|
| ```bash |
| opencode auth list |
| ``` |
|
|
| 或使用简写版本。 |
|
|
| ```bash |
| opencode auth ls |
| ``` |
|
|
| --- |
| |
| |
|
|
| 从凭据文件中清除提供商信息以完成登出。 |
|
|
| ```bash |
| opencode auth logout |
| ``` |
|
|
| --- |
| |
| |
|
|
| 管理用于仓库自动化的 GitHub 代理。 |
|
|
| ```bash |
| opencode github [command] |
| ``` |
|
|
| --- |
| |
| |
|
|
| 在您的仓库中安装 GitHub 代理。 |
|
|
| ```bash |
| opencode github install |
| ``` |
|
|
| 此命令会设置必要的 GitHub Actions 工作流并引导您完成配置过程。[了解更多](/docs/github)。 |
|
|
| --- |
| |
| |
|
|
| 运行 GitHub 代理。通常在 GitHub Actions 中使用。 |
|
|
| ```bash |
| opencode github run |
| ``` |
|
|
| |
|
|
| | 标志 | 描述 | |
| | ------------------------------------- | ------------------------------ | |
| | <nobr><code>{"--event"}</code></nobr> | 用于运行代理的 GitHub 模拟事件 | |
| | <nobr><code>{"--token"}</code></nobr> | GitHub 个人访问令牌 | |
|
|
| --- |
| |
| |
|
|
| 管理 Model Context Protocol 服务器。 |
|
|
| ```bash |
| opencode mcp [command] |
| ``` |
|
|
| --- |
| |
| |
|
|
| 将 MCP 服务器添加到您的配置中。 |
|
|
| ```bash |
| opencode mcp add |
| ``` |
|
|
| 此命令将引导您添加本地或远程 MCP 服务器。 |
|
|
| --- |
| |
| |
|
|
| 列出所有已配置的 MCP 服务器及其连接状态。 |
|
|
| ```bash |
| opencode mcp list |
| ``` |
|
|
| 或使用简写版本。 |
|
|
| ```bash |
| opencode mcp ls |
| ``` |
|
|
| --- |
| |
| |
|
|
| 对支持 OAuth 的 MCP 服务器进行认证。 |
|
|
| ```bash |
| opencode mcp auth [name] |
| ``` |
|
|
| 如果您不提供服务器名称,系统将提示您从可用的支持 OAuth 的服务器中进行选择。 |
|
|
| 您还可以列出支持 OAuth 的服务器及其认证状态。 |
|
|
| ```bash |
| opencode mcp auth list |
| ``` |
|
|
| 或使用简写版本。 |
|
|
| ```bash |
| opencode mcp auth ls |
| ``` |
|
|
| --- |
| |
| |
|
|
| 移除 MCP 服务器的 OAuth 凭据。 |
|
|
| ```bash |
| opencode mcp logout [name] |
| ``` |
|
|
| --- |
| |
| |
|
|
| 调试 MCP 服务器的 OAuth 连接问题。 |
|
|
| ```bash |
| opencode mcp debug <name> |
| ``` |
|
|
| --- |
| |
| |
|
|
| 列出已配置提供商的所有可用模型。 |
|
|
| ```bash |
| opencode models [provider] |
| ``` |
|
|
| 此命令以 `provider/model` 的格式显示所有已配置提供商中可用的模型。 |
|
|
| 这对于确定在[配置文件](/docs/config/)中使用的确切模型名称非常有用。 |
|
|
| 您可以选择传入提供商 ID 来按提供商筛选模型。 |
|
|
| ```bash |
| opencode models anthropic |
| ``` |
|
|
| |
|
|
| | 标志 | 描述 | |
| | --------------------------------------- | ---------------------------------------- | |
| | <nobr><code>{"--refresh"}</code></nobr> | 从 models.dev 刷新模型缓存 | |
| | <nobr><code>{"--verbose"}</code></nobr> | 使用更详细的模型输出(包含费用等元数据) | |
|
|
| 使用 `--refresh` 标志可以更新缓存的模型列表。当提供商新增了模型并且您希望在 OpenCode 中看到它们时,此功能非常有用。 |
|
|
| ```bash |
| opencode models --refresh |
| ``` |
|
|
| --- |
| |
| |
|
|
| 以非交互模式运行 OpenCode,直接传入提示词。 |
|
|
| ```bash |
| opencode run [message..] |
| ``` |
|
|
| 这对于脚本编写、自动化或无需启动完整 TUI 即可快速获取答案的场景非常有用。例如: |
|
|
| ```bash "opencode run" |
| opencode run Explain the use of context in Go |
| ``` |
|
|
| 您还可以连接到正在运行的 `opencode serve` 实例,以避免每次运行时 MCP 服务器的冷启动时间: |
|
|
| ```bash |
| |
| opencode serve |
|
|
| |
| opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" |
| ``` |
|
|
| |
|
|
| | 标志 | 简写 | 描述 | |
| | ---------------------------------------- | ---- | ------------------------------------------------------------------- | |
| | <nobr><code>{"--command"}</code></nobr> | | 要运行的命令,使用 message 作为参数 | |
| | <nobr><code>{"--continue"}</code></nobr> | `-c` | 继续上一个会话 | |
| | <nobr><code>{"--session"}</code></nobr> | `-s` | 要继续的会话 ID | |
| | <nobr><code>{"--fork"}</code></nobr> | | 继续时分叉会话(与 `--continue` 或 `--session` 配合使用) | |
| | <nobr><code>{"--share"}</code></nobr> | | 分享会话 | |
| | <nobr><code>{"--model"}</code></nobr> | `-m` | 要使用的模型,格式为 provider/model | |
| | <nobr><code>{"--agent"}</code></nobr> | | 要使用的代理 | |
| | <nobr><code>{"--file"}</code></nobr> | `-f` | 附加到消息的文件 | |
| | <nobr><code>{"--format"}</code></nobr> | | 格式:default(格式化输出)或 json(原始 JSON 事件) | |
| | <nobr><code>{"--title"}</code></nobr> | | 会话标题(未提供值时使用截断的提示词) | |
| | <nobr><code>{"--attach"}</code></nobr> | | 连接到正在运行的 opencode 服务器(例如 http://localhost:4096) | |
| | <nobr><code>{"--password"}</code></nobr> | `-p` | 基本认证密码(默认使用 `OPENCODE_SERVER_PASSWORD`) | |
| | <nobr><code>{"--username"}</code></nobr> | `-u` | 基本认证用户名(默认使用 `OPENCODE_SERVER_USERNAME` 或 `opencode`) | |
| | <nobr><code>{"--dir"}</code></nobr> | | 运行目录,或附加时远程服务器上的路径 | |
| | <nobr><code>{"--variant"}</code></nobr> | | 模型变体(特定于提供商的推理级别) | |
| | <nobr><code>{"--thinking"}</code></nobr> | | 显示思考块 | |
| | <nobr><code>{"--port"}</code></nobr> | | 本地服务器端口(默认为随机端口) | |
|
|
| --- |
| |
| |
|
|
| 启动无界面的 OpenCode 服务器以提供 API 访问。查看[服务器文档](/docs/server)了解完整的 HTTP 接口。 |
|
|
| ```bash |
| opencode serve |
| ``` |
|
|
| 此命令启动一个 HTTP 服务器,提供对 OpenCode 功能的 API 访问,无需 TUI 界面。设置 `OPENCODE_SERVER_PASSWORD` 可启用 HTTP 基本认证(用户名默认为 `opencode`)。 |
|
|
| |
|
|
| | 标志 | 描述 | |
| | ---------------------------------------- | -------------------------- | |
| | <nobr><code>{"--port"}</code></nobr> | 监听端口 | |
| | <nobr><code>{"--hostname"}</code></nobr> | 监听主机名 | |
| | <nobr><code>{"--mdns"}</code></nobr> | 启用 mDNS 发现 | |
| | <nobr><code>{"--cors"}</code></nobr> | 允许 CORS 的额外浏览器来源 | |
|
|
| --- |
| |
| |
|
|
| 管理 OpenCode 会话。 |
|
|
| ```bash |
| opencode session [command] |
| ``` |
|
|
| --- |
| |
| |
|
|
| 列出所有 OpenCode 会话。 |
|
|
| ```bash |
| opencode session list |
| ``` |
|
|
| |
|
|
| | 标志 | 简写 | 描述 | |
| | ----------------------------------------- | ---- | ------------------------------------- | |
| | <nobr><code>{"--max-count"}</code></nobr> | `-n` | 限制为最近 N 个会话 | |
| | <nobr><code>{"--format"}</code></nobr> | | 输出格式:table 或 json(默认 table) | |
|
|
| --- |
| |
| |
|
|
| 显示 OpenCode 会话的 Token 用量和费用统计信息。 |
|
|
| ```bash |
| opencode stats |
| ``` |
|
|
| |
|
|
| | 标志 | 描述 | |
| | --------------------------------------- | ------------------------------------------------------ | |
| | <nobr><code>{"--days"}</code></nobr> | 显示最近 N 天的统计信息(默认为所有时间) | |
| | <nobr><code>{"--tools"}</code></nobr> | 显示的工具数量(默认为全部) | |
| | <nobr><code>{"--models"}</code></nobr> | 显示模型用量明细(默认隐藏)。传入数字可显示前 N 个 | |
| | <nobr><code>{"--project"}</code></nobr> | 按项目筛选(默认为所有项目,传入空字符串表示当前项目) | |
|
|
| --- |
| |
| |
|
|
| 将会话数据导出为 JSON。 |
|
|
| ```bash |
| opencode export [sessionID] |
| ``` |
|
|
| 如果您不提供会话 ID,系统将提示您从可用的会话中进行选择。 |
|
|
| --- |
| |
| |
|
|
| 从 JSON 文件或 OpenCode 分享链接导入会话数据。 |
|
|
| ```bash |
| opencode import <file> |
| ``` |
|
|
| 您可以从本地文件或 OpenCode 分享链接导入。 |
|
|
| ```bash |
| opencode import session.json |
| opencode import https://opncd.ai/s/abc123 |
| ``` |
|
|
| --- |
| |
| |
|
|
| 启动带有 Web 界面的无界面 OpenCode 服务器。 |
|
|
| ```bash |
| opencode web |
| ``` |
|
|
| 此命令启动一个 HTTP 服务器并打开浏览器,通过 Web 界面访问 OpenCode。设置 `OPENCODE_SERVER_PASSWORD` 可启用 HTTP 基本认证(用户名默认为 `opencode`)。 |
|
|
| |
|
|
| | 标志 | 描述 | |
| | ---------------------------------------- | -------------------------- | |
| | <nobr><code>{"--port"}</code></nobr> | 监听端口 | |
| | <nobr><code>{"--hostname"}</code></nobr> | 监听主机名 | |
| | <nobr><code>{"--mdns"}</code></nobr> | 启用 mDNS 发现 | |
| | <nobr><code>{"--cors"}</code></nobr> | 允许 CORS 的额外浏览器来源 | |
|
|
| --- |
| |
| |
|
|
| 启动 ACP(Agent Client Protocol)服务器。 |
|
|
| ```bash |
| opencode acp |
| ``` |
|
|
| 此命令启动一个通过 stdin/stdout 使用 nd-JSON 进行通信的 ACP 服务器。 |
|
|
| |
|
|
| | 标志 | 描述 | |
| | ---------------------------------------- | ---------- | |
| | <nobr><code>{"--cwd"}</code></nobr> | 工作目录 | |
| | <nobr><code>{"--port"}</code></nobr> | 监听端口 | |
| | <nobr><code>{"--hostname"}</code></nobr> | 监听主机名 | |
|
|
| --- |
| |
| |
|
|
| 卸载 OpenCode 并删除所有相关文件。 |
|
|
| ```bash |
| opencode uninstall |
| ``` |
|
|
| |
|
|
| | 标志 | 简写 | 描述 | |
| | ------------------------------------------- | ---- | ------------------------------ | |
| | <nobr><code>{"--keep-config"}</code></nobr> | `-c` | 保留配置文件 | |
| | <nobr><code>{"--keep-data"}</code></nobr> | `-d` | 保留会话数据和快照 | |
| | <nobr><code>{"--dry-run"}</code></nobr> | | 显示将被删除的内容但不实际删除 | |
| | <nobr><code>{"--force"}</code></nobr> | `-f` | 跳过确认提示 | |
|
|
| --- |
| |
| |
|
|
| 将 OpenCode 更新到最新版本或指定版本。 |
|
|
| ```bash |
| opencode upgrade [target] |
| ``` |
|
|
| 更新到最新版本。 |
|
|
| ```bash |
| opencode upgrade |
| ``` |
|
|
| 更新到指定版本。 |
|
|
| ```bash |
| opencode upgrade v0.1.48 |
| ``` |
|
|
| |
|
|
| | 标志 | 简写 | 描述 | |
| | -------------------------------------- | ---- | ------------------------------------------ | |
| | <nobr><code>{"--method"}</code></nobr> | `-m` | 使用的安装方式:curl、npm、pnpm、bun、brew | |
|
|
| --- |
| |
| |
|
|
| OpenCode CLI 接受以下全局标志。 |
|
|
| | 标志 | 简写 | 描述 | |
| | ------------------------------------------ | ---- | ------------------------------------ | |
| | <nobr><code>{"--help"}</code></nobr> | `-h` | 显示帮助信息 | |
| | <nobr><code>{"--version"}</code></nobr> | `-v` | 打印版本号 | |
| | <nobr><code>{"--print-logs"}</code></nobr> | | 将日志输出到 stderr | |
| | <nobr><code>{"--log-level"}</code></nobr> | | 日志级别(DEBUG、INFO、WARN、ERROR) | |
|
|
| --- |
| |
| |
|
|
| OpenCode 可以通过环境变量进行配置。 |
|
|
| | 变量 | 类型 | 描述 | |
| | ------------------------------------- | ------- | --------------------------------------- | |
| | `OPENCODE_AUTO_SHARE` | boolean | 自动分享会话 | |
| | `OPENCODE_GIT_BASH_PATH` | string | Windows 上 Git Bash 可执行文件的路径 | |
| | `OPENCODE_CONFIG` | string | 配置文件路径 | |
| | `OPENCODE_TUI_CONFIG` | string | TUI 配置文件路径 | |
| | `OPENCODE_CONFIG_DIR` | string | 配置目录路径 | |
| | `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 服务器自动下载 | |
| | `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | 启用实验性模型 | |
| | `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | 禁用自动上下文压缩 | |
| | `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | 禁用读取 `.claude`(提示词 + 技能) | |
| | `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | 禁用读取 `~/.claude/CLAUDE.md` | |
| | `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | 禁用加载 `.claude/skills` | |
| | `OPENCODE_DISABLE_MODELS_FETCH` | boolean | 禁用从远程源获取模型 | |
| | `OPENCODE_FAKE_VCS` | string | 用于测试目的的模拟 VCS 提供商 | |
| | `OPENCODE_CLIENT` | string | 客户端标识符(默认为 `cli`) | |
| | `OPENCODE_ENABLE_EXA` | boolean | 启用 Exa 网络搜索工具 | |
| | `OPENCODE_SERVER_PASSWORD` | string | 为 `serve`/`web` 启用基本认证 | |
| | `OPENCODE_SERVER_USERNAME` | string | 覆盖基本认证用户名(默认为 `opencode`) | |
| | `OPENCODE_MODELS_URL` | string | 自定义模型配置获取 URL | |
|
|
| --- |
| |
| |
|
|
| 这些环境变量用于启用可能会更改或移除的实验性功能。 |
|
|
| | 变量 | 类型 | 描述 | |
| | ----------------------------------------------- | ------- | ------------------------------- | |
| | `OPENCODE_EXPERIMENTAL` | boolean | 启用受总开关控制的实验性功能 | |
| | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | 启用图标发现 | |
| | `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | 禁用 TUI 中的选中即复制 | |
| | `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 格式化器 | |
| | `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | 启用实验性 LSP 工具 | |
| | `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | 禁用文件监听器 | |
| | `OPENCODE_EXPERIMENTAL_EXA` | boolean | 启用实验性 Exa 功能 | |
| | `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | 为 python 文件启用 TY LSP | |
| | `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | 启用计划模式 | |
| | `OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS` | boolean | 启用后台子代理任务 | |
| | `OPENCODE_EXPERIMENTAL_EVENT_SYSTEM` | boolean | 启用实验性事件系统 | |
| | `OPENCODE_EXPERIMENTAL_NATIVE_LLM` | boolean | 启用原生 LLM 请求路径 | |
| | `OPENCODE_EXPERIMENTAL_PARALLEL` | boolean | 启用并行 Web 搜索执行 | |
| | `OPENCODE_EXPERIMENTAL_SCOUT` | boolean | 启用 Scout 子代理 | |
| | `OPENCODE_EXPERIMENTAL_WORKSPACES` | boolean | 启用工作区支持 | |
|
|