配置文件与优先级
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,最终配置两者都有)。配置来源按这个顺序加载(后面的覆盖前面的):
- 远程配置(来自
.well-known/opencode):组织默认值 - 全局配置(
~/.config/opencode/opencode.json):用户偏好 - 自定义配置(
OPENCODE_CONFIG环境变量):自定义覆盖 - 项目配置(项目里的
opencode.json):项目特定设置 .opencode目录:智能体、命令、插件- 内联配置(
OPENCODE_CONFIG_CONTENT环境变量):运行时覆盖 - 托管配置文件(macOS 上是
/Library/Application Support/opencode/):管理员控制 - 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 页。