Skip to content
/

Kiro

kiro · kirodotdev/Kiro · ★ 3.8k · last commit 2026-05-15

Primitive shape 10 total
Hooks 10
00

Summary

Kiro — Summary

Kiro is an Amazon/AWS-built agentic IDE and CLI that automates the entire software development lifecycle by converting natural language prompts into structured, three-file specification artifacts (requirements.md, design.md, tasks.md) before writing a single line of code. It solves the "vibe coding" problem — where AI assistants generate plausible but unverifiable code without traceable intent — by enforcing a Requirements → Design → Tasks pipeline grounded in EARS notation and machine-checkable acceptance criteria. What makes Kiro distinct is its native integration of four orthogonal layers: specs (structured planning), steering files (persistent project context via .kiro/steering/), agent hooks (event-driven automations), and MCP servers (external tool connectivity), all inside a VS Code-fork desktop IDE. It targets professional and enterprise developers who need to ship production-grade software with AI assistance while maintaining engineering rigor and auditability. Kiro is production-ready: it is an AWS commercial product with paid tiers, enterprise SAML/SCIM support via AWS IAM Identity Center, and billing through AWS Support.

01

Overview

Kiro — Overview

Origin

Kiro was created by Amazon Web Services (AWS) and publicly launched in 2025. The GitHub repository (kirodotdev/Kiro) was created on June 17, 2025, under the amazon-archives/__template_Custom template. The product is an Amazon commercial offering with billing through AWS Support and enterprise management via AWS IAM Identity Center. The initial repository push was accompanied by the logo and wordmark on August 5, 2025, indicating the public brand reveal followed shortly after internal setup.

Tagline / Official Description

"Kiro is an agentic IDE and command-line interface that helps you go from prototype to production with spec-driven development, agent hooks, powers, and natural language coding assistance."

Kiro's marketing taglines crystallize the philosophy:

"Bring engineering rigor to agentic development"

"Go from vibe coding to viable code"

Problem Framing

The core problem Kiro targets is "vibe coding": developers use LLM chat interfaces to generate code through informal conversation, producing output that works locally but lacks traceable requirements, explicit design decisions, or verifiable acceptance criteria. The resulting code is untestable against original intent, difficult to hand off, and impossible to audit. Kiro's thesis is that AI-assisted development must begin with structured specification, not code generation.

Philosophy

Kiro imposes a three-phase pipeline — Requirements → Design → Tasks — that mirrors formal software engineering practice but is executed through conversational AI. Requirements are expressed using EARS notation (Easy Approach to Requirements Syntax), which forces "WHEN [event] THEN [system] SHALL [response]" phrasing that is inherently testable. Design documents capture architecture, sequence diagrams, data models, and error-handling strategies before any code is written. Task documents decompose the design into discrete, dependency-ordered implementation units with traceability links back to requirements.

The product frames this as "engineering rigor" imposed on top of AI generation, not in opposition to it. The workflow is designed to be iterative: the developer reviews and edits each artifact before the next phase begins, acting as a human approval gate at every phase boundary.

