From 2324a63fc65a29f34fc7472ce867d4ee859919ee Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 23:37:25 -0400 Subject: [PATCH] feat(cli): add session resume flags (#34713) Co-authored-by: Kit Langton <7587245+kitlangton@users.noreply.github.com> --- packages/cli/src/commands/commands.ts | 10 ++++++++++ packages/cli/src/commands/handlers/default.ts | 1 + packages/cli/src/tui.ts | 5 +++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/commands/commands.ts b/packages/cli/src/commands/commands.ts index db956fffc02..d61d21b4f2a 100644 --- a/packages/cli/src/commands/commands.ts +++ b/packages/cli/src/commands/commands.ts @@ -14,6 +14,16 @@ export const Commands = Spec.make(typeof OPENCODE_CLI_NAME === "string" ? OPENCO Flag.withDescription("Run with a private server instead of the background service"), Flag.withDefault(false), ), + continue: Flag.boolean("continue").pipe( + Flag.withAlias("c"), + Flag.withDescription("Continue the last session"), + Flag.withDefault(false), + ), + session: Flag.string("session").pipe( + Flag.withAlias("s"), + Flag.withDescription("Session ID to continue"), + Flag.optional, + ), }, commands: [ Spec.make("api", { diff --git a/packages/cli/src/commands/handlers/default.ts b/packages/cli/src/commands/handlers/default.ts index fbd359c3ba4..4da8eb3fcf0 100644 --- a/packages/cli/src/commands/handlers/default.ts +++ b/packages/cli/src/commands/handlers/default.ts @@ -16,6 +16,7 @@ export default Runtime.handler(Commands, (input) => const { runTui } = yield* Effect.promise(() => import("../../tui")) yield* runTui( transport, + { continue: input.continue, sessionID: Option.getOrUndefined(input.session) }, input.standalone ? undefined : async () => { diff --git a/packages/cli/src/tui.ts b/packages/cli/src/tui.ts index 2c2d3fcc5ce..e8bb67d40d9 100644 --- a/packages/cli/src/tui.ts +++ b/packages/cli/src/tui.ts @@ -5,10 +5,11 @@ import { Global } from "@opencode-ai/core/global" import { loadBuiltinPlugins } from "@opencode-ai/tui/builtins" import { OpenCode } from "@opencode-ai/client" import { createOpencodeClient } from "@opencode-ai/sdk/v2/client" +import type { Args } from "@opencode-ai/tui/context/args" type Transport = { url: string; headers: RequestInit["headers"] } -export function runTui(transport: Transport, reload?: () => Promise) { +export function runTui(transport: Transport, args: Args, reload?: () => Promise) { const config = TuiConfig.resolve({}, { terminalSuspend: false }) let disposeSlots: (() => void) | undefined return Effect.gen(function* () { @@ -32,7 +33,7 @@ export function runTui(transport: Transport, reload?: () => Promise) } } : undefined, - args: {}, + args, config, pluginHost: { async start(input) {