opencode
opencode copied to clipboard
[FEATURE]: support config.d/ directory for modular configuration
Feature hasn't been suggested before.
- [x] I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
Problem
Currently, all OpenCode configuration must be in a single opencode.json file. This becomes unwieldy when managing complex setups with many providers, MCP servers, permissions, and custom settings. Users cannot easily:
- Share partial configurations across machines (e.g., just permissions or just theme)
- Keep sensitive configuration separate from version-controlled settings
- Organize configuration logically by concern (providers, permissions, plugins, etc.)
- Manage large sections of granular permissions across multiple files (e.g.,
10-permissions-git.json,11-permissions-test-tools.json,12-permissions-deploy.json)
Proposed Solution
Add support for a config.d/ directory that allows splitting configuration into multiple files:
-
~/.config/opencode/config.d/for global configuration fragments -
.opencode/config.d/for project-specific fragments
Files would be loaded alphabetically and merged after the main config file, following the common Unix pattern (similar to /etc/sudoers.d/, /etc/apt/sources.list.d/, etc.).
Use Cases
-
Granular permissions: Split permissions by tool category (
10-permissions-git.json,11-permissions-test-tools.json,12-permissions-deploy.json) -
Plugin organization: Maintain
50-plugins.jsonfor all plugin definitions - Sensitive data: Store API keys in a non-versioned fragment file
- Shared configs: Symlink common fragments across projects