diff --git a/packages/opencode/src/cli/cmd/acp.ts b/packages/opencode/src/cli/cmd/acp.ts index 30e919d999..99a9a81ab9 100644 --- a/packages/opencode/src/cli/cmd/acp.ts +++ b/packages/opencode/src/cli/cmd/acp.ts @@ -20,6 +20,7 @@ export const AcpCommand = cmd({ }) }, handler: async (args) => { + process.env.OPENCODE_CLIENT = "acp" await bootstrap(process.cwd(), async () => { const opts = await resolveNetworkOptions(args) const server = Server.listen(opts) diff --git a/packages/opencode/src/flag/flag.ts b/packages/opencode/src/flag/flag.ts index 9084bf4443..df9a1d1285 100644 --- a/packages/opencode/src/flag/flag.ts +++ b/packages/opencode/src/flag/flag.ts @@ -25,7 +25,7 @@ export namespace Flag { OPENCODE_DISABLE_CLAUDE_CODE || truthy("OPENCODE_DISABLE_CLAUDE_CODE_SKILLS") export declare const OPENCODE_DISABLE_PROJECT_CONFIG: boolean export const OPENCODE_FAKE_VCS = process.env["OPENCODE_FAKE_VCS"] - export const OPENCODE_CLIENT = process.env["OPENCODE_CLIENT"] ?? "cli" + export declare const OPENCODE_CLIENT: string export const OPENCODE_SERVER_PASSWORD = process.env["OPENCODE_SERVER_PASSWORD"] export const OPENCODE_SERVER_USERNAME = process.env["OPENCODE_SERVER_USERNAME"] @@ -77,3 +77,14 @@ Object.defineProperty(Flag, "OPENCODE_CONFIG_DIR", { enumerable: true, configurable: false, }) + +// Dynamic getter for OPENCODE_CLIENT +// This must be evaluated at access time, not module load time, +// because some commands override the client at runtime +Object.defineProperty(Flag, "OPENCODE_CLIENT", { + get() { + return process.env["OPENCODE_CLIENT"] ?? "cli" + }, + enumerable: true, + configurable: false, +})