From 66e81a7cf45c50914f07dcb7de835039615e5d81 Mon Sep 17 00:00:00 2001 From: hobostay <110hqc@gmail.com> Date: Thu, 5 Mar 2026 14:36:39 +0800 Subject: [PATCH] Fix: `opencode run --attach` should pass auth headers from env vars Fixes #16096 When using `opencode run --attach=localhost:` with OPENCODE_SERVER_USERNAME and OPENCODE_SERVER_PASSWORD env vars, the command failed with "Error: Session not found". This commit adds auth header support to the `run` command's `--attach` mode, matching the behavior of the `attach` TUI command. Changes: - Read OPENCODE_SERVER_PASSWORD and OPENCODE_SERVER_USERNAME env vars - Create Basic auth headers when password is provided - Pass headers to createOpencodeClient --- packages/opencode/src/cli/cmd/run.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index 61bc609bb7c..9de42c540c2 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -648,7 +648,13 @@ export const RunCommand = cmd({ } if (args.attach) { - const sdk = createOpencodeClient({ baseUrl: args.attach, directory }) + // Build auth headers from env vars (same as attach.ts) + const password = process.env.OPENCODE_SERVER_PASSWORD + const username = process.env.OPENCODE_SERVER_USERNAME ?? "opencode" + const headers = password + ? { Authorization: `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}` } + : undefined + const sdk = createOpencodeClient({ baseUrl: args.attach, directory, headers }) return await execute(sdk) }