diff --git a/cmd/sketch/main.go b/cmd/sketch/main.go
index 23d6297..f709a3b 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)
+	pubKey, antURL, apiKey, err := skabandclient.Login(os.Stdout, privKey, flags.skabandAddr, flags.sessionID, flags.modelName)
 	if err != nil {
 		return err
 	}
@@ -303,10 +303,13 @@
 	var apiKey, antURL, pubKey string
 
 	if flags.skabandAddr == "" {
-		// Direct mode with Anthropic API key
-		apiKey = os.Getenv("ANTHROPIC_API_KEY")
+		envName := "ANTHROPIC_API_KEY"
+		if flags.modelName == "gemini" {
+			envName = gem.GeminiAPIKeyEnv
+		}
+		apiKey = os.Getenv(envName)
 		if apiKey == "" {
-			return fmt.Errorf("ANTHROPIC_API_KEY environment variable is not set")
+			return fmt.Errorf("%s environment variable is not set", envName)
 		}
 	} else {
 		// Connect to skaband
@@ -314,7 +317,7 @@
 		if err != nil {
 			return err
 		}
-		pubKey, antURL, apiKey, err = skabandclient.Login(os.Stdout, privKey, flags.skabandAddr, flags.sessionID)
+		pubKey, antURL, apiKey, err = skabandclient.Login(os.Stdout, privKey, flags.skabandAddr, flags.sessionID, flags.modelName)
 		if err != nil {
 			return err
 		}
@@ -587,9 +590,8 @@
 	}
 
 	if modelName == "gemini" {
-		apiKey = os.Getenv(gem.GeminiAPIKeyEnv)
 		if apiKey == "" {
-			return nil, fmt.Errorf("missing API key for Gemini model, set %s environment variable", gem.GeminiAPIKeyEnv)
+			return nil, fmt.Errorf("missing %s", gem.GeminiAPIKeyEnv)
 		}
 		return &gem.Service{
 			HTTPC:  client,
diff --git a/skabandclient/skabandclient.go b/skabandclient/skabandclient.go
index 39f6a45..cea4fbe 100644
--- a/skabandclient/skabandclient.go
+++ b/skabandclient/skabandclient.go
@@ -186,6 +186,9 @@
 			return nil, err
 		}
 		b, err := encodePrivateKey(privKey)
+		if err != nil {
+			return nil, err
+		}
 		if err := os.WriteFile(path, b, 0o600); err != nil {
 			return nil, err
 		}
@@ -200,7 +203,7 @@
 	return key, nil
 }
 
-func Login(stdout io.Writer, privKey ed25519.PrivateKey, skabandAddr, sessionID string) (pubKey, apiURL, apiKey string, err error) {
+func Login(stdout io.Writer, privKey ed25519.PrivateKey, skabandAddr, sessionID, model string) (pubKey, apiURL, apiKey string, err error) {
 	sig := ed25519.Sign(privKey, []byte(sessionID))
 
 	req, err := http.NewRequest("POST", skabandAddr+"/authclient", nil)
@@ -211,6 +214,7 @@
 	req.Header.Set("Public-Key", pubKey)
 	req.Header.Set("Session-ID", sessionID)
 	req.Header.Set("Session-ID-Sig", hex.EncodeToString(sig))
+	req.Header.Set("X-Model", model)
 	resp, err := http.DefaultClient.Do(req)
 	if err != nil {
 		return "", "", "", fmt.Errorf("skaband login: %w", err)
