系统托管设置
通过系统目录或 macOS MDM 强制设置,并检查解析后的配置。
托管设置用于组织要求用户和项目不能覆盖的配置。它们高于普通远程默认、用户文件、项目文件与内联配置;macOS 托管偏好又高于托管文件。
系统级文件
管理员可在以下目录放置 opencode.json 或 opencode.jsonc:
| 平台 | 目录 |
|---|---|
| macOS | /Library/Application Support/opencode/ |
| Linux | /etc/opencode/ |
| Windows | %ProgramData%\opencode |
官方说明这些位置需要管理员或 root 写权限。部署时应保留该权限边界,不能把普通用户可写目录当作等价替代。
示例可以集中禁用会话共享并绑定本地地址:
{
"$schema": "https://opencode.ai/config.json",
"share": "disabled",
"server": {
"hostname": "127.0.0.1"
}
}这是组织配置示例,不代表产品默认关闭共享或所有入口已经隔离;仍需核对实际部署及访问方式。
macOS MDM
OpenCode 使用 ai.opencode.managed preference domain。通过 MDM 部署 .mobileconfig,payload 的 PayloadType 使用 ai.opencode.managed,OpenCode 配置键直接写在该 payload 的 dict 中。
官方检查路径依次是:
/Library/Managed Preferences/<user>/ai.opencode.managed.plist。/Library/Managed Preferences/ai.opencode.managed.plist。
plist 键对应 opencode.json 字段,PayloadUUID、PayloadType 等 MDM 元数据会被自动剔除。每个需要的 UUID 应生成唯一值,官方使用 uuidgen;不要复用示例占位 UUID。
部署与验证
官方列出 Jamf Pro 的 Computers → Configuration Profiles → Upload,并设置目标设备或 smart groups。FleetDM 示例将 profile 放入 gitops 的 mdm.macos_settings.custom_settings,然后通过 fleetctl apply 部署。具体工具凭据和发布流程按组织现有管理方法执行。
本地验证可安装 profile 后在系统 Profiles 查看,再运行:
opencode debug config确认托管键出现在解析结果中,并检查普通用户和项目配置无法覆盖它们。查看文件存在、查看合并结果及验证实际操作行为是三个不同层次,不能只检查 JSON 语法就宣布部署成功。