-
Notifications
You must be signed in to change notification settings - Fork 3.9k
spec: add Kiro CLI agent integration spec for GH#9066 #9858
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
rarean
wants to merge
4
commits into
warpdotdev:master
Choose a base branch
from
rarean:spec/9066-kiro-cli
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+548
−0
Open
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
b191c61
spec: add Kiro CLI agent integration spec for GH#9066
rarean fd3ae29
spec: address PR review feedback on GH9066 Kiro CLI spec
rarean 59c9e68
spec: address PR review feedback on GH9066 Kiro CLI spec
rarean a3f60bc
spec: address PR review feedback on GH9066 Kiro CLI spec
rarean File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,107 @@ | ||
| # PRODUCT.md — Support Kiro CLI Agent Integration in Warp | ||
|
|
||
| Issue: https://github.com/warpdotdev/warp/issues/9066 | ||
|
|
||
| ## Summary | ||
|
|
||
| Add Kiro CLI (`kiro`) as a first-class supported CLI agent in Warp, alongside | ||
| Claude Code, Codex, Gemini CLI, and the other agents already integrated. When a | ||
| user runs `kiro` in a Warp terminal, Warp detects the session, displays the | ||
| Kiro-branded agent footer, enables the rich input composer (Ctrl-G), and tracks | ||
| session status (in-progress, blocked, success) using the same plugin event | ||
| protocol used by other agents. | ||
|
|
||
| Figma: none provided. | ||
|
|
||
| ## Goals / Non-goals | ||
|
|
||
| In-scope: | ||
|
|
||
| - Detecting `kiro` as a CLI agent session in the terminal. | ||
| - Displaying the Kiro-branded footer and toolbar chip while a `kiro` session is | ||
| active. | ||
| - Enabling the rich input composer (Ctrl-G / footer button) for composing | ||
| prompts to send to Kiro. | ||
| - Showing plugin install/update instructions when the Warp plugin is not | ||
| installed or is out of date. | ||
| - Tracking session status (InProgress, Blocked, Success) via the Warp plugin | ||
| event protocol. | ||
| - Surfacing Kiro in the "Third party CLI agents" settings page. | ||
| - Telemetry for Kiro sessions consistent with other agents. | ||
| - macOS support (primary). Linux support follows the same code path and is | ||
| included. Windows support is not in scope for this spec. | ||
|
|
||
| Out of scope: | ||
|
|
||
| - Changes to the Warp built-in agent, execution profiles, or onboarding. | ||
| - A new `SkillProvider::Kiro` variant — Kiro CLI supports the existing | ||
| `SkillProvider::Agents` skill format; no Kiro-specific skill provider is | ||
| needed at this time. | ||
| - Custom toolbar commands or user-configured regex patterns for Kiro. | ||
| - Remote (SSH) session support beyond what the existing plugin infrastructure | ||
| already provides generically. | ||
|
|
||
| ## Behavior | ||
|
|
||
| 1. When a user runs `kiro` (or a command whose first token is `kiro`) in a Warp | ||
| terminal pane, Warp detects an active Kiro CLI session and begins tracking it | ||
| in `CLIAgentSessionsModel`. | ||
|
|
||
| 2. While a Kiro session is active, the Kiro-branded agent footer is displayed at | ||
| the bottom of the terminal pane. The footer shows the Kiro logo, the session | ||
| status, and the rich input button. Layout, interaction model, and dismiss | ||
| behavior are identical to the Claude Code and Gemini footers. | ||
|
|
||
| 3. Pressing Ctrl-G (or clicking the rich input button in the footer) opens the | ||
| rich input composer. The composer accepts free-form text and slash-command | ||
| skills from `SkillProvider::Agents`. The skill command prefix is `/`. | ||
|
|
||
| 4. Submitting a prompt from the rich input composer sends it to the running | ||
| `kiro` process via the terminal PTY, exactly as it does for other agents. | ||
|
|
||
| 5. When the Warp plugin for Kiro is installed and active, session status updates | ||
| (InProgress, Blocked, Success) are reflected in the footer in real time. | ||
| When the plugin is not installed, the footer still appears (via command | ||
| detection) but status tracking is unavailable. | ||
|
|
||
| 6. When the Warp plugin is not installed, Warp displays plugin install | ||
| instructions in the footer's plugin pane. The instructions guide the user | ||
| through installing the plugin so that status tracking becomes available. | ||
|
|
||
| 7. When the installed plugin version is below the minimum required version, Warp | ||
| displays plugin update instructions in the same pane. | ||
|
|
||
| 8. The Kiro agent entry appears in the "Third party CLI agents" settings page | ||
| under Settings → Agents → Third party CLI agents, alongside Claude Code, | ||
| Codex, Gemini, and the other supported agents, when | ||
| `FeatureFlag::KiroCLIAgent` is enabled. The entry shows the Kiro logo and | ||
| name. When the flag is disabled, Kiro is hidden from the selector, and any | ||
| persisted command mapping to Kiro is displayed as "Other" in the settings UI | ||
| (without exposing Kiro as a selectable option) until the flag is re-enabled. | ||
| A documentation link is not included in the initial implementation because | ||
| the current settings UI does not render per-agent documentation links for any | ||
| agent; adding that capability is a follow-up item. | ||
|
|
||
| 9. Session start, status changes, and session end are reported to telemetry | ||
| using the same `CLIAgentType` telemetry event structure used by other agents, | ||
| with `CLIAgentType::Kiro` as the agent discriminant. | ||
|
|
||
| 10. In a remote SSH terminal pane, the Kiro footer and rich input still appear | ||
| when a `kiro` command is detected (via command detection, same as local), | ||
| but plugin install and update instructions are not shown because the Warp | ||
| plugin cannot be installed remotely. If the Warp plugin is already running | ||
| on the remote system and emitting events, real-time status tracking works | ||
| normally. If it is not, the footer appears in degraded mode (no status, | ||
| no install instructions pane) — consistent with how other agents behave in | ||
| remote sessions. | ||
|
|
||
| 11. Kiro sessions are included in shared session state sync (the `cli_agent` | ||
| field in the shared session protocol) using the serialized name `"Kiro"`. | ||
|
|
||
| 12. The `kiro` command is not treated as a custom/unknown agent — it maps | ||
| directly to `CLIAgent::Kiro` and receives the full first-class treatment | ||
| (branded footer, logo, install instructions) rather than the generic | ||
| "CLI Agent" fallback. | ||
|
|
||
| 13. No existing agent's behavior, settings, or telemetry is changed by this | ||
| addition. | ||
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.