diff --git a/cmd/sketch/main.go b/cmd/sketch/main.go
index ae029f9..3809701 100644
--- a/cmd/sketch/main.go
+++ b/cmd/sketch/main.go
@@ -44,7 +44,8 @@
 	maxIterations := flag.Uint64("max-iterations", 0, "maximum number of iterations the agent should perform per turn, 0 to disable limit")
 	maxWallTime := flag.Duration("max-wall-time", 0, "maximum time the agent should run per turn, 0 to disable limit")
 	maxDollars := flag.Float64("max-dollars", 5.0, "maximum dollars the agent should spend per turn, 0 to disable limit")
-	oneShot := flag.String("one-shot", "", "run a single iteration with the given prompt and exit without termui")
+	oneShot := flag.Bool("one-shot", false, "exit after the first turn without termui")
+	prompt := flag.String("prompt", "", "prompt to send to sketch")
 	verbose := flag.Bool("verbose", false, "enable verbose output")
 	version := flag.Bool("version", false, "print the version and exit")
 	workingDir := flag.String("C", "", "when set, change to this directory before running")
@@ -80,7 +81,7 @@
 	var slogHandler slog.Handler
 	var err error
 	var logFile *os.File
-	if *oneShot == "" && !*verbose {
+	if !*oneShot && !*verbose {
 		// Log to a file
 		logFile, err = os.CreateTemp("", "sketch-cli-log-*")
 		if err != nil {
@@ -199,6 +200,7 @@
 			OutsideOS:         runtime.GOOS,
 			OutsideWorkingDir: cwd,
 			OneShot:           *oneShot,
+			Prompt:            *prompt,
 		}
 		if err := dockerimg.LaunchContainer(ctx, stdout, stderr, config); err != nil {
 			if *verbose {
@@ -291,8 +293,9 @@
 		}
 	}
 
-	if *oneShot != "" {
-		agent.UserMessage(ctx, *oneShot)
+	// Use prompt if provided
+	if *prompt != "" {
+		agent.UserMessage(ctx, *prompt)
 	}
 
 	// Open the web UI URL in the system browser if requested
@@ -317,7 +320,7 @@
 		go skabandclient.DialAndServeLoop(ctx, *skabandAddr, *sessionID, pubKey, srv, connectFn)
 	}
 
-	if *oneShot != "" {
+	if *oneShot {
 		for {
 			m := agent.WaitForMessage(ctx)
 			if m.Content != "" {
diff --git a/dockerimg/dockerimg.go b/dockerimg/dockerimg.go
index e40a77b..1d6237b 100644
--- a/dockerimg/dockerimg.go
+++ b/dockerimg/dockerimg.go
@@ -77,8 +77,11 @@
 	OutsideOS         string
 	OutsideWorkingDir string
 
-	// If not empty, handle this message and exit
-	OneShot string
+	// If true, exit after the first turn
+	OneShot bool
+
+	// Initial prompt
+	Prompt string
 }
 
 // LaunchContainer creates a docker container for a project, installs sketch and opens a connection to it.
@@ -442,8 +445,11 @@
 	if config.SkabandAddr != "" {
 		cmdArgs = append(cmdArgs, "-skaband-addr="+config.SkabandAddr)
 	}
-	if config.OneShot != "" {
-		cmdArgs = append(cmdArgs, "-one-shot", config.OneShot)
+	if config.Prompt != "" {
+		cmdArgs = append(cmdArgs, "-prompt", config.Prompt)
+	}
+	if config.OneShot {
+		cmdArgs = append(cmdArgs, "-one-shot")
 	}
 	if out, err := combinedOutput(ctx, "docker", cmdArgs...); err != nil {
 		return fmt.Errorf("docker create: %s, %w", out, err)
