diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index 5214b0c1a9a..28b5331bb26 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -116,7 +116,7 @@ export function tui(input: { url: string; args: Args; onExit?: () => Promise - + diff --git a/packages/opencode/src/cli/cmd/tui/attach.ts b/packages/opencode/src/cli/cmd/tui/attach.ts index 5d1a4ded206..5b522d1b0ea 100644 --- a/packages/opencode/src/cli/cmd/tui/attach.ts +++ b/packages/opencode/src/cli/cmd/tui/attach.ts @@ -1,3 +1,4 @@ +import path from "path" import { cmd } from "../cmd" import { tui } from "./app" @@ -24,7 +25,10 @@ export const AttachCommand = cmd({ if (args.dir) process.chdir(args.dir) await tui({ url: args.url, - args: { sessionID: args.session }, + args: { + sessionID: args.session, + directory: args.dir ? path.resolve(args.dir) : undefined + }, }) }, }) diff --git a/packages/opencode/src/cli/cmd/tui/context/args.tsx b/packages/opencode/src/cli/cmd/tui/context/args.tsx index ffd43009a41..069625297eb 100644 --- a/packages/opencode/src/cli/cmd/tui/context/args.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/args.tsx @@ -6,6 +6,7 @@ export interface Args { prompt?: string continue?: boolean sessionID?: string + directory?: string } export const { use: useArgs, provider: ArgsProvider } = createSimpleContext({ diff --git a/packages/opencode/src/cli/cmd/tui/context/sdk.tsx b/packages/opencode/src/cli/cmd/tui/context/sdk.tsx index 3ea7c90b700..929455e07c1 100644 --- a/packages/opencode/src/cli/cmd/tui/context/sdk.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/sdk.tsx @@ -5,10 +5,11 @@ import { batch, onCleanup, onMount } from "solid-js" export const { use: useSDK, provider: SDKProvider } = createSimpleContext({ name: "SDK", - init: (props: { url: string }) => { + init: (props: { url: string; directory?: string }) => { const abort = new AbortController() const sdk = createOpencodeClient({ baseUrl: props.url, + directory: props.directory, signal: abort.signal, })