diff --git a/opencode.json b/.opencode/opencode.json similarity index 100% rename from opencode.json rename to .opencode/opencode.json diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index c2ee63c6..6d6c7c46 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -35,6 +35,19 @@ export namespace Config { } } + const opencodeDirectories = await Array.fromAsync( + Filesystem.up({ + targets: [".opencode"], + start: Instance.directory, + stop: Instance.worktree, + }), + ) + for (const dir of opencodeDirectories.toReversed()) { + for (const file of ["opencode.jsonc", "opencode.json"]) { + result = mergeDeep(result, await loadFile(path.join(dir, file))) + } + } + // Override with custom config if provided if (Flag.OPENCODE_CONFIG) { result = mergeDeep(result, await loadFile(Flag.OPENCODE_CONFIG))