Key Differentiators (Author's Own Words)

From the README:

  • Specs — "Plan and build features using structured specifications that break down requirements into detailed implementation plans"
  • Hooks — "Automate repetitive tasks with intelligent triggers that respond to file changes and development events"
  • Steering — "Guide Kiro's behavior with custom rules and project-specific context through markdown files"
  • MCP Servers — "Connect external tools and data sources through the Model Context Protocol"
  • Powers — "Specialized context and tools for Kiro agents on-demand. Extend agent capabilities with domain-specific knowledge and custom integrations"
  • Privacy First — "Keep your code secure with enterprise-grade security and privacy"

Position in the SDD Ecosystem

Kiro is significant because its three-file spec format (requirements.md / design.md / tasks.md) has become a canonical reference pattern in the spec-driven development community. Multiple independent frameworks (jasonkneen/kiro, lotharschulz/spec-driven-kiro-project) have reverse-engineered or extended this pattern, and Amazon has received attribution from community practitioners as the origin of the most widely-cited SDD approach in agentic AI tooling.

02

Architecture

Kiro — Architecture

Distribution Type

ide-extension (VS Code fork desktop IDE) + cli-tool (Kiro CLI)

Kiro is primarily a standalone desktop application — a fork/extension of VS Code — distributed as a downloadable binary. It is not a plugin for an existing editor, although it imports VS Code extensions and settings via one-click migration. A separate CLI binary provides headless/automation integration.

Install Methods

IDE (Desktop Application):

  • Download directly from kiro.dev
  • Available for macOS, Windows, Linux

CLI:

  • Instructions at kiro.dev/cli
  • No public npm install or brew install documented in the GitHub repo (closed-binary distribution)

Web Interface (Preview as of May 2026):

  • Available at app.kiro.dev for Pro, Pro+, and Power subscribers

File / Directory Layout

Kiro uses a .kiro/ directory at the project root for all per-project configuration:

.kiro/
├── steering/                   # Persistent context markdown files
│   ├── product.md              # Auto-generated: product purpose/goals
│   ├── tech.md                 # Auto-generated: tech stack/frameworks
│   ├── structure.md            # Auto-generated: file org/naming conventions
│   ├── api-design.md           # Optional: REST/GraphQL standards
│   ├── frontend-standards.md   # Optional: framework-specific rules
│   ├── git-workflow.md         # Optional: branch/commit conventions
│   └── <custom>.md             # Any user-defined steering file
└── specs/
    └── <feature-name>/
        ├── requirements.md     # Phase 1: EARS-formatted user stories + AC
        ├── design.md           # Phase 2: architecture, sequence diagrams, models
        └── tasks.md            # Phase 3: implementation task checklist

Global steering lives at ~/.kiro/steering/ (home directory).

Required Dependencies

  • None for end users (closed binary distribution)
  • The GitHub repo itself uses TypeScript 95.6%, Shell 4.1%, JavaScript 0.3% (for issue-automation scripts, not the IDE core)
  • Enterprise: AWS credentials for Bedrock integration in automation scripts

Configuration Files

File Purpose
.kiro/steering/*.md Persistent context injected into every agent interaction (YAML front matter controls inclusion mode)
.kiro/specs/<feature>/requirements.md EARS-formatted requirements with user stories
.kiro/specs/<feature>/design.md Technical design document
.kiro/specs/<feature>/tasks.md Implementation task checklist
~/.kiro/steering/*.md Global steering (applies to all projects)

Steering File Front Matter Schema

---
inclusion: always | fileMatch | manual | auto
fileMatchPattern: 'glob-pattern'   # only for fileMatch mode
description: "description"         # only for auto mode
---

Spec Directory Convention

Each feature/bugfix gets its own subdirectory under .kiro/specs/. Bugfix specs use bugfix.md instead of requirements.md. The directory name is the feature slug (e.g., .kiro/specs/github-issue-automation/).

03

Components

Kiro — Components

Commands

Kiro does not expose slash-commands in the Claude Code or Cursor convention. Interaction is through the IDE's GUI panels (Specs panel, Hooks panel, MCP panel, Steering panel) and the Kiro CLI. No publicly documented slash-command list is available for the closed IDE.

Kiro CLI sub-commands (from kiro.dev/cli, documented at high level):

  • (none enumerated in public documentation)

Count: 0 documented slash-commands

Skills

Kiro does not use the Claude Code "skill" format. Capabilities are built into the IDE.

Notable community extension (jasonkneen/kiro repo) ships skills that replicate Kiro's spec methodology for other tools:

  • spec-driven-development — Three-phase Requirements/Design/Tasks workflow
  • requirements-engineering — EARS-format requirement writing
  • design-documentation — Technical design document creation
  • task-breakdown — Implementation planning
  • quality-assurance — Validation against requirements
  • ai-prompting — Prompting strategies for spec creation
  • create-steering-documents — Steering file generation
  • troubleshooting — Debug and issue resolution

Count (native Kiro): 0 skills Count (jasonkneen community extension): 8 skills

Subagents

Kiro operates as a single agentic system. No named sub-agents or persona roles are documented. Parallel task execution (waves) is internal to the spec execution engine, not named subagents.

Count: 0 named subagents

Hooks (Agent Hooks)

Kiro's "Agent Hooks" are event-triggered automations configured through the IDE. These are Kiro's own hook system, not Claude Code hooks.

Event Type Description
File Save Triggers on file save; file pattern (glob) can filter which files
File Create Triggers when a new file is created
File Delete Triggers when a file is deleted
User Prompt Submit Triggers when user submits a chat prompt
Agent Turn Complete Triggers after the agent finishes a response
Pre Tool Use Triggers before a tool is invoked
Post Tool Use Triggers after a tool completes
Pre Spec Task Triggers before a spec task starts execution
Post Spec Task Triggers after a spec task completes
Manual / On-Demand User-triggered hook

Hook Configuration Fields:

  • title — identifier
  • description — explanation
  • event — trigger type from above list
  • tool name — for tool-specific hooks
  • file pattern — regex/glob for file matching
  • action type — "Ask Kiro" (agent prompt) or "Run Command" (shell)
  • instructions/command — the prompt or shell command to execute

Common use cases documented: generating documentation on save, running unit tests after code changes, optimizing code performance, auto-formatting.

Count: 10 event types

MCP Servers

Kiro has native MCP (Model Context Protocol) support built into the IDE:

  • Remote MCP servers — supported (documented in blog post "Introducing remote MCP servers", Oct 31, 2025)
  • Authentication — token/API key validation required per server
  • Configuration — JSON config file via IDE Settings (Cmd+, → search "MCP")
  • Access — via MCP Servers tab in the Kiro activity bar panel

No specific bundled MCP servers are documented in the public repository. Third-party servers can connect to docs, databases, APIs, and more.

Count: 0 bundled servers (open to any MCP-compatible server)

Powers

"Powers" is a Kiro-specific concept for on-demand domain expertise packs:

"Specialized context and tools for Kiro agents on-demand. Extend agent capabilities with domain-specific knowledge and custom integrations"

Powers are not the same as MCP servers — they are prepackaged knowledge/tool extensions that can be invoked within a session. No public enumeration of available Powers is documented.

Scripts / Binaries

The public GitHub repo ships TypeScript automation scripts under scripts/ for issue management (not part of the IDE itself):

  • classify_issue.ts — AWS Bedrock-powered issue classifier
  • detect_duplicates.ts — Semantic duplicate detection
  • assign_labels.ts — GitHub label automation
  • close_duplicates.ts — Duplicate issue lifecycle management

These are operational tooling for the Kiro repository itself, not user-facing IDE components.

05

Prompts

Kiro — Prompts & Spec Format

Kiro is a closed commercial product. Verbatim system prompts from the IDE are not publicly available. However, the canonical spec file formats, steering file structure, and community-documented prompting techniques are all public and are documented here with verbatim examples.


Excerpt 1: Canonical requirements.md Format

From the official Kiro repo at .kiro/specs/github-issue-automation/requirements.md:

# Requirements Document

## Introduction

This specification defines an automated GitHub issue management system for the Kiro repository.
The system will use AWS Bedrock's Claude Sonnet 4.5 model to intelligently categorize issues,
detect duplicates, and manage issue lifecycle through automated workflows.

## Glossary

- **Issue_Manager**: The automated system that processes GitHub issues (implemented in TypeScript)
- **Bedrock_Classifier**: The AWS Bedrock Claude Sonnet 4.5 model used for intelligent classification
- **Duplicate_Detector**: The component that identifies duplicate issues using AI

## Requirements

### Requirement 1: Automatic Label Assignment

**User Story:** As a repository maintainer, I want issues to be automatically labeled when created,
so that I can quickly identify and prioritize issues without manual categorization.

#### Acceptance Criteria

1. WHEN a new issue is created, THE Issue_Manager SHALL analyze the issue title and body using Bedrock_Classifier
2. WHEN the analysis is complete, THE Label_Assigner SHALL assign relevant feature/component labels from the predefined set
3. WHEN the analysis is complete, THE Label_Assigner SHALL assign relevant OS-specific labels if applicable
4. WHEN the analysis is complete, THE Label_Assigner SHALL assign relevant theme labels based on issue category
5. WHEN labels are assigned, THE Issue_Manager SHALL add the "pending-triage" label to indicate maintainer review is needed
6. WHEN label assignment fails, THE Issue_Manager SHALL log the error and continue without blocking issue creation

### Requirement 2: Duplicate Issue Detection

**User Story:** As a repository maintainer, I want duplicate issues to be automatically identified,
so that I can consolidate discussions and avoid fragmented conversations.

#### Acceptance Criteria

1. WHEN a new issue is created, THE Duplicate_Detector SHALL search for similar existing issues using Bedrock_Classifier
2. WHEN similar issues are found with high confidence (>80%), THE Duplicate_Detector SHALL add a comment listing the potential duplicates
3. WHEN duplicate issues are identified, THE Issue_Manager SHALL add the "duplicate" label to the new issue
4. WHEN no duplicates are found, THE Issue_Manager SHALL proceed without adding duplicate-related comments or labels
5. WHEN the duplicate detection analysis completes, THE comment SHALL include links to all identified duplicate issues with similarity scores

Key structural pattern:

  • ## Introduction — scoped natural language description
  • ## Glossary — defines named actors/components (capitalized, used in EARS clauses)
  • ### Requirement N: Title — numbered requirements
  • **User Story:** — "As a [role], I want [goal], so that [benefit]"
  • #### Acceptance Criteria — numbered list of EARS clauses
  • EARS format: WHEN [event], THE [Actor] SHALL [response]

Excerpt 2: Canonical tasks.md Format

From .kiro/specs/github-issue-automation/tasks.md:

# Implementation Plan: GitHub Issue Automation

## Overview

This implementation plan breaks down the GitHub issue automation system into discrete, manageable tasks.
The system will be built incrementally using TypeScript, starting with core infrastructure,
then adding AI-powered classification, duplicate detection, and finally the automated lifecycle management workflows.

## Tasks

- [x] 1. Set up project structure and dependencies
  - Create `scripts/` directory for TypeScript modules
  - Create `package.json` with dependencies: @aws-sdk/client-bedrock-runtime, @octokit/rest, fast-check
  - Create `tsconfig.json` for TypeScript configuration
  - Set up Node.js environment configuration
  - _Requirements: 5.1, 5.2_

- [ ] 2. Implement core data models
  - [x] 2.1 Create data models module (`data_models.ts`)
    - Implement `ClassificationResult` interface
    - Implement `DuplicateMatch` interface
    - Implement `LabelTaxonomy` interface with all label categories
    - Export DEFAULT_LABEL_TAXONOMY constant
    - _Requirements: 6.1, 6.2, 6.3, 6.4, 6.5_

  - [ ]* 2.2 Write unit tests for data models
    - Test interface type checking
    - Test DEFAULT_LABEL_TAXONOMY contains all required labels
    - Test edge cases (empty values, undefined handling)
    - _Requirements: 6.1, 6.2, 6.3, 6.4, 6.5_

- [ ] 5. Checkpoint - Core classification working
  - Ensure all tests pass, ask the user if questions arise.

Key structural patterns:

  • - [x] / - [ ] — progress tracking (checked = complete)
  • - [ ]* — asterisk denotes optional/deferred task
  • Hierarchical numbering: 1, 1.1, 1.2, 2, 2.1, etc.
  • Implementation details as sub-bullets under each task
  • _Requirements: X.Y, Z.W_ — traceability links back to requirements.md
  • "Checkpoint" tasks with explicit human review gates

Excerpt 3: Canonical design.md Format

From .kiro/specs/github-issue-automation/design.md (first 80 lines):

# Design Document: GitHub Issue Automation

## Overview

This design describes an automated GitHub issue management system that leverages AWS Bedrock's
Claude Sonnet 4.5 model for intelligent issue classification, duplicate detection, and lifecycle management.

The automation handles four primary workflows:
1. **Issue Triage** - Automatically labels new issues and detects duplicates
2. **Duplicate Closure** - Closes confirmed duplicate issues after a grace period
3. **Stale Issue Management** - Closes inactive issues awaiting user response
4. **Label Management** - Ensures label taxonomy is properly maintained

## Architecture

### High-Level Architecture

```mermaid
graph TB
    A[New Issue Created] --> B[Issue Triage Workflow]
    B --> C[Bedrock Classifier]
    C --> D[Label Assignment]
    C --> E[Duplicate Detection]
    ...

Component Architecture

  1. GitHub Actions Workflows - Orchestration layer
  2. Bedrock Integration Module - TypeScript module interfacing with AWS Bedrock API
  3. Label Assignment Module - Analyzes AI output and applies appropriate labels
  4. Duplicate Detection Module - Compares issues and identifies duplicates
  5. Issue Lifecycle Manager - Handles closing of duplicate and stale issues

Components and Interfaces

1. Issue Triage Workflow

File: .github/workflows/issue-triage.yml Trigger: issues event with opened action Responsibilities: [...] Environment Variables: [...] Outputs: [...]

2. Bedrock Classifier Module

File: scripts/classify_issue.ts Interface:

async function classifyIssue(
    issueTitle: string,
    issueBody: string,
    labelTaxonomy: LabelTaxonomy
): Promise<ClassificationResult>

Bedrock API Configuration:

  • Model ID: us.anthropic.claude-sonnet-4-20250514-v1:0
  • Temperature: 0.3 (for consistent classification)

Prompt Structure:

You are an expert GitHub issue classifier for the Kiro project.
Analyze the following issue and recommend appropriate labels from the taxonomy below.

ISSUE TITLE: {title}
ISSUE BODY: {body}
LABEL TAXONOMY: {taxonomy}

Provide your response in JSON format:
{
  "labels": ["label1", "label2", ...],
  "confidence": {"label1": 0.95, ...},
  "reasoning": "Brief explanation of label choices"
}

**Key structural patterns:**
- `## Overview` — summary paragraph
- `## Architecture` — Mermaid diagrams + numbered component list
- `## Components and Interfaces` — one subsection per component with file path, trigger, TypeScript interfaces, environment variables
- Embedded code blocks for interfaces, prompt templates, configuration

---

## Excerpt 4: Steering File Format

From `jasonkneen/kiro` repo at `.kiro/steering/steering-creation-guide.md`:

```markdown
---
inclusion: manual
---

# Steering Document Creation and Usage Guide

## What Are Steering Documents?

Steering documents are contextual guidelines that influence how I approach development tasks.
They contain project-specific standards, conventions, and best practices that help me provide
more relevant and consistent assistance.

## How Steering Documents Work

### Inclusion Mechanisms
1. **Always Included (Default)**: Documents without front-matter are included in every interaction
2. **File Match Conditional**: Documents with `inclusion: fileMatch` and `fileMatchPattern` are
   included when specific files are in context
3. **Manual Inclusion**: Documents with `inclusion: manual` are only included when explicitly
   referenced with `#steering-name`

### Content Structure I Follow:

```markdown
---
inclusion: [always|fileMatch|manual]
fileMatchPattern: 'pattern' # if fileMatch
---

# Clear Title

## Organized Sections
- Specific, actionable guidelines
- Code examples where relevant
- Reference to external files using #[[file:path]]

---

## Excerpt 5: EARS Notation Reference (from jasonkneen SKILL.md)

This is the canonical EARS format documentation used in Kiro's spec methodology:

```markdown
**EARS Format Patterns:**
WHEN [event] THEN [system] SHALL [response]
IF [precondition] THEN [system] SHALL [response]
WHEN [event] AND [condition] THEN [system] SHALL [response]

**Example:**
**User Story:** As a new user, I want to create an account, so that I can access personalized features.

**Acceptance Criteria:**
1. WHEN user provides valid email and password THEN system SHALL create new account
2. WHEN user provides existing email THEN system SHALL display "email already registered" error
3. WHEN user provides password shorter than 8 characters THEN system SHALL display "password too short" error
4. WHEN account creation succeeds THEN system SHALL send confirmation email

Key prompting technique: EARS forces declarative, event-driven phrasing. Each criterion is independently verifiable and maps directly to a test case. The named Glossary actors (capitalized) carry through from requirements.md into design.md and tasks.md, creating a consistent vocabulary across all three artifacts.


Note on System Prompts

Kiro's internal IDE system prompts are proprietary and not publicly disclosed. The blog post series on kiro.dev/blog covers architectural decisions (AST-based editing, program analysis for safe refactoring) but does not quote system prompts. The community repo jasonkneen/kiro is described as "Complete System Prompts for Kiro IDE by Amazon" but this appears to be a community-reconstructed set of prompts/skills, not official internal prompts. The formats documented above (requirements.md, design.md, tasks.md, steering file front matter) represent the full public specification of Kiro's artifact formats.

09

Uniqueness

Kiro — Uniqueness & Positioning

What Kiro Does That No Other Seed Framework Does

1. Canonical Origin of the Three-File SDD Artifact

Kiro is the original source of the requirements.md / design.md / tasks.md three-file spec pattern that many other frameworks now imitate. Multiple community frameworks (jasonkneen/kiro, lotharschulz/spec-driven-kiro-project, kazini/yask-spec-kit) have explicitly reverse-engineered or extended this pattern. Amazon received direct attribution from the jasonkneen maintainer: "Amazon... 'It's the best stuff I have found on [spec driven development]. I will be sharing links back to your repo with full attribution.'" No other framework in the seed set can claim to be the pattern's origin.

2. Agent Hooks as First-Class IDE Feature

Kiro ships event-triggered automations as a built-in IDE concept, not a shell script workaround. Hooks fire on 10 distinct event types (File Save, File Create, File Delete, User Prompt Submit, Agent Turn Complete, Pre/Post Tool Use, Pre/Post Spec Task, Manual) with GUI configuration. No other framework treats event-driven automation as a native IDE component at this level of integration.

3. Steering Files with Inclusion Modes

The .kiro/steering/ system with YAML front-matter-controlled inclusion modes (always / fileMatch / manual / auto) is a distinct context management architecture. Other frameworks use CLAUDE.md or flat rules files; Kiro's approach is a structured, multi-file context library with granular loading conditions. The fileMatch mode (load only when specific file patterns are in context) is particularly novel — it eliminates context waste for domain-specific guidance.

4. Powers (On-Demand Domain Knowledge)

"Powers" — prepackaged domain-specific knowledge and tools activated on demand — are a Kiro-exclusive concept. This is distinct from MCP servers (external data sources) and from steering files (persistent rules). Powers are ephemeral context modules for specialized workflows.

5. AWS/Enterprise Integration

Kiro is the only framework with enterprise-grade AWS integration: AWS IAM Identity Center for SAML/SCIM SSO, organizational billing via AWS Support, AWS Bedrock for model inference. This positions it uniquely for enterprise teams already on AWS.

6. Parallel Wave Execution

Kiro analyzes task dependencies in tasks.md and executes independent tasks as parallel "waves." This is infrastructure-level parallelism, not a methodology suggestion. No other documented framework in the seed set implements dependency-aware parallel task execution.

What Kiro Explicitly Drops

  • No open-source IDE core — the IDE binary is closed-source; the GitHub repo is only an issue tracker and documentation repo
  • No plugin architecture for existing editors — Kiro is not a VS Code extension, Cursor rule set, or Claude Code plugin; it is a competing product
  • No free unlimited tier — 50 credits/month free tier is deliberately constrained to drive paid conversion
  • No community-extensible prompt library — unlike BMAD or Superpowers, Kiro does not ship a public library of customizable prompts/agents
  • No methodology-only mode — Kiro's spec format cannot be used without the Kiro IDE/CLI (unlike jasonkneen's community port which works in Claude Code/Cursor)

One-Sentence Positioning

Kiro is the Amazon-built IDE that invented the requirements.md / design.md / tasks.md spec pattern and adds steering files, event hooks, and parallel wave execution as first-class IDE features, targeting enterprises that need AI-assisted development with engineering rigor and AWS-scale reliability.

Failure Modes / Criticisms

  1. Vendor lock-in: The spec format and steering files are stored in .kiro/ — switching to a different tool requires migrating artifacts. The methodology is portable but the tooling integration is not.

  2. Credit economy opacity: The pricing model (credits that vary by model and task complexity) makes cost unpredictable for heavy users. Community feedback focuses on the 50 credits/month free tier being insufficient for real projects.

  3. Closed-source IDE: Unlike VS Code or Cursor, Kiro's IDE cannot be inspected, extended, or self-hosted. Enterprise teams with air-gapped environments face deployment challenges.

  4. GitHub repo is misleading: The kirodotdev/Kiro repo has 3,762 stars and 2,837 open issues, but contains no IDE source code — only an issue tracker. Stars measure community interest in the product, not the repository's codebase.

  5. Documentation discovery: Core documentation lives at kiro.dev/docs behind URL paths that return 404 for direct subpath access (e.g., /docs/specs/requirements/ is inaccessible), suggesting documentation is behind authentication or gated for signed-in users.

Competitive Context

  • vs. Claude Code + BMAD/Superpowers: Kiro is a full IDE replacement; BMAD/Superpowers are plugin layers for Claude Code. Kiro owns the full stack; others extend existing tools.
  • vs. Cursor: Both are VS Code forks; Cursor focuses on inline AI editing, Kiro focuses on spec-first project lifecycle.
  • vs. Cline/Roo Code: Both are VS Code extensions; Kiro is a standalone product with deeper AWS integration and the spec system as a native workflow.
  • vs. Taskmaster AI: Taskmaster specializes in task decomposition from PRDs; Kiro owns the full Requirements→Design→Tasks pipeline including requirements generation.
04

Workflow

Kiro — Workflow

Workflow Phases

Phase 0: Steering Setup (one-time per project)

Artifact: .kiro/steering/*.md

Before working on features, developers set up steering files that give Kiro persistent context. Three files are auto-generated as a foundation: product.md (product purpose/goals), tech.md (technology stack), structure.md (file organization). Additional steering files can be created manually or via the "Create Steering Documents" command. Steering is injected into every agent interaction going forward.


Phase 1: Requirements

Artifact: .kiro/specs/<feature>/requirements.md

The developer describes a feature in natural language. Kiro converts this into structured requirements using EARS notation (Easy Approach to Requirements Syntax):

WHEN [event] THEN [system] SHALL [response]
IF [precondition] THEN [system] SHALL [response]
WHEN [event] AND [condition] THEN [system] SHALL [response]

Each requirement includes:

  • A numbered requirement heading
  • A user story ("As a [role], I want [goal], so that [benefit]")
  • Numbered acceptance criteria in EARS format
  • A Glossary section defining key system actors

Entry paths:

  • Requirements-First: start from a feature description
  • Design-First: start from existing design artifacts
  • Quick Plan: auto-generate all three phases from a single prompt (less interactive)

Bugfix variant: uses bugfix.md instead, capturing current vs. expected behavior.

Human gate: Developer reviews and approves requirements before proceeding to Design.


Phase 2: Design

Artifact: .kiro/specs/<feature>/design.md

Kiro analyzes the codebase and produces a technical design document. Structure includes:

  • Overview (high-level summary of approach)
  • Architecture (system components, Mermaid sequence/flow diagrams)
  • Components and Interfaces (detailed component descriptions, TypeScript/other interfaces)
  • Data Models (data structures, validation rules)
  • Error Handling (error scenarios and responses)
  • Testing Strategy (unit/integration/e2e approach)
  • Decision Documentation (options considered, rationale for choices)

Human gate: Developer reviews and approves design before proceeding to Tasks.


Phase 3: Tasks

Artifact: .kiro/specs/<feature>/tasks.md

Kiro generates an ordered implementation checklist. Each task:

  • Is numbered and hierarchically organized (1, 1.1, 1.2, 2, ...)
  • Contains specific implementation details and file targets
  • References requirement numbers (_Requirements: 1.1, 2.3_)
  • Uses markdown checkboxes for progress tracking (- [ ] / - [x])
  • Has 2-4 hour scope per sub-task

Tasks are sequenced using dependency analysis. Independent tasks are grouped into "waves" for parallel execution.

Human gate: Developer reviews and approves task list before execution begins.


Phase 4: Implementation

Artifact: Code, tests, updated task checkboxes

Kiro executes tasks sequentially or in parallel waves. Real-time status updates track completion. The developer can:

  • Run in "autopilot" mode (autonomous execution)
  • Run task-by-task with review
  • Monitor progress via task checkbox state in tasks.md

Phase 5: Hooks (Continuous Automation)

Artifact: Event-triggered actions throughout development

Agent Hooks fire on development events (file save, tool use, spec task completion) and execute predefined prompts or shell commands automatically. Examples: auto-generate docs on save, run tests after code changes, validate code style on commit.


Human Approval Gates

Gate Location What's reviewed
After Requirements End of Phase 1 EARS acceptance criteria correctness
After Design End of Phase 2 Architecture, component interfaces, tech decisions
After Tasks End of Phase 3 Task sequence, scope, requirement traceability
Per-task (optional) During Phase 4 Code generated for each task

TDD Enforcement

Optional. Tasks can include test-writing sub-tasks with explicit TDD framing. The tasks.md example from the public repo shows test tasks marked with * (deferred):

- [ ]* 2.2 Write unit tests for data models
  - Test interface type checking
  - Test DEFAULT_LABEL_TAXONOMY contains all required labels

The * notation indicates optional/deferred tasks. TDD is recommended in the skill documentation but not enforced by the IDE.

Evidence from jasonkneen SKILL.md:

"Each task produces testable code"

Multi-Agent Execution

Yes — parallel task execution via waves.

"Kiro analyzes task dependencies and groups independent tasks into 'waves' that run concurrently"

Each wave contains tasks that can run in parallel. Waves are sequential. This is internal parallelism, not named separate agents.

Git Worktrees / Isolated Workspaces

Not documented in public sources.

Spec Format

Markdown — all three spec files are plain markdown with EARS-formatted acceptance criteria. No YAML blocks, Gherkin, or JSON in spec content (only YAML front matter in steering files).

Files Generated Per Feature

.kiro/specs/<feature-name>/
├── requirements.md   (Phase 1)
├── design.md         (Phase 2)
└── tasks.md          (Phase 3)

For bugfixes:

.kiro/specs/<bugfix-name>/
├── bugfix.md         (Phase 1, replaces requirements.md)
├── design.md         (Phase 2)
└── tasks.md          (Phase 3)
06

Memory Context

Kiro — Memory & Context

Memory Model

file-based + proprietary (IDE-managed)

Kiro uses two distinct file-based persistence mechanisms:

  1. Steering files (.kiro/steering/*.md) — persistent project context injected into every agent interaction
  2. Spec files (.kiro/specs/<feature>/*.md) — requirements, design, and task state persisted as markdown files

The IDE itself likely maintains additional proprietary in-memory context (codebase indexing, conversation history) but this is not documented publicly.

Persistence Scope

project (steering + specs) + global (global steering)

Context Type Scope Location
Workspace steering project .kiro/steering/
Global steering global ~/.kiro/steering/
Team steering global/org Distributed via MDM to ~/.kiro/steering/
Spec artifacts project .kiro/specs/<feature>/
Conversation history session Proprietary (not documented)

Context Compaction Strategy

Not explicitly documented. Steering files use inclusion modes to control what context is loaded per interaction, which serves as a form of context budgeting:

Mode When loaded Use case
always Every interaction Core coding standards
fileMatch Only when matching files are in context Domain-specific rules
manual Only when explicitly referenced (#steering-file-name) Specialized/troubleshooting docs
auto When request matches description field Context-heavy guidance

This selective loading approach prevents context window overflow from large steering libraries. File references using #[[file:api/openapi.yaml]] syntax load external files lazily on demand.

Cross-Session Handoffs

Yes — this is the core function of steering files.

Steering files solve the "repeated context" problem across sessions: instead of re-explaining project conventions each session, the developer writes them once into .kiro/steering/ and they are automatically loaded. The documentation states:

"Steering files provide 'persistent knowledge about your workspace through markdown files,' enabling Kiro to maintain consistent patterns without repeated explanations across conversations."

Task progress is also persistent: tasks.md checkboxes preserve implementation state (- [x] for completed, - [ ] for pending), so sessions can resume mid-spec.

Memory Bank / Knowledge Base References

Kiro does not use the "memory bank" terminology common in other frameworks (e.g., Roo Code Memory Bank, Claude-Flow). The equivalent concept is:

  • Steering files = persistent knowledge base (project rules, conventions, architecture decisions)
  • Spec files = structured working memory for feature development
  • Powers = on-demand domain knowledge packs (analogous to knowledge modules)

Auto-Generated Foundation Files

Kiro auto-generates three base steering files at project setup:

  • product.md — product purpose, target users, business objectives
  • tech.md — technology stack, frameworks, technical constraints
  • structure.md — file organization, naming conventions, architectural patterns

These are always-included and form the minimum persistent context for every project.

07

Target Tools

Kiro — Target Tools

Primary Tool

kiro (proprietary IDE — not a plugin for another tool)

Kiro is its own standalone IDE (VS Code fork) and CLI, not an extension or plugin for Claude Code, Cursor, Copilot, or other tools.

Officially Supported Tools

Tool Support Level Evidence
Kiro IDE (VS Code fork) Native — primary README, kiro.dev
Kiro CLI Native — headless README: "command-line interface for integrating Kiro into your development workflows"
Kiro Web (app.kiro.dev) Preview (May 2026) Changelog: "Web platform launched in preview"
VS Code (migration only) One-click import README: "Import your VS Code setup including extensions and settings"

Community Extensions for Other Tools

The jasonkneen/kiro repo explicitly packages Kiro's spec methodology as a skill pack for other tools:

compatibility: Claude Code, Cursor, VS Code, Windsurf

This community pack ships:

  • Skills compatible with Claude Code and Cursor
  • Commands for creating steering documents
  • The same Requirements/Design/Tasks workflow adapted for non-Kiro tools

This is a derivative/community extension, not an official Kiro product. However, it demonstrates that Kiro's methodology has been ported to Claude Code, Cursor, and Windsurf by the community.

Tools NOT Supported (No Evidence)

  • aider — not mentioned
  • cline — not mentioned
  • opencode — not mentioned
  • goose — not mentioned
  • gemini-cli — not mentioned
  • roo — not mentioned
  • codex — not mentioned (though AWS Bedrock integration uses Claude models internally)
  • jules — not mentioned
  • continue — not mentioned
  • qwen — not mentioned
  • kilo — not mentioned
  • copilot — not mentioned (VS Code extensions can be imported, but Copilot itself is not a target)

Model Support

From the pricing page:

  • Claude Sonnet 4.5 (free tier)
  • Claude Sonnet 4.6 (paid tiers, costs 1.3x "Auto" credits)
  • Claude Opus 4.7 (added April 17, 2026 per changelog)
  • "Open weight models" (free tier)
  • "Auto" model (default, cost baseline)

Kiro uses AWS Bedrock for model inference, enabling cross-region routing via inference profiles (format: {region}.{provider}.{model-name}-{version}:{profile-version}).

IDE Compatibility Notes

  • Kiro IDE is a VS Code fork — VS Code extensions are importable but Kiro is not itself a VS Code extension
  • No documented support for JetBrains IDEs, Neovim, Emacs, or other editors
  • The CLI provides a tool-agnostic integration path for editor-independent workflows
08

Signals

Kiro — Signals

GitHub Stats

Metric Value Source
Stars 3,762 gh api /repos/kirodotdev/Kiro (fetched 2026-05-26)
Forks 241 Same
Watchers 3,762 Same
Open Issues 2,837 Same (used as community feedback tracker)
Contributors 8 (public repo) gh api /repos/kirodotdev/Kiro/contributors
Last commit 2026-05-15 Commit 2f1d7a7 by AnilMaktala
Repo created 2025-06-17 GitHub API
Primary language TypeScript (95.6%) GitHub API

Note: The public repo is an issue tracker and documentation repo, not the IDE source code. The 8 contributors are Amazon employees managing the issue tracker. The actual IDE codebase is closed-source.

Community Activity

  • Discord: Active community server at discord.gg/kirodotdev (badge in README)
  • Blog: Regular posts at kiro.dev/blog — multiple posts per month through May 2026
  • Issues: 2,837 open issues — very high volume for a productivity tool, indicating large active user base

Reddit / HN Sentiment

Sentiment: mixed (leaning positive for engineering teams; some concerns about pricing/vendor lock-in)

From the context available:

  • The jasonkneen/kiro repo notes: Amazon stated "It's the best stuff I have found on [spec driven development]. I will be sharing links back to your repo with full attribution." — suggesting internal Amazon validation of the community's spec methodology documentation.
  • The methodology has been adopted broadly enough that multiple independent repos (jasonkneen, lotharschulz, kazini/yask-spec-kit) have replicated or extended it.
  • Pricing structure (credit system, free tier limited to 50 credits/month) has generated community discussion about sustainability for heavy users.
  • No specific Reddit/HN quotes available in the seed data.

Maintainer Status

Active — Amazon/AWS commercial product with regular releases:

  • IDE 0.12 released May 6, 2026 (parallel task execution, requirements analysis)
  • CLI 2.4.0 released May 20, 2026 (conversation rewinding, model reasoning controls)
  • Web preview launched May 7, 2026

Key Milestones

Date Event
2025-06-17 GitHub repo created
2025-07-14 CONTRIBUTING.md and README branding added
2025-08-05 Kiro logo/wordmark added (public brand launch)
2025-10-23 Blog post: "Teaching Kiro new tricks with agent steering and MCP"
2025-10-31 Blog post: "Introducing remote MCP servers"
2025-11-04 Blog post: Global steering as AI context layer
2025-11-17 Blog post: Property-based testing alignment with specs
2026-01-14 GitHub issue automation system added to Kiro repo
2026-02-05 Blog post: Program analysis for safe AI refactoring
2026-02-18 Blog post: New spec types (bugfix, build-on-existing)
2026-02-27 Blog post: AST-based code editing
2026-04-17 Claude Opus 4.7 model support added
2026-05-06 IDE 0.12 released: parallel task execution
2026-05-07 Kiro Web preview launched at app.kiro.dev
2026-05-12 Blog posts: Specs got faster; Requirements analysis improvements
2026-05-15 Last public commit (2026-05-26 fetch date)

Related frameworks

same archetype · same primary tool · same memory type

Zed ★ 84k

Open-source, GPU-accelerated IDE with a native AI agent featuring LSP-aware tools, update_plan for visible task tracking,…

Cline ★ 62k

SDK-first autonomous coding agent with human-in-the-loop approval across VS Code, JetBrains, CLI, and a parallel-agent Kanban…

openspec-for-copilot ★ 18

Brings OpenSpec spec-driven development to GitHub Copilot Chat users via a VS Code extension with sidebar spec management,…

OpenSpec-Zed ★ 14

Adds OpenSpec slash commands to the Zed editor's AI Assistant panel so Zed users can initiate spec-driven workflows without…

Shadow Code ★ 79

Developers write pseudocode in a parallel .shadow file; Shadow Code transforms it into target-language production code via VS…

spec-driven-kiro-project (lotharschulz) ★ 3

Example project demonstrating Kiro IDE's spec-driven development approach applied to a real TypeScript web application.