用途
opencode 配置技能用于帮助用户设置和个性化自己的 opencode 安装,通过修改正确位置上的正确配置文件来完成配置。技能面向 opencode 配置场景,涉及 provider、模型、agent、skill、命令、权限、主题、快捷键、LSP 服务器、MCP 服务器、格式化器等。
配置文件与位置
JSON 配置(opencode.json / opencode.jsonc)用于运行时/服务器设置,可放在全局(~/.config/opencode/opencode.json)或项目根目录(opencode.json)。两种格式都受支持,JSONC 允许注释与尾随逗号。同一目录中按 config.json、opencode.json、opencode.jsonc 顺序加载,后者覆盖前者。项目配置覆盖全局配置,两者共享同一 schema,可添加 "$schema": "https://opencode.ai/config.json" 以获得 IDE 自动补全。
TUI 配置(tui.json)仅用于终端 UI 设置,可放在全局(~/.config/opencode/tui.json)或项目根目录(tui.json),可添加 "$schema": "https://opencode.ai/tui.json"。
Markdown 文件方面,Rules 位于 ~/.config/opencode/AGENTS.md 或项目根目录 AGENTS.md;Agents 位于 ~/.config/opencode/agents/<name>.md 或 .opencode/agents/<name>.md;Skills 位于 ~/.config/opencode/skills/<name>/SKILL.md 或 .opencode/skills/<name>/SKILL.md;Commands 位于 ~/.config/opencode/commands/<name>.md 或 .opencode/commands/<name>.md。两级文件都会加载,同名项目级文件覆盖全局文件。
优先级顺序
配置为合并而非替换,从低到高为:远程配置(.well-known/opencode 组织默认值)、全局配置、自定义配置(OPENCODE_CONFIG 环境变量)、项目配置、.opencode 目录配置、内联配置(OPENCODE_CONFIG_CONTENT 环境变量)、托管设置(macOS 上的 /Library/Application Support/opencode/),以及 macOS MDM 托管偏好(最高,用户不可覆盖)。
已废弃字段
这些字段仍可用但未来会移除:mode(改用 agent)、autoshare(改用 share)、layout(现在始终使用 stretch 布局)、agent..tools(改用 permission)、agent..maxSteps(改用 steps)。
配置区块
Provider 与模型:可设置 model、small_model(为轻量任务配置更便宜的模型,省略时由 opencode 选择)、provider(npm、name、env、whitelist、blacklist、options 含 baseURL、timeout、setCacheKey,以及 models 定义)。模型字段包括 name、attachment、reasoning、tool_call、limit(context、input、output)、modalities(含 input/output 数组)、variants(如 thinking)、options(如 temperature、topP)等。
权限:控制 agent 可执行的操作,值为 "allow"、"ask"、"deny"。bash 可做细粒度控制,注意插入顺序,opencode 以最后匹配的规则为准,宽泛规则在前、具体规则在后。权限键包括 read、edit、glob、grep、list、bash、task、external_directory、todowrite、webfetch、websearch、lsp、skill、question、doom_loop 及自定义键,write 映射到 edit。部分键只接受平面动作。可由 agent 级权限覆盖顶层权限。
Agents(JSON):字段包括 description、mode(primary/subagent/all)、model、variant、prompt、permission、color、temperature、top_p、steps、hidden、disable、options。color 可用主题色名或十六进制色值。default_agent 设置默认主 agent。task 权限控制 agent 可调用哪些子 agent。
Agents(Markdown):在指定路径创建文件,frontmatter 含 name(可选)、description(必填)、mode、permission、variant、options,正文为系统提示。
Skills:基于文件创建 SKILL.md,name 为 1-64 字符小写字母数字与单个连字符,description 为 1-1024 字符用于触发选择,建议 SKILL.md 控制在 500 行以内。JSON 可配置额外 paths 与 urls。opencode 还会自动发现 ~/.claude/skills 与 ~/.agents/skills 下的技能,可用 OPENCODE_DISABLE_EXTERNAL_SKILLS 或 OPENCODE_DISABLE_CLAUDE_CODE_SKILLS 跳过。
Commands:JSON 形式字段含 template(必填)、description、model、subtask、agent;也可用 Markdown 形式创建。
References:让活动项目之外的本地目录与 Git 仓库作为支持上下文,按 @ 自动补全使用的别名配置,支持 path 或 repository(含 branch),带 description 的引用才会在系统上下文中告知 agent,hidden 仅从 TUI 自动补全中移除。
Rules(Instructions):可通过 instructions 数组引用指令文件或远程 URL,或创建 AGENTS.md;规则可引用外部文件。
主题与快捷键:在 tui.json 中设置 theme,以及自定义 keybinds,可在 TUI 中运行 opencode keybinds 查看全部默认项。
TUI 配置还包括 scroll_speed、scroll_acceleration、diff_style、mouse、plugin、plugin_enabled。
其他区块:Sharing(manual/auto/disabled)、Autoupdate(false 或 notify)、logLevel(DEBUG/INFO/WARN/ERROR)、username、tool_output(max_lines、max_bytes)、experimental(含 disable_paste_summary、batch_tool、openTelemetry、primary_tools、continue_loop_on_deny、mcp_timeout,可用 OPENCODE_EXPERIMENTAL 全部启用)、enterprise(url)、shell、snapshot、server(port、hostname、mdns、mdnsDomain、cors)、compaction(auto、prune、reserved、tail_turns、preserve_recent_tokens)、watcher(ignore)、disabled_providers / enabled_providers(disabled 优先)、formatter(可为某格式化器设 disabled 或自定义 command、extensions、environment)、lsp(true/false 或按服务器配置 disabled、command、extensions、env、initialization;内置 30 个 LSP 服务器)、mcp(本地 stdio 与远程 HTTP/SSE,含 command、environment、url、headers、oauth、timeout,可设 oauth: false 或旧式 enabled: false)。
环境变量与文件替换
配置文件中支持变量替换:{env:VARIABLE} 替换环境变量,{file:path} 替换文件内容(相对配置目录,或使用 / 或 ~ 的绝对路径)。常见环境变量包括 OPENCODE_CONFIG、OPENCODE_CONFIG_CONTENT、OPENCODE_CONFIG_DIR、OPENCODE_DISABLE_LSP_DOWNLOAD、OPENCODE_DISABLE_AUTOUPDATE、OPENCODE_EXPERIMENTAL 等。
限制
资料未提供该技能的具体安装命令、收费与价格信息,也未说明其适用平台范围。部分字段(如 modalities 的嵌套形式、cost.context_over_200k、variants 与 options 接受文档外任意字段)以及完整 provider 与模型 schema、完整快捷键列表、内置 LSP 服务器列表、30+ 环境变量完整清单,资料标注在 reference.md 中,本次未提供具体内容。