跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

配置文件与优先级

OpenCode 的 JSON/JSONC 配置:位置与合并优先级(远程、全局、自定义、项目、.opencode 目录、内联、托管)、TUI 单独的 tui.json、远程组织默认值。

你可以用 JSON 配置文件配置 OpenCode,支持 JSON 和 JSONC(带注释的 JSON)格式:

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

位置与优先级

你可以把配置放在几个不同的位置,它们有不同的优先顺序。配置文件是合并的,而不是替换:各位置的设置被合并,后面的配置只对冲突的键覆盖前面的,所有配置里不冲突的设置都保留(例如全局配置设了 autoupdate: true、项目配置设了 model,最终配置两者都有)。配置来源按这个顺序加载(后面的覆盖前面的):

  1. 远程配置(来自 .well-known/opencode):组织默认值
  2. 全局配置(~/.config/opencode/opencode.json):用户偏好
  3. 自定义配置(OPENCODE_CONFIG 环境变量):自定义覆盖
  4. 项目配置(项目里的 opencode.json):项目特定设置
  5. .opencode 目录:智能体、命令、插件
  6. 内联配置(OPENCODE_CONFIG_CONTENT 环境变量):运行时覆盖
  7. 托管配置文件(macOS 上是 /Library/Application Support/opencode/):管理员控制
  8. macOS 托管偏好(通过 MDM 的 .mobileconfig):最高优先级,用户不可覆盖

所以项目配置可以覆盖全局默认值,全局配置可以覆盖远程的组织默认值,托管设置覆盖一切。.opencode 和 ~/.config/opencode 目录的子目录使用复数名:agents/、commands/、modes/、plugins/、skills/、tools/、themes/(为向后兼容也支持单数名如 agent/)。

  • 远程:组织可以通过 .well-known/opencode 端点提供默认配置,在你向支持它的提供商认证时自动获取;远程配置最先加载,作为基础层,其他所有配置源(全局、项目)都可以覆盖这些默认值。例如组织提供默认禁用的 Jira MCP 服务器,你在本地配置里把它设为 enabled: true 就启用
  • 全局:全局配置放在 ~/.config/opencode/opencode.json,用于用户范围的服务器/运行时偏好(提供商、模型、权限);TUI 专用设置用 ~/.config/opencode/tui.json
  • 每项目:在项目根目录添加 opencode.json,它在标准配置文件里优先级最高,覆盖全局和远程配置,可以安全地提交到 Git,且与全局配置使用同样的 schema;项目的 TUI 设置在旁边加 tui.json。OpenCode 启动时先在当前目录找配置文件,然后向上遍历到最近的 Git 目录
  • 自定义路径:用 OPENCODE_CONFIG 环境变量指定自定义配置文件路径(如 export OPENCODE_CONFIG=/path/to/my/custom-config.json),它在优先顺序里介于全局和项目配置之间

各配置键(model、provider、agent、command、mcp、permission、instructions、plugin、formatter、lsp、theme、keybinds 等)的完整列表见官方 Config 页。