diff --git a/cmd/sketch/main.go b/cmd/sketch/main.go
index 08f8cd8..32f9508 100644
--- a/cmd/sketch/main.go
+++ b/cmd/sketch/main.go
@@ -92,7 +92,7 @@
 	ctx := skribe.ContextWithAttr(context.Background(), slog.String("session_id", flagArgs.sessionID))
 
 	// Configure logging
-	slogHandler, logFile, err := setupLogging(flagArgs.oneShot, flagArgs.verbose, flagArgs.unsafe)
+	slogHandler, logFile, err := setupLogging(flagArgs.termUI, flagArgs.verbose, flagArgs.unsafe)
 	if err != nil {
 		return err
 	}
@@ -292,6 +292,7 @@
 		Verbose:           flags.verbose,
 		DockerArgs:        flags.dockerArgs,
 		ExperimentFlag:    flags.experimentFlag.String(),
+		TermUI:            flags.termUI,
 	}
 
 	if err := dockerimg.LaunchContainer(ctx, config); err != nil {
@@ -541,23 +542,26 @@
 
 // setupLogging configures the logging system based on command-line flags.
 // Returns the slog handler and optionally a log file (which should be closed by the caller).
-func setupLogging(oneShot, verbose, unsafe bool) (slog.Handler, *os.File, error) {
+func setupLogging(termui, verbose, unsafe bool) (slog.Handler, *os.File, error) {
 	var slogHandler slog.Handler
 	var logFile *os.File
 	var err error
 
-	if !oneShot && !verbose {
-		// Log to a file
-		logFile, err = os.CreateTemp("", "sketch-cli-log-*")
-		if err != nil {
-			return nil, nil, fmt.Errorf("cannot create log file: %v", err)
-		}
-		if unsafe {
-			fmt.Printf("structured logs: %v\n", logFile.Name())
-		}
+	if verbose && !termui {
+		// Log to stderr
+		slogHandler = slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: slog.LevelDebug})
+		return slogHandler, nil, nil
 	}
 
-	// Always send slogs to the logFile.
+	// Log to a file
+	logFile, err = os.CreateTemp("", "sketch-cli-log-*")
+	if err != nil {
+		return nil, nil, fmt.Errorf("cannot create log file: %v", err)
+	}
+	if unsafe {
+		fmt.Printf("structured logs: %v\n", logFile.Name())
+	}
+
 	slogHandler = slog.NewJSONHandler(logFile, &slog.HandlerOptions{Level: slog.LevelDebug})
 	slogHandler = skribe.AttrsWrap(slogHandler)
 
diff --git a/dockerimg/dockerimg.go b/dockerimg/dockerimg.go
index 41026a4..d824dd0 100644
--- a/dockerimg/dockerimg.go
+++ b/dockerimg/dockerimg.go
@@ -101,6 +101,9 @@
 
 	// ExperimentFlag contains the experimental features to enable
 	ExperimentFlag string
+
+	// TermUI enables terminal UI
+	TermUI bool
 }
 
 // LaunchContainer creates a docker container for a project, installs sketch and opens a connection to it.
@@ -490,6 +493,7 @@
 		"-outside-os="+config.OutsideOS,
 		"-outside-working-dir="+config.OutsideWorkingDir,
 		"-open=false",
+		"-termui="+fmt.Sprintf("%t", config.TermUI),
 		"-x="+config.ExperimentFlag,
 	)
 	if config.Model != "" {
