feat(desktop): register Grok Build as native ACP runtime + onboarding harness#2546
feat(desktop): register Grok Build as native ACP runtime + onboarding harness#2546Bartok9 wants to merge 2 commits into
Conversation
Coordination note with Cursor PR #2536Grok Build installs both Cursor’s PR intentionally does not treat basename
|
e567b74 to
ea75f3e
Compare
Polish pass (rebased on
|
ea75f3e to
d7ec0c1
Compare
… harness Grok Build already speaks ACP over stdio (`grok agent stdio`) but was missing from KNOWN_ACP_RUNTIMES and the onboarding harness page. - Add grok to catalog (install, ~/.grok/bin PATH, .grok/skills, login hint) - Default args: agent --always-approve stdio for managed/headless agents - Show Grok Build on onboarding next to Claude Code and Codex - Tests + buzz-acp README Closes block#2347. Signed-off-by: Bartok9 <danielrpike9@gmail.com>
Maintainer guidance: registry uses only `grok` + agent/stdio args; never claim bare `agent` so Cursor can disambiguate the shared shim. Unit test locks that contract. README note for operators. Signed-off-by: Bartok9 <danielrpike9@gmail.com>
d7ec0c1 to
ef8edab
Compare
tony-freedomology
left a comment
There was a problem hiding this comment.
Dogfood review (Mac mini, 2026-07-24)
Verified the Grok Build ACP path this PR registers, against a live home Buzz relay + installed Grok CLI.
Environment
grok --version:0.2.111 (94172f2aa4e5) [stable]- Binary on PATH via
~/.local/bin/grok(also present under~/.grok/bin) - Host: macOS aarch64
Live ACP handshake
grok agent --always-approve stdioSent JSON-RPC initialize over stdio. Agent responded with:
protocolVersion: 1agentCapabilities.loadSession: truepromptCapabilities.embeddedContext: true- MCP capabilities advertised
- subsequent
_x.ai/*notifications (MCP servers, announcements)
So the entrypoint this PR defaults to (agent --always-approve stdio) is real and works today — not a hypothetical adapter.
Catalog / onboarding
KNOWN_ACP_RUNTIMESentry forid: "grok"looks correct:- commands/aliases:
grok/grok-build/grokbuild - install hint via official xAI script
- skills dir
.grok/skills - config
~/.grok/config.toml - no fake
auth statusprobe (matches current CLI;login_hintis the right posture)
- commands/aliases:
- Onboarding unit tests pass:
node --test src/features/onboarding/ui/onboardingRuntimeSelection.test.mjs→ 4/4 green (Claude/Codex/Grok visible + order)
Why this matters
Without catalog registration, Desktop setup only shows the hardcoded known harnesses. Grok Build is already ACP-native; users currently have to hand-wire BUZZ_ACP_AGENT_COMMAND=grok outside the UI. This PR closes that gap the same way Hermes/Cursor PRs do.
Non-blocking notes
- Desktop Tauri package tests need
binaries/buzz-acp-*present; I couldn't run the fulldesktop/src-tauricargo suite without the sidecar build path. The onboarding TS tests and live ACP handshake cover the user-facing risk. - Consider a follow-up Doctor check that PATH includes
~/.grok/binwhengrokisn't found on the default PATH (install script often lands there). - Sibling #2344 appears to overlap — worth closing/superceding one after merge to avoid double-registration thrash.
Approve — happy to see this land so Grok shows on "Set up your agent harnesses" next to Claude Code / Codex.
|
Thanks for the live dogfood @tony-freedomology — glad the Consistency note for the related onboarding PRs (#2536 Cursor, #2656/#2633 Hermes): this entry registers |
Summary
Register Grok Build as a first-class ACP harness and show it on Set up your agent harnesses next to Claude Code and Codex.
Closes #2347. Companion: Cursor harness #2536 / #2535.
Why
Grok Build already speaks ACP natively:
grok agent stdio # managed default: grok agent --always-approve stdioWithout catalog registration, Desktop cannot discover, install-hint, or process-sweep Grok the way it does other runtimes. Onboarding also hard-filters visible harnesses (
ONBOARDING_RUNTIME_ORDER).What changed
KNOWN_ACP_RUNTIMES:grokentry (commands: grok, aliasesgrok-build/grokbuild)agent --always-approve stdio(avoids TTY tool-permission blocks for managed agents)~/.grok/bin.grok/skillslogin_hintforgrok login/XAI_API_KEY(no stableauth statusprobe in current CLI —auth_probe_args: None, same posture class as Goose)claude,codex,grokagentReadinesstreats Grok like other CLI harnesses when availablegrokbuzz-acpREADMENon-claims
grok auth statusprobe — CLI currently hasgrok login/grok auth setup, not a codex-style status subcommand.Test plan
cargo test --lib normalizes_grokcargo test --lib resolves_grokcargo test --lib grok_runtimenode --test onboardingRuntimeSelection.test.mjsgrok login/XAI_API_KEY, agent spawn usesgrok agent --always-approve stdioReviewer notes
--always-approveis intentional for managed agents (Buzz spawns without a TTY). Users who want interactive approval can override agent args.Signed-off-by: Bartok9 danielrpike9@gmail.com