From 8cef7940fed5f12cee55a54b7c4c9c0ff1b1a322 Mon Sep 17 00:00:00 2001 From: Aiden Cline Date: Fri, 7 Nov 2025 17:34:38 -0600 Subject: allow reading of opencode.json(c) from .opencode/ --- .opencode/opencode.json | 17 +++++++++++++++++ opencode.json | 17 ----------------- packages/opencode/src/config/config.ts | 13 +++++++++++++ 3 files changed, 30 insertions(+), 17 deletions(-) create mode 100644 .opencode/opencode.json delete mode 100644 opencode.json diff --git a/.opencode/opencode.json b/.opencode/opencode.json new file mode 100644 index 000000000..ae0362547 --- /dev/null +++ b/.opencode/opencode.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://opencode.ai/config.json", + "plugin": ["opencode-openai-codex-auth"], + "mcp": { + "weather": { + "type": "local", + "command": ["bun", "x", "@h1deya/mcp-server-weather"] + }, + "context7": { + "type": "remote", + "url": "https://mcp.context7.com/mcp", + "headers": { + "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}" + } + } + } +} diff --git a/opencode.json b/opencode.json deleted file mode 100644 index ae0362547..000000000 --- a/opencode.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://opencode.ai/config.json", - "plugin": ["opencode-openai-codex-auth"], - "mcp": { - "weather": { - "type": "local", - "command": ["bun", "x", "@h1deya/mcp-server-weather"] - }, - "context7": { - "type": "remote", - "url": "https://mcp.context7.com/mcp", - "headers": { - "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}" - } - } - } -} diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index c2ee63c61..6d6c7c465 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)) -- cgit v1.2.3