Skip to content

OpenCode 简介

OpenCode 是一个开源的 AI 编码代理。它提供终端界面、桌面应用和 IDE 扩展等多种使用方式。

安装

安装 OpenCode 最简单的方法是通过安装脚本。

bash
curl -fsSL https://opencode.ai/install | bash

如果安装 Node.js,可以使用 npm 命令安装

bash
npm install -g opencode-ai

然后在终端执行 opencode 命令即可使用。

推荐:使用 WSL 为了在 Windows 上获得最佳体验,我们推荐使用 Windows Subsystem for Linux (WSL)。它提供更好的性能,并完全兼容 OpenCode 的所有功能。

Windows (WSL) 使用 OpenCode

虽然 OpenCode 可以直接在 Windows 上运行,但推荐使用 Windows Subsystem for Linux (WSL) 以获得最佳体验。WSL 提供了一个 Linux 环境,能够与 OpenCode 的各项功能无缝配合。

WSL 提供更出色的文件系统性能、完整的终端支持,以及与 OpenCode 所依赖的开发工具的良好兼容性。

安装配置

  • 安装 WSL。如果尚未安装,请参照 Microsoft 官方指南安装 WSL
  • 在 WSL 中安装 OpenCode。WSL 设置完成后,打开 WSL 终端,按前面章节安装 OpenCode。
  • 从 WSL 中使用 OpenCode。导航到相应的项目目录(通过 /mnt/c//mnt/d/ 等路径访问 Windows 文件),然后运行 OpenCode。例如:
bash
cd /mnt/c/Users/YourName/project
opencode

配置

OpenCode 是使用 JSON 配置。

配置的格式

OpenCode 支持 JSON 和 JSONC(带注释的 JSON)格式。如 opencode.jsonc

json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "autoupdate": true,
  "server": {
    "port": 4096,
  },
}

配置的位置

配置放置在不同的位置,它们具有不同的优先级顺序。配置文件是合并在一起的,而不是被替换。来自以下配置位置的设置会被合并。后面的配置仅在键冲突时覆盖前面的配置。所有配置中的非冲突设置都会被保留。

配置文件是合并在一起的,而不是替换!例如,如果在全局配置设置了 `autoupdate: true`,而项目配置设置了 `model: "anthropic/claude-sonnet-4-5"`,则最终配置将包含这两个设置。

优先级顺序

配置源按以下顺序加载(后面的源覆盖前面的源):

  1. 远程配置(来自 .well-known/opencode)- 组织默认值
  2. 全局配置~/.config/opencode/opencode.json)- 用户偏好
  3. 自定义配置OPENCODE_CONFIG 环境变量)- 自定义覆盖
  4. 项目配置(项目中的 opencode.json)- 项目特定设置
  5. .opencode 目录 - 代理、命令、插件
  6. 内联配置OPENCODE_CONFIG_CONTENT 环境变量)- 运行时覆盖

即项目配置可以覆盖全局默认值,全局配置可以覆盖远程组织默认值。值得注意:`.opencode` 和 `~/.config/opencode` 目录的子目录使用**复数名称**:`agents/`、`commands/`、`modes/`、`plugins/`、`skills/`、`tools/` 和 `themes/`。为了向后兼容,也支持单数名称(例如 `agent/`)。

全局配置

OpenCode 使用全局配置来设置用户级别的偏好,例如主题、提供商或快捷键。全局配置覆盖远程组织默认值。全局配置位置如下:

  • Window:C:\Users\<用户名>\.config\opencode%USERPROFILE%\.config\opencode
  • Linux:~/.config/opencode/opencode.json

项目级配置

在项目根目录中添加 opencode.json。项目配置在标准配置文件中具有最高优先级——它会覆盖全局配置和远程配置。当 OpenCode 启动时,它会在当前目录中查找配置文件,或向上遍历到最近的 Git 目录。该配置文件也可以安全地提交到 Git 中,并使用与全局配置相同的 Schema。

将项目特定配置放在项目的根目录中。

I know where dry desert ends, green grass grows · MooN