diff --git a/cmd/sketch/main.go b/cmd/sketch/main.go
index f709a3b..f3f3139 100644
--- a/cmd/sketch/main.go
+++ b/cmd/sketch/main.go
@@ -233,7 +233,7 @@
 	if err != nil {
 		return err
 	}
-	pubKey, antURL, apiKey, err := skabandclient.Login(os.Stdout, privKey, flags.skabandAddr, flags.sessionID, flags.modelName)
+	pubKey, modelURL, apiKey, err := skabandclient.Login(os.Stdout, privKey, flags.skabandAddr, flags.sessionID, flags.modelName)
 	if err != nil {
 		return err
 	}
@@ -249,8 +249,9 @@
 		SessionID:         flags.sessionID,
 		LocalAddr:         flags.addr,
 		SkabandAddr:       flags.skabandAddr,
-		AntURL:            antURL,
-		AntAPIKey:         apiKey,
+		Model:             flags.modelName,
+		ModelURL:          modelURL,
+		ModelAPIKey:       apiKey,
 		Path:              cwd,
 		GitUsername:       flags.gitUsername,
 		GitEmail:          flags.gitEmail,
diff --git a/dockerimg/dockerimg.go b/dockerimg/dockerimg.go
index 5e49392..611901a 100644
--- a/dockerimg/dockerimg.go
+++ b/dockerimg/dockerimg.go
@@ -39,11 +39,14 @@
 	// SkabandAddr is the address of the skaband service if available
 	SkabandAddr string
 
-	// AntURL is the URL of the LLM service.
-	AntURL string
+	// Model is the name of the LLM model to use.
+	Model string
 
-	// AntAPIKey is the API key for LLM service.
-	AntAPIKey string
+	// ModelURL is the URL of the LLM service.
+	ModelURL string
+
+	// ModelAPIKey is the API key for LLM service.
+	ModelAPIKey string
 
 	// Path is the local filesystem path to use
 	Path string
@@ -124,7 +127,7 @@
 		return err
 	}
 
-	imgName, err := findOrBuildDockerImage(ctx, config.Path, gitRoot, config.AntURL, config.AntAPIKey, config.ForceRebuild, config.Verbose)
+	imgName, err := findOrBuildDockerImage(ctx, config.Path, gitRoot, config.Model, config.ModelURL, config.ModelAPIKey, config.ForceRebuild, config.Verbose)
 	if err != nil {
 		return err
 	}
@@ -427,7 +430,7 @@
 		"-i",
 		"--name", cntrName,
 		"-p", hostPort + ":80", // forward container port 80 to a host port
-		"-e", "SKETCH_ANTHROPIC_API_KEY=" + config.AntAPIKey,
+		"-e", "SKETCH_ANTHROPIC_API_KEY=" + config.ModelAPIKey,
 	}
 	if !config.OneShot {
 		cmdArgs = append(cmdArgs, "-t")
@@ -436,8 +439,8 @@
 	for _, envVar := range getEnvForwardingFromGitConfig(ctx) {
 		cmdArgs = append(cmdArgs, "-e", envVar)
 	}
-	if config.AntURL != "" {
-		cmdArgs = append(cmdArgs, "-e", "SKETCH_ANT_URL="+config.AntURL)
+	if config.ModelURL != "" {
+		cmdArgs = append(cmdArgs, "-e", "SKETCH_ANT_URL="+config.ModelURL)
 	}
 	if config.SketchPubKey != "" {
 		cmdArgs = append(cmdArgs, "-e", "SKETCH_PUB_KEY="+config.SketchPubKey)
@@ -466,6 +469,9 @@
 		"-outside-working-dir="+config.OutsideWorkingDir,
 		"-open=false",
 	)
+	if config.Model != "" {
+		cmdArgs = append(cmdArgs, "-model="+config.Model)
+	}
 	if config.SkabandAddr != "" {
 		cmdArgs = append(cmdArgs, "-skaband-addr="+config.SkabandAddr)
 	}
@@ -613,7 +619,7 @@
 	return nil
 }
 
-func findOrBuildDockerImage(ctx context.Context, cwd, gitRoot, antURL, antAPIKey string, forceRebuild, verbose bool) (imgName string, err error) {
+func findOrBuildDockerImage(ctx context.Context, cwd, gitRoot, model, modelURL, modelAPIKey string, forceRebuild, verbose bool) (imgName string, err error) {
 	h := sha256.Sum256([]byte(gitRoot))
 	imgName = "sketch-" + hex.EncodeToString(h[:6])
 
@@ -666,10 +672,19 @@
 			return imgName, nil
 		}
 
+		if model == "gemini" {
+			if strings.HasSuffix(modelURL, "/gemmsgs") {
+				// Horrible hack! Switch back to anthropic for container building.
+				modelURL = strings.Replace(modelURL, "/gemmsgs", "/antmsgs", 1)
+			} else {
+				return "", fmt.Errorf("building docker image with gemini model is not supported yet; start with -model=anthropic first then use gemini")
+			}
+		}
+
 		start := time.Now()
 		srv := &ant.Service{
-			URL:    antURL,
-			APIKey: antAPIKey,
+			URL:    modelURL,
+			APIKey: modelAPIKey,
 			HTTPC:  http.DefaultClient,
 		}
 		dockerfile, err := createDockerfile(ctx, srv, initFiles, subPathWorkingDir)
