Summary
Desktop onboarding's agent setup step shows exactly two harness cards — Claude Code and Codex (both cloud). Buzz Agent, which ships inside the desktop app and can run fully local (e.g. Ollama via the OpenAI-compatible provider), is hidden. Users who don't want cloud harnesses have no visible path: the setup step implies installing a cloud CLI is required, and there is no way to dismiss or toggle off the Claude/Codex cards.
Where
desktop/src/features/onboarding/ui/onboardingRuntimeSelection.ts:
export const ONBOARDING_RUNTIME_ORDER = ["claude", "codex"];
Both the setup step (SetupStep) and the onboarding defaults page (DefaultConfigStep) filter through this list, so Buzz Agent is invisible for the entire onboarding flow even though it is always available (authStatus: not_applicable, no install step).
History
#2233 ("Hide bundled harnesses from onboarding") made this a deliberate, centralized seam: "centralize onboarding harness visibility so hidden harnesses can be restored later in one place." This is the case to restore Buzz Agent through that seam — not to relitigate the cloud-first layout.
Proposal
- Add
"buzz-agent" to ONBOARDING_RUNTIME_ORDER (third position, preserving the existing cloud-first order). Its card renders the existing READY state — no install or sign-in action applies.
- Keep Goose hidden (it requires an external CLI install, same as Claude/Codex).
- This also fixes the "can't proceed without cloud" impression: Buzz Agent is always ready, so
readyRuntimeIds is non-empty and the defaults page offers a fully local harness from the start.
- Update the two unit tests that pin the exclusion and the e2e assertion (
onboarding-agent-defaults.spec.ts) that expects the Buzz Agent card to have count 0.
Pairs naturally with #3145 / #3152 (local models via Ollama): together they make "install Buzz → use agents with zero cloud accounts" a coherent first-run story.
I have a PR ready implementing this.
Summary
Desktop onboarding's agent setup step shows exactly two harness cards — Claude Code and Codex (both cloud). Buzz Agent, which ships inside the desktop app and can run fully local (e.g. Ollama via the OpenAI-compatible provider), is hidden. Users who don't want cloud harnesses have no visible path: the setup step implies installing a cloud CLI is required, and there is no way to dismiss or toggle off the Claude/Codex cards.
Where
desktop/src/features/onboarding/ui/onboardingRuntimeSelection.ts:Both the setup step (
SetupStep) and the onboarding defaults page (DefaultConfigStep) filter through this list, so Buzz Agent is invisible for the entire onboarding flow even though it is always available (authStatus: not_applicable, no install step).History
#2233 ("Hide bundled harnesses from onboarding") made this a deliberate, centralized seam: "centralize onboarding harness visibility so hidden harnesses can be restored later in one place." This is the case to restore Buzz Agent through that seam — not to relitigate the cloud-first layout.
Proposal
"buzz-agent"toONBOARDING_RUNTIME_ORDER(third position, preserving the existing cloud-first order). Its card renders the existing READY state — no install or sign-in action applies.readyRuntimeIdsis non-empty and the defaults page offers a fully local harness from the start.onboarding-agent-defaults.spec.ts) that expects the Buzz Agent card to have count 0.Pairs naturally with #3145 / #3152 (local models via Ollama): together they make "install Buzz → use agents with zero cloud accounts" a coherent first-run story.
I have a PR ready implementing this.