Skip to content

feat(agents): add Kiro CLI ACP runtime - #2914

Closed
FredLackeyOfficial wants to merge 3 commits into
block:mainfrom
FredLackeyOfficial:feat/kiro-cli-integration
Closed

feat(agents): add Kiro CLI ACP runtime#2914
FredLackeyOfficial wants to merge 3 commits into
block:mainfrom
FredLackeyOfficial:feat/kiro-cli-integration

Conversation

@FredLackeyOfficial

@FredLackeyOfficial FredLackeyOfficial commented Jul 26, 2026

Copy link
Copy Markdown

Summary

  • Add Kiro CLI as a native ACP runtime in Buzz Desktop.
  • Make Kiro discoverable and selectable during onboarding with catalog-owned setup, authentication, model, MCP, and icon metadata.
  • Add runtime, frontend, onboarding, and documentation coverage without introducing a translation adapter.

Scope: this integration uses Kiro's default compatible ACP entry point, kiro-cli acp. Kiro agent engine V3 is not selected or implemented by this PR.

Problem

Buzz currently has no built-in Kiro CLI runtime. Environments that permit Kiro but not the other external harnesses cannot select it during onboarding or receive catalog-driven installation, readiness, login, model, and MCP behavior.

What changed

Runtime

  • Add a catalog-owned kiro runtime that resolves kiro-cli and uses the documented macOS/Linux and Windows installation paths.
  • Normalize empty Kiro arguments to acp in managed-agent discovery and buzz-acp, keeping helper and worker launches consistent.
  • Probe readiness with read-only kiro-cli whoami --format json.
  • Expose kiro-cli login when Kiro does not advertise a usable ACP authentication method or initialization fails while logged out.
  • Inject the bundled buzz-dev-mcp server and expose ACP-native model selection.

Desktop

  • Add Kiro to the onboarding runtime choices after Claude Code and Codex.
  • Add the official rounded Kiro icon to onboarding and Kiro-managed agent avatars.
  • Preserve custom avatars while migrating the prior empty Kiro placeholder.
  • Extend frontend and Playwright coverage for Kiro visibility, readiness, ordering, model behavior, and avatar behavior.

Documentation

  • Update the architecture, setup, testing, vision, ACP, and agent-configuration documentation.
  • Keep technical runtime inventories normalized as goose, kiro, codex, claude code.

Related issues and pull requests

No exact Kiro issue or pull request was found in the duplicate search.

Related context: #2535 tracks the analogous addition of another native ACP runtime. This PR does not close #2535.

Testing

  • . ./bin/activate-hermit && just ci — passed on the exact source tree now at 553645b0.
    • Rust formatting and warnings-as-errors Clippy checks passed.
    • Desktop and web checks/builds passed.
    • Desktop frontend tests passed.
    • Desktop Tauri tests passed, with the existing platform/keychain tests ignored.
    • Flutter formatting, analysis, and 585 mobile tests passed; one existing test was skipped.
  • cargo test -p buzz-acp — 599 unit tests and 9 lifecycle integration tests passed during focused validation.
  • Kiro-focused Desktop Rust, frontend, and onboarding Playwright tests passed.
  • macOS with authenticated Kiro CLI 2.13.0:
    • buzz-acp launched kiro-cli acp directly.
    • Initialization, sessions, prompt streaming/reuse, session/load, cancellation, scoped permissions, concurrent processes, and stdio MCP initialize/list/call passed through the V2 path.
    • Isolated logged-out probes reproduced readiness failure without altering the normal user login.

How to test manually

  1. Install and authenticate Kiro CLI.
  2. Open Buzz onboarding and confirm Kiro appears after Claude Code and Codex with the Kiro icon.
  3. Confirm readiness reflects Kiro's CLI-owned login state and that the setup action exposes kiro-cli login when unauthenticated.
  4. Select Kiro, create an agent, and verify its avatar and catalog-driven configuration.
  5. Start the agent and verify the managed worker launches through the native ACP path with bundled MCP configuration.
  6. Verify model discovery and a bounded prompt/tool turn.

Trade-offs and follow-ups

  • Kiro agent engine V3 is incompatible with Buzz's current generic ACP client and is intentionally out of scope. This PR does not select or claim V3 support.
  • The restricted enterprise environment and supported Windows/Linux installations have not been validated by this macOS test pass.
  • Existing non-Kiro runtime behavior is intended to remain unchanged. The diff adds no unsafe code; new Rust unwrap()/expect() calls are confined to tests.

Signed-off-by: Fred Lackey <fred.lackey@gmail.com>
Signed-off-by: Fred Lackey <fred.lackey@gmail.com>
Signed-off-by: Fred Lackey <fred.lackey@gmail.com>
@FredLackeyOfficial
FredLackeyOfficial force-pushed the feat/kiro-cli-integration branch from cee7d85 to 553645b Compare July 26, 2026 00:16
@FredLackeyOfficial
FredLackeyOfficial marked this pull request as ready for review July 26, 2026 00:19
@FredLackeyOfficial
FredLackeyOfficial requested a review from a team as a code owner July 26, 2026 00:19
@wpfleger96

Copy link
Copy Markdown
Member

🤖 hey @FredLackeyOfficial — thanks for building this. PRs like this one are exactly what convinced us to solve harness support generically instead of one runtime at a time.

That work landed in #2773 and ships in v0.5.0: any ACP-over-stdio binary can be registered from Settings, so kiro-cli acp works today as a custom harness with no code change. There's no Kiro preset yet, but presets are now a small data entry rather than per-harness Rust — a tiny PR away if you want Kiro to be one click.

Closing as superseded. If the generic path misses something for Kiro — the whoami readiness probe, login guidance — a focused issue or preset PR would be great.

@FredLackeyOfficial

Copy link
Copy Markdown
Author

Thanks @wpfleger96 — the generic harness approach is a much cleaner solution. I've opened a Kiro preset PR that drops it into PRESET_HARNESSES as a one-click option: #3287

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.

feat(agents): add Cursor as a first-class ACP runtime (onboarding harness)

2 participants