diff --git a/cmd/cmd.go b/cmd/cmd.go index 0621e4f5a..475a8d3a9 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -555,7 +555,7 @@ func unknownKey(unknownKeyErr error) error { return unknownKeyErr } - if term.IsTerminal(int(os.Stdout.Fd())) { + if term.IsTerminal(int(os.Stdout.Fd())) && !envconfig.Noninteractive() { // URL encode the key and device name for the browser URL encodedKey := base64.RawURLEncoding.EncodeToString([]byte(localPubKey)) d, _ := os.Hostname() @@ -1547,6 +1547,8 @@ func NewCLI() *cobra.Command { envVars["OLLAMA_GPU_OVERHEAD"], envVars["OLLAMA_LOAD_TIMEOUT"], }) + case pushCmd: + appendEnvDocs(cmd, []envconfig.EnvVar{envVars["OLLAMA_NONINTERACTIVE"]}) default: appendEnvDocs(cmd, envs) } diff --git a/envconfig/config.go b/envconfig/config.go index c10095a64..15b633cfc 100644 --- a/envconfig/config.go +++ b/envconfig/config.go @@ -165,6 +165,9 @@ var ( IntelGPU = Bool("OLLAMA_INTEL_GPU") // MultiUserCache optimizes prompt caching for multi-user scenarios MultiUserCache = Bool("OLLAMA_MULTIUSER_CACHE") + // Noninteractive is true when CLI interactive features should be disabled. + // This affects features like automatic browser opening. + Noninteractive = Bool("OLLAMA_NONINTERACTIVE") ) func String(s string) func() string { @@ -250,6 +253,7 @@ func AsMap() map[string]EnvVar { "OLLAMA_ORIGINS": {"OLLAMA_ORIGINS", Origins(), "A comma separated list of allowed origins"}, "OLLAMA_SCHED_SPREAD": {"OLLAMA_SCHED_SPREAD", SchedSpread(), "Always schedule model across all GPUs"}, "OLLAMA_MULTIUSER_CACHE": {"OLLAMA_MULTIUSER_CACHE", MultiUserCache(), "Optimize prompt caching for multi-user scenarios"}, + "OLLAMA_NONINTERACTIVE": {"OLLAMA_NONINTERACTIVE", Noninteractive(), "Disable interactive CLI features, such as automatically opening the browser"}, // Informational "HTTP_PROXY": {"HTTP_PROXY", String("HTTP_PROXY")(), "HTTP proxy"},