Skip to content

feat(kiro): add ZERO-294 Kiro adapter#42

Closed
spencercharest wants to merge 1 commit into
mainfrom
spencer/zero-301-kiro-aws-adapter-power-skills
Closed

feat(kiro): add ZERO-294 Kiro adapter#42
spencercharest wants to merge 1 commit into
mainfrom
spencer/zero-301-kiro-aws-adapter-power-skills

Conversation

@spencercharest

@spencercharest spencercharest commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a Kiro overlay at plugins/zero-kiro with a Kiro IDE Power, MCP config, steering, Kiro CLI custom-agent template, and hook helpers.
  • Adds scripts/build-kiro.sh to assemble dist/zero-kiro from the Kiro overlay plus the shared Zero skill and runner hook.
  • Adds a standalone consumer guide at guides/kiro.md and links it from the README Install Zero list.
  • Bumps all versioned manifests to 1.4.0 via make minor.

Ticket

ZERO-301 under ZERO-294.

Official references checked

Install/update surfaces

Human / Kiro IDE:

  1. Build the package with ./scripts/build-kiro.sh.
  2. In Kiro, open Powers, choose Add Custom Power, import dist/zero-kiro/power.
  3. Copy dist/zero-kiro/skills/zero into ~/.kiro/skills/zero so Kiro exposes /zero.
  4. Install the runner with curl -fsSL https://zero.xyz/install.sh | bash.

Terminal / Kiro CLI:

