Skip to content

Dogfood: run ShellForge swarm on jared box via RunPod GPU #76

@jpleva91

Description

@jpleva91

Context

Setting up ShellForge as a governed Goose swarm on the jared box (WSL2, no local GPU), using a RunPod RTX 4090 for Ollama inference.

What we found during setup

  1. shellforge setup detects Linux + no GPU → skips Ollama + Goose entirely. It should offer remote Ollama configuration (set OLLAMA_HOST to a remote endpoint) instead of just saying "use CLI drivers". The headless server use case with remote GPU is a valid deployment.

  2. shellforge setup Step 5 skips Goose on isServer=true — but Goose works fine headlessly with a remote Ollama. The isServer check gates out the primary local agent driver.

  3. shellforge run goose calls goose run --no-session -t <prompt> — need to verify this still works with Goose v1.28.0 (the -t flag for text prompt).

  4. agents.yaml max_parallel auto-detect — on a CPU-only box with remote inference, RAM-based auto-detection is wrong. Should detect remote Ollama and set concurrency based on GPU VRAM instead.

  5. Version drift — installed binary is v0.6.1 but main.go hardcodes var version = "0.4.8". Release build must be overriding, but the source is stale.

Proposed fixes

  • shellforge setup: add "Remote Ollama" option when no local GPU — prompt for OLLAMA_HOST
  • shellforge setup: offer Goose install on headless servers (it works headlessly)
  • shellforge serve: support remote Ollama — skip local mustOllama() health check if OLLAMA_HOST is non-localhost
  • agents.yaml: add inference: remote option that disables RAM-based concurrency
  • Test goose run --no-session -t with v1.28.0 — flag may have changed
  • Sync version var in main.go with release tags

Environment

  • Box: jared (WSL2 Ubuntu, 8-core EPYC, 30GB RAM, no GPU)
  • ShellForge: v0.6.1 (brew tap)
  • Goose: v1.28.0 (Block AI agent, ~/.local/bin/goose)
  • Ollama: v0.18.3 CLI (server to run on RunPod RTX 4090)
  • Target model: qwen3:8b

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium prioritysprintCurrent sprint priority

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions