diff --git a/src/cli.ts b/src/cli.ts index 74c4269..e689cec 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -318,7 +318,7 @@ program } } else { spin.succeed("Session ready") - await vm.claude(session.worktree, { prompt, print: opts.print }) + await vm.claude(session.worktree, { prompt, print: opts.print, continue: true }) } if (opts.save !== false) await saveChanges(session.worktree, branch) diff --git a/src/vm.ts b/src/vm.ts index c749e96..08ca30d 100644 --- a/src/vm.ts +++ b/src/vm.ts @@ -172,7 +172,7 @@ export async function status(): Promise<"running" | "stopped" | "missing"> { } /** Launch claude in the container at the given workdir. */ -export async function claude(workdir: string, opts?: { prompt?: string; print?: string }): Promise { +export async function claude(workdir: string, opts?: { prompt?: string; print?: string; continue?: boolean }): Promise { const cwd = containerPath(workdir) const systemPromptLines = [ "You are running inside a sandlot container (Apple Container, ubuntu:24.04).", @@ -188,6 +188,7 @@ export async function claude(workdir: string, opts?: { prompt?: string; print?: const term = process.env.TERM || "xterm-256color" const args = ["container", "exec", "-it", "--user", USER, "--workdir", cwd, CONTAINER_NAME, "env", `TERM=${term}`, `PATH=/home/${USER}/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`, CLAUDE_BIN, "--dangerously-skip-permissions", "--model", "claude-opus-4-6", "--append-system-prompt", systemPrompt] + if (opts?.continue) args.push("--continue") if (opts?.print) args.push("-p", opts.print) else if (opts?.prompt) args.push(opts.prompt)