From 8b4eef61f057f06162dcb4ff682e9c68497167a5 Mon Sep 17 00:00:00 2001 From: xfanwu Date: Sun, 15 Mar 2026 18:32:02 +0000 Subject: [PATCH] acpx: add Kiro CLI as built-in ACP agent --- docs/tools/acp-agents.md | 4 ++-- extensions/acpx/skills/acp-router/SKILL.md | 11 ++++++----- .../acpx/src/runtime-internals/mcp-agent-command.ts | 1 + 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/tools/acp-agents.md b/docs/tools/acp-agents.md index d8ac5b5f7d3..ad63b22f018 100644 --- a/docs/tools/acp-agents.md +++ b/docs/tools/acp-agents.md @@ -1,5 +1,5 @@ --- -summary: "Use ACP runtime sessions for Pi, Claude Code, Codex, OpenCode, Gemini CLI, and other harness agents" +summary: "Use ACP runtime sessions for Pi, Claude Code, Codex, Kiro, OpenCode, Gemini CLI, and other harness agents" read_when: - Running coding harnesses through ACP - Setting up thread-bound ACP sessions on thread-capable channels @@ -11,7 +11,7 @@ title: "ACP Agents" # ACP agents -[Agent Client Protocol (ACP)](https://agentclientprotocol.com/) sessions let OpenClaw run external coding harnesses (for example Pi, Claude Code, Codex, OpenCode, and Gemini CLI) through an ACP backend plugin. +[Agent Client Protocol (ACP)](https://agentclientprotocol.com/) sessions let OpenClaw run external coding harnesses (for example Pi, Claude Code, Codex, Kiro, OpenCode, and Gemini CLI) through an ACP backend plugin. If you ask OpenClaw in plain language to "run this in Codex" or "start Claude Code in a thread", OpenClaw should route that request to the ACP runtime (not the native sub-agent runtime). diff --git a/extensions/acpx/skills/acp-router/SKILL.md b/extensions/acpx/skills/acp-router/SKILL.md index 1b7944820b1..762ddc0aba8 100644 --- a/extensions/acpx/skills/acp-router/SKILL.md +++ b/extensions/acpx/skills/acp-router/SKILL.md @@ -1,25 +1,25 @@ --- name: acp-router -description: Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. +description: Route plain-language requests for Pi, Claude Code, Codex, Kiro, OpenCode, Gemini CLI, or ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. user-invocable: false --- # ACP Harness Router -When user intent is "run this in Pi/Claude Code/Codex/OpenCode/Gemini/Kimi (ACP harness)", do not use subagent runtime or PTY scraping. Route through ACP-aware flows. +When user intent is "run this in Pi/Claude Code/Codex/Kiro/OpenCode/Gemini/Kimi (ACP harness)", do not use subagent runtime or PTY scraping. Route through ACP-aware flows. ## Intent detection Trigger this skill when the user asks OpenClaw to: -- run something in Pi / Claude Code / Codex / OpenCode / Gemini +- run something in Pi / Claude Code / Codex / Kiro / OpenCode / Gemini - continue existing harness work - relay instructions to an external coding harness - keep an external harness conversation in a thread-like conversation Mandatory preflight for coding-agent thread requests: -- Before creating any thread for Pi/Claude/Codex/OpenCode/Gemini work, read this skill first in the same turn. +- Before creating any thread for Pi/Claude/Codex/Kiro/OpenCode/Gemini work, read this skill first in the same turn. - After reading, follow `OpenClaw ACP runtime path` below; do not use `message(action="thread-create")` for ACP harness thread spawn. ## Mode selection @@ -39,7 +39,7 @@ Do not use: - `subagents` runtime for harness control - `/acp` command delegation as a requirement for the user -- PTY scraping of pi/claude/codex/opencode/gemini/kimi CLIs when `acpx` is available +- PTY scraping of pi/claude/codex/kiro/opencode/gemini/kimi CLIs when `acpx` is available ## AgentId mapping @@ -48,6 +48,7 @@ Use these defaults when user names a harness directly: - "pi" -> `agentId: "pi"` - "claude" or "claude code" -> `agentId: "claude"` - "codex" -> `agentId: "codex"` +- "kiro" or "kiro cli" -> `agentId: "kiro"` - "opencode" -> `agentId: "opencode"` - "gemini" or "gemini cli" -> `agentId: "gemini"` - "kimi" or "kimi cli" -> `agentId: "kimi"` diff --git a/extensions/acpx/src/runtime-internals/mcp-agent-command.ts b/extensions/acpx/src/runtime-internals/mcp-agent-command.ts index 481c8156aca..d2c4f9044f4 100644 --- a/extensions/acpx/src/runtime-internals/mcp-agent-command.ts +++ b/extensions/acpx/src/runtime-internals/mcp-agent-command.ts @@ -6,6 +6,7 @@ const ACPX_BUILTIN_AGENT_COMMANDS: Record = { codex: "npx @zed-industries/codex-acp", claude: "npx -y @zed-industries/claude-agent-acp", gemini: "gemini", + kiro: "kiro-cli acp", opencode: "npx -y opencode-ai acp", pi: "npx pi-acp", };