./scripts/build-kiro.sh
mkdir -p ~/.kiro/skills ~/.kiro/agents ~/.kiro/zero/hooks
rm -rf ~/.kiro/skills/zero
cp -R dist/zero-kiro/skills/zero ~/.kiro/skills/zero
kiro-cli mcp add --name zero --scope global --url https://mcp.zero.xyz --force
cp dist/zero-kiro/agents/zero.json ~/.kiro/agents/zero.json
cp dist/zero-kiro/hooks/*.sh ~/.kiro/zero/hooks/
chmod +x ~/.kiro/zero/hooks/*.sh
kiro-cli chat --agent zero

Verification

  • ./scripts/build-kiro.sh
  • ./scripts/build-kiro.sh --tar /tmp/zero-kiro.tar.gz
  • make version -> 1.4.0
  • jq . on every plugins/zero-kiro/*.json file.
  • git diff --check
  • Confirmed guides/agent-install.md is not modified.

Docker install/load/hook smoke:

docker run --rm -v "$PWD":/repo -w /repo ubuntu:24.04 bash -lc '
set -euo pipefail
apt-get update >/dev/null
DEBIAN_FRONTEND=noninteractive apt-get install -y curl ca-certificates unzip jq bash >/dev/null
curl -fsSL https://cli.kiro.dev/install | bash >/tmp/kiro-install.log 2>&1
export PATH="$HOME/.local/bin:$PATH"
kiro-cli --version
./scripts/build-kiro.sh >/dev/null
mkdir -p "$HOME/.kiro/skills" "$HOME/.kiro/agents" "$HOME/.kiro/zero/hooks" "$HOME/.kiro/settings"
cp -R dist/zero-kiro/skills/zero "$HOME/.kiro/skills/zero"
cp dist/zero-kiro/agents/zero.json "$HOME/.kiro/agents/zero.json"
cp dist/zero-kiro/hooks/*.sh "$HOME/.kiro/zero/hooks/"
chmod +x "$HOME/.kiro/zero/hooks/"*.sh
cp dist/zero-kiro/power/mcp.json "$HOME/.kiro/settings/mcp.json"
test -f "$HOME/.kiro/skills/zero/SKILL.md"
test -x "$HOME/.kiro/zero/hooks/ensure-runner.sh"
jq -e . "$HOME/.kiro/agents/zero.json" >/dev/null
jq -e . "$HOME/.kiro/settings/mcp.json" >/dev/null
"$HOME/.kiro/zero/hooks/zero-context.sh" | grep -F "Zero is available"
"$HOME/.kiro/zero/hooks/ensure-runner.sh" | grep -F "Zero runner ready"
test -x "$HOME/.zero/runtime/bin/zero"
"$HOME/.zero/runtime/bin/zero" --help | head -n 1
'

Docker copied-auth Zero loop through the Kiro hook-provisioned runner:

docker run --rm -v "$PWD":/repo -v "$HOME/.zero:/host-zero:ro" -w /repo ubuntu:24.04 bash -lc '...'

Observed:

kiro=kiro-cli 2.7.0
runId=run_xFrXfq7PqKam4krFZyMHr
url=https://cdn.withzero.xyz/LolkTqxW/agent-harness-e2e-kiro-docker-20260614232905.txt
payment=0 USDC via mpp on tempo
body=ZERO-301 Kiro Docker copied-auth Zero runner check 20260614232905

~/.zero was copied into the Docker container from the host for the copied-auth Zero loop. No zero review was submitted, per the ZERO-294 test instructions.

E2E status

Draft because a full Kiro-chat-driven Zero capability call still needs a logged-in Kiro CLI / provider setup. In this environment:

  • ~/zeroclick/env does not contain KIRO_API_KEY.
  • Kiro CLI local agent validation and MCP mutation commands return You are not logged in, please log in with kiro-cli login.

Verified: Kiro CLI install, package assembly, file placement, Kiro hook helpers, runner provisioning through the Kiro agentSpawn wrapper, copied ~/.zero auth inside Docker, Zero search/get/fetch, and returned CDN file verification.

Proposed guides/agent-install.md notes

Do not apply this text in this PR. This is the proposed runbook section to fold into guides/agent-install.md later.

### Kiro

Kiro has two install surfaces: Kiro IDE Powers and Kiro CLI custom agents. Powers do not currently install Agent Skills into `~/.kiro/skills`, so always install the Zero skill separately.

Build the Kiro package:

```bash
git clone https://github.com/officialzeroxyz/zero-plugins.git
cd zero-plugins
./scripts/build-kiro.sh
```

For Kiro IDE:

1. In Kiro, open Powers.
2. Choose Add Custom Power.
3. Import `dist/zero-kiro/power`.
4. Install the skill:

```bash
mkdir -p ~/.kiro/skills
rm -rf ~/.kiro/skills/zero
cp -R dist/zero-kiro/skills/zero ~/.kiro/skills/zero
curl -fsSL https://zero.xyz/install.sh | bash
```

For Kiro CLI:

```bash
mkdir -p ~/.kiro/skills ~/.kiro/agents ~/.kiro/zero/hooks
rm -rf ~/.kiro/skills/zero
cp -R dist/zero-kiro/skills/zero ~/.kiro/skills/zero
kiro-cli mcp add --name zero --scope global --url https://mcp.zero.xyz --force
cp dist/zero-kiro/agents/zero.json ~/.kiro/agents/zero.json
cp dist/zero-kiro/hooks/*.sh ~/.kiro/zero/hooks/
chmod +x ~/.kiro/zero/hooks/*.sh
kiro-cli chat --agent zero
```

Kiro skills are exposed as slash commands, so the installed skill is available as `/zero`. Kiro `preToolUse` hooks can block or instruct, but do not document them as an auto-approval path. Auto-approval for MCP tools belongs in Kiro MCP `autoApprove`, and shell command trust belongs to Kiro CLI trust flags or Kiro settings.

Kiro CLI agent hooks are configured in the custom agent JSON. The Zero template wires `agentSpawn` to provision/refresh the runner and `userPromptSubmit` to add Zero context.

Claude-style plugin compatibility and simpler install option

Full Claude Code plugin package support: No. Kiro uses Kiro-specific Powers, steering/hooks, and .kiro/skills/; it does not read or install Claude Code .claude-plugin packages.

What this means for users:

  • Do not expose scripts/build-kiro.sh as a consumer requirement. It should produce a release artifact that users download or install through Kiro's Power/import surface.

  • Preferred no-build shape:

    kiro power install officialzeroxyz/zero-plugins/zero-kiro
    kiro power update zero

    Keep the exact command/UI wording aligned with Kiro's current Power distribution docs before marking ready.

  • If the Kiro adapter is too much maintenance, the lower-scope alternative is a Kiro skill plus remote MCP/steering snippet. There is no Claude-style plugin shortcut here.

GitHub Releases / no-build install check

Result: GitHub repo import yes; GitHub Release asset install not documented. Kiro's Power docs support installing custom Powers from a public GitHub URL in the IDE, and updates refresh from that remote repository. The same docs require POWER.md at the repository root.

Best no-build consumer path:

Kiro Powers panel -> Add Custom Power -> Import power from GitHub -> paste the Zero Power repository URL -> Install

For this monorepo, a Gemini-style release asset is probably the wrong fit unless Kiro later documents release-asset resolution. The cleaner maintenance path is either a dedicated zero-kiro-power repo/branch with POWER.md at root, or a generated release artifact that users manually download/extract only if Kiro cannot import a subdirectory.

@spencercharest

Copy link
Copy Markdown
Collaborator Author

Reconciled against #63: the existing kiro entry was re-verified against current Kiro docs (fragment dialect, mcp path, no-install rationale, auto-approve omission) and stands as-is; the one nuance — Kiro reads only .kiro/skills + ~/.kiro/skills, while the entry also writes the portable ~/.agents/skills tree — is documented in #63. The Powers/GitHub-import path this branch explored is noted there as a future option. The adapter-template work here stays available on this branch if we later ship per-host templates.

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>
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.

1 participant