Add goose and Ollama as first-class onboarding providers - #2464
Conversation
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>
6ba80f7 to
fb31557
Compare
|
@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. |
|
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. |
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):"goose"toONBOARDING_RUNTIME_ORDERso it appears in the harness selection and default-config steps alongside Claude Code and CodexOllama LLM provider (
agentConfigOptions.tsx):"ollama"toKNOWN_LLM_PROVIDER_IDS{ id: "ollama", label: "Ollama (local)" }toPERSONA_LLM_PROVIDER_OPTIONSollamaentry toPROVIDER_CREDENTIAL_CONFIGwith no required env keys (Ollama runs locally atlocalhost:11434by default, no API key needed)goose_requirementsreadiness function already handles unknown providers via a catch-all_ => {}branch, and goose's file config tier (~/.config/goose/config.yaml) silences provider/model requirementsTests (
onboardingRuntimeSelection.test.mjs):Tests run
pnpm check(biome + file-sizes + px-text + pubkey-truncation): passnode --test onboardingRuntimeSelection.test.mjs(4 tests): passManual validation
Built and ran the desktop app from source (
just desktop-standalone) against a local relay:~/.config/goose/config.yaml— no credentials needed for OllamaDocs updated
No docs changes needed — this is a UI visibility/config change, not a feature behavior change.
Risks / assumptions
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.Plan reference
No plan file — this is a small, well-scoped change (11 lines across 3 files).