Skip to content

Commit 5597de0

Browse files
rareanAaron Perez
authored andcommitted
spec: add Kiro CLI agent integration spec for GH#9066
Add product and tech specs for supporting Kiro CLI as a first-class CLI agent in Warp, alongside Claude Code, Codex, Gemini, and others. Issue is labeled ready-to-spec: #9066 specs/GH9066/product.md — 13 behavior invariants covering: - Command detection and Kiro-branded footer - Rich input composer (Ctrl-G) and prompt submission via PTY - Plugin install/update instructions pane - Real-time session status tracking (InProgress/Blocked/Success) - Settings page entry, telemetry, shared session serialization - Graceful degradation when plugin is not installed specs/GH9066/tech.md — 5 concrete code changes: - CLIAgent::Kiro variant + all exhaustive match arms (cli_agent.rs) - Icon::KiroLogo + brand color constant (icons.rs + assets/) - CLIAgentType::Kiro telemetry variant (events.rs) - FeatureFlag::KiroCLIAgent gating in DOGFOOD_FLAGS (features.rs) - KiroPluginManager + kiro.rs + kiro_tests.rs (plugin_manager/) Also adds .kiro/ to .gitignore.
1 parent 0fca61d commit 5597de0

3 files changed

Lines changed: 412 additions & 0 deletions

File tree

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ app/src/persistence/schema.rs.orig
4949
# Don't include personal Claude Code settings
5050
.claude/settings.local.json
5151

52+
# External context files (Confluence exports, API specs, etc.)
53+
.artifacts/
54+
55+
# Kiro agent configuration and knowledge base
56+
.kiro/
57+
5258
# Don't include Claude Code worktrees
5359
.claude/worktrees/
5460

specs/GH9066/product.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
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

Comments
 (0)