|
| 1 | +# PRODUCT.md — Support Kiro CLI Agent Integration in Warp |
| 2 | + |
| 3 | +Issue: https://github.com/warpdotdev/warp/issues/9066 |
| 4 | + |
| 5 | +## Summary |
| 6 | + |
| 7 | +Add Kiro CLI (`kiro`) as a first-class supported CLI agent in Warp, alongside |
| 8 | +Claude Code, Codex, Gemini CLI, and the other agents already integrated. When a |
| 9 | +user runs `kiro` in a Warp terminal, Warp detects the session, displays the |
| 10 | +Kiro-branded agent footer, enables the rich input composer (Ctrl-G), and tracks |
| 11 | +session status (in-progress, blocked, success) using the same plugin event |
| 12 | +protocol used by other agents. |
| 13 | + |
| 14 | +Figma: none provided. |
| 15 | + |
| 16 | +## Goals / Non-goals |
| 17 | + |
| 18 | +In-scope: |
| 19 | + |
| 20 | +- Detecting `kiro` as a CLI agent session in the terminal. |
| 21 | +- Displaying the Kiro-branded footer and toolbar chip while a `kiro` session is |
| 22 | + active. |
| 23 | +- Enabling the rich input composer (Ctrl-G / footer button) for composing |
| 24 | + prompts to send to Kiro. |
| 25 | +- Showing plugin install/update instructions when the Warp plugin is not |
| 26 | + installed or is out of date. |
| 27 | +- Tracking session status (InProgress, Blocked, Success) via the Warp plugin |
| 28 | + event protocol. |
| 29 | +- Surfacing Kiro in the "Third party CLI agents" settings page. |
| 30 | +- Telemetry for Kiro sessions consistent with other agents. |
| 31 | +- macOS support (primary). Linux support follows the same code path and is |
| 32 | + included. Windows support is not in scope for this spec. |
| 33 | + |
| 34 | +Out of scope: |
| 35 | + |
| 36 | +- Changes to the Warp built-in agent, execution profiles, or onboarding. |
| 37 | +- A new `SkillProvider::Kiro` variant — Kiro CLI supports the existing |
| 38 | + `SkillProvider::Agents` skill format; no Kiro-specific skill provider is |
| 39 | + needed at this time. |
| 40 | +- Custom toolbar commands or user-configured regex patterns for Kiro. |
| 41 | +- Remote (SSH) session support beyond what the existing plugin infrastructure |
| 42 | + already provides generically. |
| 43 | + |
| 44 | +## Behavior |
| 45 | + |
| 46 | +1. When a user runs `kiro` (or a command whose first token is `kiro`) in a Warp |
| 47 | + terminal pane, Warp detects an active Kiro CLI session and begins tracking it |
| 48 | + in `CLIAgentSessionsModel`. |
| 49 | + |
| 50 | +2. While a Kiro session is active, the Kiro-branded agent footer is displayed at |
| 51 | + the bottom of the terminal pane. The footer shows the Kiro logo, the session |
| 52 | + status, and the rich input button. Layout, interaction model, and dismiss |
| 53 | + behavior are identical to the Claude Code and Gemini footers. |
| 54 | + |
| 55 | +3. Pressing Ctrl-G (or clicking the rich input button in the footer) opens the |
| 56 | + rich input composer. The composer accepts free-form text and slash-command |
| 57 | + skills from `SkillProvider::Agents`. The skill command prefix is `/`. |
| 58 | + |
| 59 | +4. Submitting a prompt from the rich input composer sends it to the running |
| 60 | + `kiro` process via the terminal PTY, exactly as it does for other agents. |
| 61 | + |
| 62 | +5. When the Warp plugin for Kiro is installed and active, session status updates |
| 63 | + (InProgress, Blocked, Success) are reflected in the footer in real time. |
| 64 | + When the plugin is not installed, the footer still appears (via command |
| 65 | + detection) but status tracking is unavailable. |
| 66 | + |
| 67 | +6. When the Warp plugin is not installed, Warp displays plugin install |
| 68 | + instructions in the footer's plugin pane. The instructions guide the user |
| 69 | + through installing the plugin so that status tracking becomes available. |
| 70 | + |
| 71 | +7. When the installed plugin version is below the minimum required version, Warp |
| 72 | + displays plugin update instructions in the same pane. |
| 73 | + |
| 74 | +8. The Kiro agent entry appears in the "Third party CLI agents" settings page |
| 75 | + under Settings → Agents → Third party CLI agents, alongside Claude Code, |
| 76 | + Codex, Gemini, and the other supported agents. The entry shows the Kiro logo, |
| 77 | + name, and a link to the Kiro CLI documentation. |
| 78 | + |
| 79 | +9. Session start, status changes, and session end are reported to telemetry |
| 80 | + using the same `CLIAgentType` telemetry event structure used by other agents, |
| 81 | + with `CLIAgentType::Kiro` as the agent discriminant. |
| 82 | + |
| 83 | +10. The Kiro footer and rich input are not shown when the terminal pane is in a |
| 84 | + remote SSH session where the Warp plugin cannot be confirmed as installed, |
| 85 | + consistent with the behavior of other agents in that context. |
| 86 | + |
| 87 | +11. Kiro sessions are included in shared session state sync (the `cli_agent` |
| 88 | + field in the shared session protocol) using the serialized name `"Kiro"`. |
| 89 | + |
| 90 | +12. The `kiro` command is not treated as a custom/unknown agent — it maps |
| 91 | + directly to `CLIAgent::Kiro` and receives the full first-class treatment |
| 92 | + (branded footer, logo, install instructions) rather than the generic |
| 93 | + "CLI Agent" fallback. |
| 94 | + |
| 95 | +13. No existing agent's behavior, settings, or telemetry is changed by this |
| 96 | + addition. |
0 commit comments