opencode icon indicating copy to clipboard operation
opencode copied to clipboard

[FEATURE]: support config.d/ directory for modular configuration

Open ferdinandyb opened this issue 23 hours ago • 1 comments

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.json for all plugin definitions
  • Sensitive data: Store API keys in a non-versioned fragment file
  • Shared configs: Symlink common fragments across projects

ferdinandyb avatar Jan 17 '26 09:01 ferdinandyb