Expand description
Deep merge logic for OpenCode configuration files.
Follows OpenCode’s documented precedence:
- Remote config (.well-known/opencode) — organizational defaults
- Global config (~/.config/opencode/opencode.json) — user preferences
- Custom config (OPENCODE_CONFIG env var) — custom overrides
- Project config (./opencode.json) — project-specific settings
- .opencode directories — agents, commands, plugins
- Inline config (OPENCODE_CONFIG_CONTENT env var) — runtime overrides
- Managed config files — highest priority, not user-overridable
Merge rules (replicating DOCUMENTED behavior):
- For objects: deep merge (project keys override global, global keys preserved)
- For arrays: project replaces global
- For scalars: project overrides global
- Special handling for
providerfield: deep merge provider entries
Enums§
- Merge
Strategy - Strategy for resolving merge conflicts.
Traits§
- Mergeable
- Trait for types that support deep merge operations.
Functions§
- merge_
configs - Merge multiple configs in priority order (lowest priority first).
- merge_
two - Merge two configs with the second taking priority.