diff --git a/src/cli.ts b/src/cli.ts index 219118c..8a2737e 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -85,8 +85,9 @@ program .argument("[branch]", "branch name or prompt (if it contains spaces)") .argument("[prompt]", "initial prompt for Claude") .option("-p, --print ", "run Claude in non-interactive mode with -p") + .option("-n, --no-save", "skip auto-save after Claude exits") .description("Create a new session and launch Claude") - .action(async (branch: string | undefined, prompt: string | undefined, opts: { print?: string }) => { + .action(async (branch: string | undefined, prompt: string | undefined, opts: { print?: string; save?: boolean }) => { // No branch given — derive from -p prompt if (!branch && opts.print) { branch = branchFromPrompt(opts.print) @@ -143,7 +144,7 @@ program await vm.claude(worktreeAbs, { prompt, print: opts.print }) } - await saveChanges(worktreeAbs) + if (opts.save !== false) await saveChanges(worktreeAbs) }) // ── sandlot list ────────────────────────────────────────────────────── @@ -181,8 +182,9 @@ program .argument("", "branch name") .argument("[prompt]", "initial prompt for Claude") .option("-p, --print ", "run Claude in non-interactive mode with -p") + .option("-n, --no-save", "skip auto-save after Claude exits") .description("Re-enter an existing session") - .action(async (branch: string, prompt: string | undefined, opts: { print?: string }) => { + .action(async (branch: string, prompt: string | undefined, opts: { print?: string; save?: boolean }) => { const root = await git.repoRoot() const session = await state.getSession(root, branch) @@ -207,6 +209,8 @@ program spin.succeed("Session ready") await vm.claude(session.worktree, { prompt, print: opts.print }) } + + if (opts.save !== false) await saveChanges(session.worktree) }) // ── sandlot close ───────────────────────────────────────────