Skip to content

Add goose and Ollama as first-class onboarding providers - #2464

Open
james-see wants to merge 1 commit into
block:mainfrom
james-see:feat/goose-ollama-first-class-support
Open

Add goose and Ollama as first-class onboarding providers#2464
james-see wants to merge 1 commit into
block:mainfrom
james-see:feat/goose-ollama-first-class-support

Conversation

@james-see

Copy link
Copy Markdown

Summary

Goose was intentionally hidden from the desktop onboarding screen — only Claude Code and Codex were listed as visible runtimes (ONBOARDING_RUNTIME_ORDER = ["claude", "codex"]). This excluded the most popular open-source agent harness from the setup flow.

This PR adds goose as a first-class onboarding runtime and adds Ollama as a first-class LLM provider option.

Changes

Goose onboarding visibility (onboardingRuntimeSelection.ts):

  • Add "goose" to ONBOARDING_RUNTIME_ORDER so it appears in the harness selection and default-config steps alongside Claude Code and Codex

Ollama LLM provider (agentConfigOptions.tsx):

  • Add "ollama" to KNOWN_LLM_PROVIDER_IDS
  • Add { id: "ollama", label: "Ollama (local)" } to PERSONA_LLM_PROVIDER_OPTIONS
  • Add ollama entry to PROVIDER_CREDENTIAL_CONFIG with no required env keys (Ollama runs locally at localhost:11434 by default, no API key needed)
  • No Rust backend changes needed — the goose_requirements readiness function already handles unknown providers via a catch-all _ => {} branch, and goose's file config tier (~/.config/goose/config.yaml) silences provider/model requirements

Tests (onboardingRuntimeSelection.test.mjs):

  • Updated visibility, ordering, and readiness tests to reflect goose inclusion

Tests run

  • pnpm check (biome + file-sizes + px-text + pubkey-truncation): pass
  • node --test onboardingRuntimeSelection.test.mjs (4 tests): pass

Manual validation

Built and ran the desktop app from source (just desktop-standalone) against a local relay:

  • Goose appears as "READY" in the harness selection step
  • Ollama appears as a provider option in the default model config step
  • Goose correctly reads provider/model from ~/.config/goose/config.yaml — no credentials needed for Ollama
  • Agent (goose + Ollama) successfully connects to relay, discovers channels, and responds to @mentions via the ACP harness

Docs updated

No docs changes needed — this is a UI visibility/config change, not a feature behavior change.

Risks / assumptions

  • Goose was intentionally excluded from onboarding. The original test explicitly asserted runtimeIsVisibleInOnboarding("goose") === false. There may be a product reason for this (e.g. goose onboarding UX is incomplete, or Block wants to promote Claude Code/Codex first). If so, this PR can be scoped to just the Ollama provider addition and goose visibility can be revisited separately.
  • Ollama provider has no credential requirements. If the relay or agent harness needs to validate provider credentials for Ollama in the future, the readiness function would need updating.

Plan reference

No plan file — this is a small, well-scoped change (11 lines across 3 files).

@james-see
james-see requested a review from a team as a code owner July 23, 2026 04:36
Goose was hidden from the desktop onboarding screen — only Claude Code
and Codex were listed as visible runtimes. This excluded the most popular
open-source agent harness from the setup flow.

Add goose to ONBOARDING_RUNTIME_ORDER so it appears in the harness
selection and default-config steps alongside Claude Code and Codex.

Add Ollama as a first-class LLM provider in PERSONA_LLM_PROVIDER_OPTIONS
with no required credential env keys (Ollama runs locally at
localhost:11434 by default, no API key needed). The Rust readiness
goose_requirements function already handles unknown providers via a
catch-all branch, so no backend changes are needed — Ollama provider +
model can be satisfied via goose's ~/.config/goose/config.yaml file
config tier.

Updated onboardingRuntimeSelection tests to reflect goose visibility
and ordering changes.

Signed-off-by: jc <jc@jcs-MacBook-Pro.local>
@james-see
james-see force-pushed the feat/goose-ollama-first-class-support branch from 6ba80f7 to fb31557 Compare July 23, 2026 04:39
@tkhumush

Copy link
Copy Markdown

@james-see I am assuming this is only to put ollama in the short list of providers? right now selecting a custom llm provider and setting it to http://localhost:11434 as a provider does not work.

@james-see

Copy link
Copy Markdown
Author

@james-see I am assuming this is only to put ollama in the short list of providers? right now selecting a custom llm provider and setting it to http://localhost:11434 as a provider does not work.

It is to get all that working yes. So both ollama in the dropdown and then it works confirmed. You can build this branch yourself and try it. It also adds goose as a harness available on the front screen too next to codex and claude. Because i dont understand forcing a 3rd party company involved at all for a supposed open app.

@tkhumush

Copy link
Copy Markdown

Yeah, weird call not add Ollama and Goose from the start.

There is a Goose agent that could be added, but that strangely clunky too.

I’ll try the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants