@@ -155,9 +155,26 @@ model := ""
155155// ββ Step 1: Ollama (skip on headless server) ββ
156156steps ++
157157if isServer {
158- fmt .Printf ("ββ Step %d/%d: Ollama (skipped β server mode) ββ\n " , steps , total )
159- fmt .Println (" Detected: Linux, no GPU β skipping local model setup" )
160- fmt .Println (" Use CLI drivers instead: shellforge run claude, copilot, codex, gemini" )
158+ fmt .Printf ("ββ Step %d/%d: Ollama (server mode) ββ\n " , steps , total )
159+ fmt .Println (" Detected: Linux, no GPU β remote Ollama configuration" )
160+ fmt .Println ()
161+ fmt .Print (" Configure remote Ollama (OLLAMA_HOST) for GPU endpoint? [Y/n] " )
162+ if confirm (reader ) {
163+ fmt .Print (" Enter OLLAMA_HOST (e.g., http://192.168.1.100:11434): " )
164+ ollamaHost := readLine (reader )
165+ if ollamaHost != "" {
166+ fmt .Printf (" β Set OLLAMA_HOST=%s before running shellforge\n " , ollamaHost )
167+ fmt .Println (" β Remote Ollama configured" )
168+ } else {
169+ fmt .Println (" β No OLLAMA_HOST set β will use default (localhost:11434)" )
170+ }
171+ } else {
172+ fmt .Println (" Skipped remote Ollama configuration" )
173+ }
174+ fmt .Println (" Note: Use CLI drivers for API-based inference:" )
175+ fmt .Println (" shellforge run claude \" review open PRs\" " )
176+ fmt .Println (" shellforge run copilot \" update docs\" " )
177+ fmt .Println (" shellforge run codex \" generate tests\" " )
161178fmt .Println ()
162179} else {
163180fmt .Printf ("ββ Step %d/%d: Ollama (local LLM inference) ββ\n " , steps , total )
@@ -300,10 +317,12 @@ fmt.Println()
300317steps ++
301318fmt .Printf ("ββ Step %d/%d: Agent drivers ββ\n " , steps , total )
302319
303- // On Mac/GPU: offer Goose (local models via Ollama). On server: skip, show API drivers.
304- if ! isServer {
320+ // Offer Goose for both local and remote Ollama (works with OLLAMA_HOST)
305321if _ , err := exec .LookPath ("goose" ); err != nil {
306322fmt .Println (" Goose β AI agent with native Ollama support (actually executes tools)" )
323+ if isServer {
324+ fmt .Println (" Note: Works with remote Ollama via OLLAMA_HOST environment variable" )
325+ }
307326fmt .Print (" Install Goose? [Y/n] " )
308327if confirm (reader ) {
309328fmt .Println (" β Installing Goose..." )
@@ -314,12 +333,19 @@ run("sh", "-c", "curl -fsSL https://github.com/block/goose/releases/download/sta
314333}
315334if _ , err := exec .LookPath ("goose" ); err == nil {
316335fmt .Println (" β Goose installed" )
336+ if isServer {
337+ fmt .Println (" β Run 'goose configure' and set OLLAMA_HOST for remote GPU endpoint" )
338+ } else {
317339fmt .Println (" β Run 'goose configure' to set up Ollama provider" )
340+ }
318341} else {
319342fmt .Println (" β Install failed β try: brew install --cask block-goose" )
320343}
321344}
322345} else {
346+ if isServer {
347+ fmt .Println (" β Goose installed (works with remote Ollama via OLLAMA_HOST)" )
348+ } else {
323349fmt .Println (" β Goose installed (local model driver)" )
324350}
325351}
@@ -397,7 +423,9 @@ fmt.Println("β Setup Complete β")
397423fmt .Println ("ββββββββββββββββββββββββββββββββββββββββ" )
398424fmt .Println ()
399425if isServer {
400- fmt .Println (" Server mode β use CLI drivers:" )
426+ fmt .Println (" Server mode β remote Ollama configuration available" )
427+ fmt .Println (" Set OLLAMA_HOST for remote GPU endpoint" )
428+ fmt .Println (" shellforge run goose \" describe this project\" (works with OLLAMA_HOST)" )
401429fmt .Println (" shellforge run claude \" review open PRs\" " )
402430fmt .Println (" shellforge run copilot \" update docs\" " )
403431fmt .Println (" shellforge run codex \" generate tests\" " )
0 commit comments