feat(crush): add ZERO-294 Crush adapter#56
Closed
spencercharest wants to merge 1 commit into
Closed
Conversation
Collaborator
Author
|
Folded into #63 as a matrix entry ( |
spencercharest
added a commit
that referenced
this pull request
Jul 2, 2026
* feat(zero): add 15 agents/harnesses to the install matrix Folds the ZERO-294 adapter PRs (#37-#56, excl. #48/#58) into plugins/zero/agents.json: amp, antigravity, cline, continue-cli, copilot, crush, cursor, devin, goose, hermes, kilo-code, opencode, qwen-code, trae, zed. Roo Code (#53) and Replit Agent (#50) are not addable (product shut down / no local footprint). Existing kiro (#42) and warp (#46) entries were re-verified and stand as-is. qwen-code is plugin-installable (verified live: non-interactive marketplace install with --consent, native --auto-update); everything else is standalone-only. Hook fragments added where the host has a JSON hook config whose semantics tolerate our scripts: continue-cli (full Claude-compatible), devin (SessionStart+UserPromptSubmit), qwen-code (full, ms timeouts), copilot/cursor/goose (SessionStart only, host dialects). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * ci(version-check): detect manifests by top-level version key, not grep agents.json now carries host hook-dialect fragments that legitimately contain a nested "version" field (Copilot/Cursor hooks files); the grep matched it and lockstep failed on a non-manifest. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(zero): drop standalone.mcp from new matrix entries MCP config targets are only needed for ephemeral environments where auth session data cannot be written to disk; the new entries are all persistent hosts. kiro/warp keep their pre-existing blocks. The researched per-host MCP surfaces remain documented in the closed adapter PRs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(zero): drop standalone.mcp from kiro and warp too MCP config targets are only for ephemeral environments where auth session data cannot be written to disk; no matrix entry needs one. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Subtask: ZERO-314 under ZERO-294.
Adds a Crush adapter for Zero without modifying
guides/agent-install.md:plugins/zero-crush/overlay with mergeablecrush.jsonfragment, PreToolUse hook, and manifestSKILL.mdfrontmatter withuser-invocable: truewhile preserving the shared Zero skill bodyscripts/build-crush.shguides/crush.mdand links it from READMEplugins/zero-crush/manifest.jsontoMANIFESTSand bumps versioned manifests to1.4.0withmake minorOfficial sources used
Install and update flow
Human in-harness flow:
curl -fsSL https://zero.xyz/install.sh | bashonce for the shared Zero runner/runtime.scripts/build-crush.shin this repo.dist/zero-crush/.into the target project.dist/zero-crush/crush/crush.zero.jsoninto projectcrush.json,.crush.json, or global~/.config/crush/crush.json.Ctrl+P) and chooseproject:zerooruser:zero, or ask Crush to help set up and test Zero.Terminal flow:
curl -fsSL https://zero.xyz/install.sh | bash scripts/build-crush.sh cp -R dist/zero-crush/. /path/to/your/project/Update flow:
curl -fsSL https://zero.xyz/install.sh | bash scripts/build-crush.sh cp -R dist/zero-crush/. /path/to/your/project/Crush does not currently have SessionStart/UserPromptSubmit hooks, so runner install/update remains manual through the standalone installer. The PreToolUse hook only handles Zero command gating and context injection on bash tool calls.
Proposed
guides/agent-install.mdnotesDo not merge these into
guides/agent-install.mdin this PR. Collect them later during the runbook rewrite..crush/skills/,.agents/skills/,.claude/skills/, and.cursor/skills/, plus configuredoptions.skills_paths.user-invocable: trueso it appears in theCtrl+Pcommand palette asproject:zerooruser:zero.PreToolUsehooks today. Configure acrush.jsonhook withmatcher: "^bash$"andcommand: "./.crush/hooks/zero-pre-tool-use.sh".decision: "allow"for read-only Zero runner commands,decision: "deny"forzero fetchwithout--max-pay, andcontextas a partial substitute for missing UserPromptSubmit hooks.mcp.zerowithtype: "http"andurl: "https://mcp.zero.xyz". OAuth can be left to server discovery unless Crush requires explicit OAuth config in a future release.curl -fsSL https://zero.xyz/install.sh | bash; project template updates are manual viascripts/build-crush.shand copyingdist/zero-crush/.Verification
Local checks:
Docker copied-auth Crush + Zero smoke test:
Copied
~/.zero: yes.Zero result:
crush version v0.77.0run_tyeBM4HhP0mJ5FFpD2m_hcurl -fsSL0 USDC via mpp on tempoNo
zero reviewwas run.Claude-style plugin compatibility and simpler install option
Full Claude Code plugin package support: No. Crush reads Agent Skills and can reuse the Zero skill body, but it does not install Claude Code
.claude-pluginpackages as a full plugin artifact.What this means for users:
The current build/copy flow should be treated as maintainer packaging. Consumers should get a prebuilt
zero-crushartifact or use native Crush skill/MCP configuration.Simplest native Crush flow:
If the custom PreToolUse hook is not worth the support burden, ship only skill + MCP. That is not Claude-style plugin support, but it is likely the lowest-maintenance Crush path.
GitHub Releases / no-build install check
Result: No native Gemini-style GitHub Release install path. Crush supports skills, hooks, and MCP configuration, but I did not find a Crush plugin/package installer that resolves GitHub Release assets for an adapter bundle.
Best no-build consumer path:
A GitHub Release tarball can publish ready-to-copy
.crushfiles andcrush.zero.json, avoidingscripts/build-crush.shfor users. It should be documented as manual download/extract. If the PreToolUse hook is not worth supporting, skill + MCP is the simpler path.PR status
Draft. Docker verified Crush installation, adapter copy into a project, hook behavior, copied-auth Zero runner auth/search/get/fetch, and returned CDN file. I did not run a real interactive Crush TUI/model-backed session to verify skill palette loading and MCP discovery inside the product UI.